From a97c0e84c8d1f50aa65935643a580527f30b7ece Mon Sep 17 00:00:00 2001 From: 廖井涛 <2265517004@qq.com> Date: 星期二, 12 三月 2024 08:39:38 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override --- north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java | 236 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 236 insertions(+), 0 deletions(-) diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java new file mode 100644 index 0000000..4241f9b --- /dev/null +++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java @@ -0,0 +1,236 @@ +package com.example.erp.service.sd; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.example.erp.entity.sd.Delivery; +import com.example.erp.entity.sd.DeliveryDetail; +import com.example.erp.entity.sd.Order; +import com.example.erp.entity.sd.OrderDetail; +import com.example.erp.entity.userInfo.SysError; +import com.example.erp.mapper.mm.FinishedGoodsInventoryMapper; +import com.example.erp.mapper.sd.DeliveryDetailMapper; +import com.example.erp.mapper.sd.DeliveryMapper; +import com.example.erp.mapper.sd.OrderDetailMapper; +import com.example.erp.mapper.sd.OrderMapper; +import com.example.erp.service.userInfo.SysErrorService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; + +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.util.*; + +@Service +@DS("sd") +@Transactional(rollbackFor = Exception.class) +public class DeliveryService { + @Autowired + DeliveryMapper deliveryMapper; + @Autowired + DeliveryDetailMapper deliveryDetailMapper; + @Autowired + OrderMapper orderMapper; + @Autowired + OrderDetailMapper orderDetailMapper; + @Autowired + FinishedGoodsInventoryMapper finishedGoodsInventoryMapper; + @Autowired + SysErrorService sysErrorService; + + + public Map<String, Object> getSelectShippingOrder(Integer pageNum, Integer pageSize,List<String> selectDate, Delivery delivery) { + Integer offset = (pageNum - 1) * pageSize; + String endDate = LocalDate.now().toString(); + String startDate = LocalDate.now().minusDays(15).toString(); + if(selectDate !=null && selectDate.size()==2){ + if(!selectDate.get(0).isEmpty()){ + startDate = selectDate.get(0); + } + if(!selectDate.get(1).isEmpty()){ + endDate = selectDate.get(1); + } + } + Map<String, Object> map = new HashMap<>(); + map.put("data", deliveryMapper.getSelectShippingOrder(offset, pageSize,startDate,endDate, delivery)); + map.put("total", deliveryMapper.getSelectShippingOrderPageTotal(offset, pageSize,startDate,endDate, delivery)); + List<String> list = new ArrayList<>(); + list.add(startDate); + list.add(endDate); + map.put("selectDate",list); + return map; + } + + public Map<String, Object> getSelectShippingOrderDetail(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { + Integer offset = (pageNum - 1) * pageSize; + + Map<String, Object> map = new HashMap<>(); + map.put("data", deliveryDetailMapper.getSelectShippingOrderDetail(offset, pageSize, orderDetail)); + map.put("delivery", deliveryMapper.getSelectShippingOrderDetailDelivery(offset, pageSize, orderDetail)); + map.put("total", deliveryDetailMapper.getSelectShippingOrderDetailPageTotal(offset, pageSize, orderDetail)); + + return map; + } + + public Map<String, Object> getSelectOrderInventory(Integer pageNum, Integer pageSize,List<String> selectDate, Order order) { + Integer offset = (pageNum - 1) * pageSize; + String endDate = LocalDate.now().toString(); + String startDate = LocalDate.now().minusDays(15).toString(); + if(selectDate !=null && selectDate.size()==2){ + if(!selectDate.get(0).isEmpty()){ + startDate = selectDate.get(0); + } + if(!selectDate.get(1).isEmpty()){ + endDate = selectDate.get(1); + } + } + Map<String, Object> map = new HashMap<>(); + map.put("data", deliveryMapper.getSelectOrderInventory(offset, pageSize,startDate,endDate, order)); + map.put("total", deliveryMapper.getSelectOrderInventoryPageTotal(offset, pageSize,startDate,endDate, order)); + List<String> list = new ArrayList<>(); + list.add(startDate); + list.add(endDate); + map.put("selectDate",list); + return map; + } + + public Map<String, Object> getSelectShippingOrderDetails(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { + Integer offset = (pageNum - 1) * pageSize; + Map<String, Object> map = new HashMap<>(); + map.put("data", deliveryDetailMapper.getSelectShippingOrderDetails(offset, pageSize, orderDetail)); + map.put("title", deliveryMapper.getSelectShippingOrderDetailDeliverys(offset, pageSize, orderDetail)); + map.put("total", deliveryDetailMapper.getSelectShippingOrderDetailsPageTotal(offset, pageSize, orderDetail)); + return map; + } + + public Boolean insertDelivery(Map<String,Object> object) { + + boolean saveState = true; + //璁剧疆鍥炴粴鐐� + Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); + try { + + String deliveryId = ""; + String oddNumber; + if (object.get("deliveryId") != null) { + deliveryId = object.get("deliveryId").toString(); + } + Delivery delivery = JSONObject.parseObject(JSONObject.toJSONString(object.get("title")), Delivery.class); + List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("delivery")), OrderDetail.class); + //鏌ヨ鍙戣揣鍗曟槸鍚﹀瓨鍦� + Integer deliveryConut = deliveryMapper.getDeliveryConut(deliveryId); + + if (deliveryConut != 0) { + //缂栬緫杩樺師鏁版嵁 + String deliveryDetailNumber = ""; + if (!orderDetaillist.isEmpty()) { + for (OrderDetail orderDetail : orderDetaillist) { + if (orderDetaillist.size() - 1 == orderDetaillist.indexOf(orderDetail)) { + deliveryDetailNumber += orderDetail.getDeliveryDetail().getDeliveryNumber(); + } else { + deliveryDetailNumber += orderDetail.getDeliveryDetail().getDeliveryNumber() + "|"; + } + + } + } + List<DeliveryDetail> deliveryDetaillist = deliveryDetailMapper.getIsNotDeliveryDetail(deliveryDetailNumber, deliveryId); + if (!deliveryDetaillist.isEmpty()) { + for (DeliveryDetail deliveryDetail : deliveryDetaillist) { + //杩樺師搴撳瓨鏁颁互鍙婅鍗曟槑缁嗙殑鍙戣揣鏁� + finishedGoodsInventoryMapper.updateInventoryquantityInt(deliveryDetail.getOrderId(), deliveryDetail.getOrderNumber(), deliveryDetail.getQuantity()); + deliveryDetailMapper.updateIsNotOrderDetailDeliveryNum(deliveryDetail.getOrderId(), deliveryDetail.getOrderNumber(), deliveryDetail.getQuantity()); + } + } + //杩樺師鍙戣揣琛ㄧ殑闈㈢Н鏁伴噺閲戦 + deliveryMapper.updatedelivery(0.0, 0, 0.0, deliveryId); + //鍒犻櫎鍙戣揣鏄庣粏鐨勬暟鎹� + deliveryDetailMapper.deleteDeliveryDetail(deliveryId); + oddNumber = deliveryId; + } else { + //鑾峰彇鍗曞彿 + oddNumber = orderNumberSetting("鍙戣揣"); + //鏂板鍙戣揣琛ㄦ暟鎹� + deliveryMapper.insertDelivery(delivery, oddNumber, orderDetaillist.get(0).getOrderId()); + } + System.out.println(4); + Double area = 0.0; + Integer quantity = 0; + Double money = 0.0; + //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼 + + if (!orderDetaillist.isEmpty()) { + for (OrderDetail orderDetail : orderDetaillist) { + + quantity += orderDetail.getDeliveryDetail().getQuantity(); + area += orderDetail.getFinishedGoodsInventory().getActualSignalArea() * orderDetail.getDeliveryDetail().getQuantity(); + money += orderDetail.getPrice() * orderDetail.getDeliveryDetail().getQuantity(); + Integer deliveryDetailmaximum = deliveryDetailMapper.getdeliveryDetailmaximum(oddNumber); + //鏂板鍙戣揣鏄庣粏鏁版嵁 + deliveryDetailMapper.insertDeliveryDetail(orderDetail, oddNumber, deliveryDetailmaximum + 1); + //淇敼璁㈠崟鏄庣粏 + deliveryDetailMapper.updateOrderDetailDeliveryNum(orderDetail); + //淇敼搴撳瓨琛ㄥ嚭搴撴暟閲� + finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getOrderId(), orderDetail.getOrderNumber(), orderDetail.getDeliveryDetail().getQuantity()); + + } + //淇敼鍙戣揣鏄庣粏绱姞闈㈢Н鏁伴噺閲戦 + deliveryMapper.updatedelivery(Double.valueOf(String.format("%.2f", area)), quantity, Double.valueOf(String.format("%.2f", money)), oddNumber); + + } else { + return false; + } + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); + //灏嗗紓甯镐紶鍏ユ暟鎹簱 + SysError sysError = new SysError(); + sysError.setError(e.toString()); + sysError.setFunc("saveOrder"); + sysErrorService.insert(sysError); + saveState = false; + + } + return saveState; + } + + + public Boolean updateDeliveryToExamine(Map<String,Object> object) { + Boolean isinsert=false; + String deliveryId = ""; + int type =3; + if (object.get("deliveryId") != null) { + deliveryId = object.get("deliveryId").toString(); + } + + if (object.get("type") != null) { + type = Integer.parseInt(object.get("type").toString()); + } + + deliveryMapper.updateDeliveryToExamine(deliveryId,type); + + return true; + + + + } + + + public String orderNumberSetting(String type) { + //鏍规嵁绫诲瀷鑷姩鐢熸垚涓嶅悓鐨勬搷浣滃崟鍙� + String alias=""; + if(Objects.equals(type, "鍙戣揣")){ + alias="FH"; + } + //鏌ヨ褰撳ぉ鐨勬渶澶ф暟閲� + Integer maximum=deliveryMapper.getmaximum(type); + //璁剧疆涓や綅涓嶅琛�0 + String formattedNumber = String.format("%02d", maximum+1); + //鏍煎紡鍖栧綋鍓嶆棩鏈� + Date currentDate = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); + String formattedDate = dateFormat.format(currentDate); + String oddNumbers = alias+formattedDate+formattedNumber; + return oddNumbers; + } +} -- Gitblit v1.8.0