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 | 147 +++++++++++++++++++++++++++++++++--------------- 1 files changed, 101 insertions(+), 46 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 index 0bb5ee6..4241f9b 100644 --- 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 @@ -7,13 +7,17 @@ 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; @@ -21,6 +25,7 @@ @Service @DS("sd") +@Transactional(rollbackFor = Exception.class) public class DeliveryService { @Autowired DeliveryMapper deliveryMapper; @@ -32,8 +37,11 @@ OrderDetailMapper orderDetailMapper; @Autowired FinishedGoodsInventoryMapper finishedGoodsInventoryMapper; + @Autowired + SysErrorService sysErrorService; - public Map<String, Object> getseletShippingOrder(Integer pageNum, Integer pageSize,List<String> selectDate, Delivery delivery) { + + 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(); @@ -46,8 +54,8 @@ } } Map<String, Object> map = new HashMap<>(); - map.put("data", deliveryMapper.getseletShippingOrder(offset, pageSize,startDate,endDate, delivery)); - map.put("total", deliveryMapper.getseletShippingOrderPageTotal(offset, pageSize,startDate,endDate, delivery)); + 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); @@ -55,13 +63,13 @@ return map; } - public Map<String, Object> getseletShippingOrderDetail(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { + 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.getseletShippingOrderDetail(offset, pageSize, orderDetail)); - map.put("delivery", deliveryMapper.getseletShippingOrderDetaildelivery(offset, pageSize, orderDetail)); - map.put("total", deliveryDetailMapper.getseletShippingOrderDetailPageTotal(offset, pageSize, orderDetail)); + 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; } @@ -88,47 +96,102 @@ return map; } - public Map<String, Object> getseletShippingOrderDetails(Integer pageNum, Integer pageSize, OrderDetail orderDetail) { + 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.getseletShippingOrderDetails(offset, pageSize, orderDetail)); - map.put("title", deliveryMapper.getseletShippingOrderDetaildeliverys(offset, pageSize, orderDetail)); - map.put("total", deliveryDetailMapper.getseletShippingOrderDetailsPageTotal(offset, pageSize, orderDetail)); + 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 isinsert=false; - Delivery delivery = JSONObject.parseObject(JSONObject.toJSONString(object.get("title")), Delivery.class); - List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("delivery")), OrderDetail.class); - //鑾峰彇鍗曞彿 - String oddNumber= orderNumberSetting("鍙戣揣"); - deliveryMapper.insertDelivery(delivery,oddNumber,orderDetaillist.get(0).getOrderId()); - 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()); - isinsert=true; + 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); - deliveryMapper.updatedelivery(Double.valueOf(String.format("%.2f", area)),quantity,Double.valueOf(String.format("%.2f", money)),oddNumber); - return isinsert; - }else{ - return false; + 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; } @@ -158,14 +221,6 @@ String alias=""; if(Objects.equals(type, "鍙戣揣")){ alias="FH"; - }else if(Objects.equals(type, "鍑哄簱")){ - alias="CK"; - }else if(Objects.equals(type, "璋冩嫧")){ - alias="DB"; - }else if(Objects.equals(type, "棰嗗嚭")){ - alias="LC"; - }else if(Objects.equals(type, "杩斿伐")){ - alias="FG"; } //鏌ヨ褰撳ぉ鐨勬渶澶ф暟閲� Integer maximum=deliveryMapper.getmaximum(type); -- Gitblit v1.8.0