From 4521e55b7ce2840dcb91340c17f3159892bcc14d Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 24 十二月 2025 13:32:29 +0800
Subject: [PATCH] 修改订单金额时,根据情况是否调用发货单修改金额

---
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java |   37 +++++++++++++++++++++++++++++++++++--
 1 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
index 0437ed0..d52563d 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -49,8 +49,12 @@
     private final WorkOrderMapper workOrderMapper;
     private final FlowCardMapper flowCardMapper;
 
+    private final BasicOtherMoneyMapper basicOtherMoneyMapper;
+
     private final OrderProcessDetailMapper orderProcessDetailMapper;
-    public OrderService(OrderMapper orderMapper, OrderDetailMapper orderDetailMapper, OrderGlassDetailMapper orderGlassDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, SysErrorService sysErrorService, OrderOtherMoneyMapper orderOtherMoneyMapper, ProductMapper productMapper, LogService logService, WorkOrderMapper workOrderMapper, FlowCardMapper flowCardMapper) {
+
+    private final DeliveryService deliveryService;
+    public OrderService(OrderMapper orderMapper, OrderDetailMapper orderDetailMapper, OrderGlassDetailMapper orderGlassDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, SysErrorService sysErrorService, OrderOtherMoneyMapper orderOtherMoneyMapper, ProductMapper productMapper, LogService logService, WorkOrderMapper workOrderMapper, FlowCardMapper flowCardMapper, BasicOtherMoneyMapper basicOtherMoneyMapper,DeliveryService deliveryService) {
         this.orderMapper = orderMapper;
         this.orderDetailMapper = orderDetailMapper;
         this.orderGlassDetailMapper = orderGlassDetailMapper;
@@ -61,6 +65,8 @@
         this.logService = logService;
         this.workOrderMapper = workOrderMapper;
         this.flowCardMapper = flowCardMapper;
+        this.basicOtherMoneyMapper = basicOtherMoneyMapper;
+        this.deliveryService = deliveryService;
     }
 
     public boolean saveOrder(Map<String,Object> orderMap) throws Exception {
@@ -429,11 +435,13 @@
         List<OrderDetail> orderDetails = orderDetailMapper.selectList(new QueryWrapper<OrderDetail>().eq("order_id",id));
         List<OrderOtherMoney> orderOtherMoneyList = orderOtherMoneyMapper.findById(id);
         List<Map<String,String>> orderFileList = orderMapper.selectOrderFileList(id);
+        Integer deliveryCount = orderMapper.selectDeliveryStateConut(id);
         Map<String,Object> map = new HashMap<>();
         map.put("order",order);
         map.put("orderDetails",orderDetails);
         map.put("orderOtherMoneyList",orderOtherMoneyList);
         map.put("orderFile",orderFileList);
+        map.put("deliveryCount",deliveryCount);
         return map;
     }
     //璁㈠崟瀹℃牳
@@ -488,6 +496,7 @@
 
     public boolean updateOrderMoney(Map<String, Object> map) {
         JSONObject jsonObject = new JSONObject(map);
+        int type = Integer.parseInt(jsonObject.get("type").toString());
         Order order = JSONObject.parseObject(JSONObject.toJSONString(jsonObject.get("order")), Order.class);
         List<OrderDetail> OrderDetails = JSONArray.parseArray(JSONObject.toJSONString(jsonObject.get("detail")), OrderDetail.class);
         List<OrderOtherMoney> orderOtherMoneyList = JSONArray.parseArray(JSONObject.toJSONString(jsonObject.get("otherMoney")), OrderOtherMoney.class);
@@ -507,12 +516,16 @@
         log.setContent(jsonObject.toString());
         log.setFunction("updateOrderMoney閲戦閲嶇疆:"+order.getOrderId());
 
+
         //鍒犻櫎鍏朵粬閲戦鏄庣粏琛�
         orderOtherMoneyMapper.delete(new LambdaQueryWrapper<OrderOtherMoney>().eq(OrderOtherMoney::getOrderId, order.getOrderId()));
         List<OrderOtherMoney> orderOtherMoneyLists=orderOtherMoneyList;
 
         double money = 0;
         for (OrderDetail orderDetail : OrderDetails) {
+            if(type==1){
+                deliveryService.updateDeliveryMoney(orderDetail,order);
+            }
             orderDetail =  updateOrderMoneyComputed(orderDetail,order.getCalculateType());
             BigDecimal getGrossAmount= BigDecimal.valueOf(orderDetail.getGrossAmount());
             money+=getGrossAmount.doubleValue();
@@ -604,8 +617,28 @@
                 endDate = selectDate.get(1);
             }
         }
+        List<OrderDetail> orderDetailList = orderDetailMapper.getOrderReport(offset, pageSize, startDate, endDate, orderDetail,model,scope);
+        List<BasicOtherMoney> basicOtherMoneyList=basicOtherMoneyMapper.selectList(new QueryWrapper<BasicOtherMoney>());
+        ObjectMapper objectMapper = new ObjectMapper();
+
+        for (OrderDetail detail : orderDetailList) {
+            String otherColumnsStr = detail.getOtherColumns();
+            if (otherColumnsStr == null || otherColumnsStr.trim().isEmpty()||otherColumnsStr.equals("{}")) {
+                continue; // 璺宠繃绌哄��
+            }
+            try {
+                // 瑙f瀽涓篗ap锛堜篃鍙В鏋愪负鑷畾涔夊疄浣撶被锛屽OtherColumnsDTO锛�
+                Map<String, Object> otherColumnsJson = objectMapper.readValue(otherColumnsStr, Map.class);
+
+                 detail.setOtherColumnsJson(otherColumnsJson);
+            } catch (JsonProcessingException e) {
+                System.err.println("瑙f瀽otherColumns澶辫触锛屾暟鎹細" + otherColumnsStr + "锛岄敊璇細" + e.getMessage());
+            }
+        }
+
         Map<String,Object> map = new HashMap<>();
-        map.put("data",orderDetailMapper.getOrderReport(offset, pageSize, startDate, endDate, orderDetail,model,scope));
+        map.put("data",orderDetailList);
+        map.put("title",basicOtherMoneyList);
         map.put("total",orderDetailMapper.getOrderReportTotal(offset, pageSize, startDate, endDate, orderDetail,"order"));
         List<String> list = new ArrayList<>();
         list.add(startDate);

--
Gitblit v1.8.0