From 1da4e70b2972e1ab77fa75ad0da529a006150ab5 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期一, 29 十二月 2025 16:35:32 +0800
Subject: [PATCH] 提交  保存订单后不重置图片上传

---
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java |  101 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 82 insertions(+), 19 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 9e6e1ee..40bd59d 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
@@ -9,7 +9,9 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.example.erp.common.Constants;
+import com.example.erp.common.Result;
 import com.example.erp.dto.sd.OrderDTO;
 import com.example.erp.dto.sd.OrderSearchDTO;
 import com.example.erp.entity.sd.*;
@@ -23,6 +25,7 @@
 import com.example.erp.service.userInfo.SysErrorService;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -49,8 +52,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 OrderFileMapper orderFileMapper;
+    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, OrderFileMapper orderFileMapper) {
         this.orderMapper = orderMapper;
         this.orderDetailMapper = orderDetailMapper;
         this.orderGlassDetailMapper = orderGlassDetailMapper;
@@ -61,6 +68,10 @@
         this.logService = logService;
         this.workOrderMapper = workOrderMapper;
         this.flowCardMapper = flowCardMapper;
+        this.basicOtherMoneyMapper = basicOtherMoneyMapper;
+        this.deliveryService = deliveryService;
+
+        this.orderFileMapper = orderFileMapper;
     }
 
     public boolean saveOrder(Map<String,Object> orderMap) throws Exception {
@@ -204,7 +215,7 @@
 
         }else if(dateType.equals("year")){
             Integer maxOrderId = orderMapper.selectMaxOrderIdByYear();
-            String formattedNumber = String.format("%"+(orderIdTypeMantissa+4)+"d", maxOrderId+1);
+            String formattedNumber = String.format("%0"+(orderIdTypeMantissa+4)+"d", maxOrderId+1);
             Date currentDate = new Date();
             SimpleDateFormat dateFormat = new SimpleDateFormat("yy");
             String formattedDate = dateFormat.format(currentDate);
@@ -238,7 +249,11 @@
         //鍒犻櫎璁㈠崟宸ヨ壓琛�
         // orderProcessDetailMapper.delete(new LambdaQueryWrapper<OrderProcessDetail>().eq(OrderProcessDetail::getOrderId, order.getOrderId()));
 
-        orderDetailMapper.deleteOrderFile(order.getOrderId());
+        orderFileMapper.update(null,
+                new LambdaUpdateWrapper<OrderFile>()
+                        .eq(OrderFile::getOrderId, order.getOrderId())
+                        .set(OrderFile::getOrderNumber, null)
+        );
 
         insertOtherDetail(order.getOrderId(),OrderDetails,orderOtherMoneyList, position);
     }
@@ -264,16 +279,13 @@
             Product product = productMapper.selectById(OrderDetails.get(i).getProductId());
 
             OrderDetails.get(i).setWeight(Double.valueOf(String.format("%.2f",product.getThickness()*OrderDetails.get(i).getWidth()*OrderDetails.get(i).getHeight()/1000000*2.5)));
-            /*if(OrderDetails.get(i).getBendRadius()!=null && OrderDetails.get(i).getBendRadius()!=0){
-                //鑾峰彇寮挗寮у害
-                Double bendRadius = OrderDetails.get(i).getBendRadius();
-                //鑾峰彇瀹�
-                Double width = OrderDetails.get(i).getWidth();
-                //鑾峰彇鎷遍珮
-                String archRiseS =  String.format("%.1f",bendRadius-(bendRadius*Math.cos(width/2/bendRadius)));
-                Double archRise = Double.parseDouble(archRiseS);
-                OrderDetails.get(i).setArchRise(archRise);
-            }*/
+
+            //鍒ゆ柇娆″簭鍙锋枃浠舵槸鍚︾浉鍚�
+            if(OrderDetails.get(i).getFileId()!=null){
+                orderFileMapper.update(null,new LambdaUpdateWrapper<OrderFile>()
+                        .set(OrderFile::getOrderNumber,OrderDetails.get(i).getOrderNumber())
+                        .eq(OrderFile::getId,OrderDetails.get(i).getFileId()));
+            }
 
             Map<String,Object> otherColumns = JSON.parseObject(OrderDetails.get(i).getOtherColumns(), new TypeReference<Map<String, Object>>(){});
             int finalI = i;
@@ -295,14 +307,23 @@
             }else{
                 OrderDetails.get(i).setOtherColumns("{}");
             }
-            if(OrderDetails.get(i).getFileName()!=null&&!OrderDetails.get(i).getFileName().trim().isEmpty()){
-                orderMapper.saveOrderFile(OrderDetails.get(i).getFileName(), OrderDetails.get(i).getFileData(),orderId,OrderDetails.get(i).getOrderNumber(),OrderDetails.get(i).getFileJson());
-            }
+//            if(OrderDetails.get(i).getFileName()!=null&&!OrderDetails.get(i).getFileName().trim().isEmpty()){
+//                orderMapper.saveOrderFile(
+//                        OrderDetails.get(i).getFileName(),
+//                        OrderDetails.get(i).getFileData(),
+//                        orderId,OrderDetails.get(i).getOrderNumber(),
+//                        OrderDetails.get(i).getFileJson());
+//            }
             if(OrderDetails.get(i).getShape()==null){
                 OrderDetails.get(i).setShape("1");
             }
 
         }
+        //鍒犻櫎璁㈠崟鏂囦欢娌℃湁搴忓彿澶氫綑鐨勬暟鎹�
+        orderFileMapper.delete(new LambdaQueryWrapper<OrderFile>()
+                .eq(OrderFile::getOrderId, orderId)
+                .isNull(OrderFile::getOrderNumber));
+
 
         //寰�鏄庣粏琛ㄦ彃鏁版嵁
         orderDetailMapper.insertBatch(OrderDetails);
@@ -322,6 +343,7 @@
                             .eq(OrderGlassDetail::getOrderId, orderId)
                             .eq(OrderGlassDetail::getOrderNumber, orderDetail.getOrderNumber())
                     );
+
 
             for(OrderGlassDetail orderGlassDetail:orderGlassDetails) {
                 //鑾峰彇褰撳墠灞傛暟涓庝箣鍓嶅眰鏁扮殑鍘氬害
@@ -416,7 +438,7 @@
     }
     //鍒犻櫎璁㈠崟
     public Integer deleteOrder(String id) {
-        orderDetailMapper.deleteOrderFile(id);
+        orderFileMapper.delete(new QueryWrapper<OrderFile>().eq("order_id",id));
         return orderMapper.delete(
                 new QueryWrapper<Order>().eq("order_id",id)
         );
@@ -426,14 +448,17 @@
     //鏌ヨ璁㈠崟涓昏〃涓庡壇琛ㄤ俊鎭�
     public Map<String,Object> getOrderById(String id) {
         Order order = orderMapper.selectOne(new QueryWrapper<Order>().eq("order_id",id));
-        List<OrderDetail> orderDetails = orderDetailMapper.selectList(new QueryWrapper<OrderDetail>().eq("order_id",id));
+        List<OrderDetail> orderDetails = orderDetailMapper.selectListWithFileById(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 +513,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 +533,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,9 +634,34 @@
                 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"));
+        map.put("orderOtherMoney",
+                Collections.singletonList(
+                        basicOtherMoneyMapper.selectList(new QueryWrapper<BasicOtherMoney>().eq("state",1))
+                ));
         List<String> list = new ArrayList<>();
         list.add(startDate);
         list.add(endDate);
@@ -1090,4 +1145,12 @@
         map.put("data",processList);
         return map;
     }
+
+    public Result sizeCheck(String orderId) {
+
+        return Result.success(
+                orderMapper.update(null,
+                        new UpdateWrapper<Order>().set("size_check",1).eq("order_id",orderId))
+        );
+    }
 }

--
Gitblit v1.8.0