From 464f075399dfdfc91ebe2af3a8a7e60c9be935ba Mon Sep 17 00:00:00 2001 From: 廖井涛 <2265517004@qq.com> Date: 星期二, 27 二月 2024 08:58:08 +0800 Subject: [PATCH] 发货编辑修改,分页功能修改 --- north-glass-erp/src/main/java/com/example/erp/service/sd/DeliveryService.java | 125 ++++++++++++++++++++++++++++++----------- 1 files changed, 90 insertions(+), 35 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..560ab43 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,6 +37,9 @@ OrderDetailMapper orderDetailMapper; @Autowired FinishedGoodsInventoryMapper finishedGoodsInventoryMapper; + @Autowired + SysErrorService sysErrorService; + public Map<String, Object> getseletShippingOrder(Integer pageNum, Integer pageSize,List<String> selectDate, Delivery delivery) { Integer offset = (pageNum - 1) * pageSize; @@ -98,37 +106,92 @@ } 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); + + 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()); } - deliveryMapper.updatedelivery(Double.valueOf(String.format("%.2f", area)),quantity,Double.valueOf(String.format("%.2f", money)),oddNumber); - return isinsert; - }else{ - return false; + 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