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/resources/mapper/sd/OrderDetailMapper.xml             |   11 ++++-
 north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue              |   11 ++++-
 north-glass-erp/northglass-erp/src/components/sd/order/UploadPicture.vue       |    4 +
 north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java       |    2 +
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java |    6 ++
 north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java |    3 +
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java     |   51 ++++++++++++++++---------
 7 files changed, 61 insertions(+), 27 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/UploadPicture.vue b/north-glass-erp/northglass-erp/src/components/sd/order/UploadPicture.vue
index 74fe908..d49595b 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/UploadPicture.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/UploadPicture.vue
@@ -1,5 +1,5 @@
 <script setup>
-import { ref, reactive, onMounted } from 'vue'
+import {ref, reactive, onMounted, defineEmits} from 'vue'
 import {
   Document, UploadFilled, MagicStick, RefreshLeft,
   Download, Plus, Picture, Refresh, Delete
@@ -26,6 +26,7 @@
 })
 let imgWidth = ref(null)
 let imgHeight = ref(null)
+const emit = defineEmits(['getParent'])
 
 const form = reactive({
   format: 'png'
@@ -159,6 +160,7 @@
         progressText.value = t("order.msg.pleaseUploadPicture4")
         uploadRef.value.clearFiles()
         fileList.value = []
+        emit('getParent',props.orderId)
         setTimeout(() => {
 
           converting.value = false
diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
index 8ad123e..c79e2af 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -986,7 +986,11 @@
     gridOptions.loading = false
     return
   }
+  getOrderDetail(str)
 
+})
+
+const getOrderDetail = (str) => {
   request.post(`/order/getOrderById/${str}`).then((res) => {
     if(res.code==200){
       titleUploadData.value = res.data.order
@@ -1091,19 +1095,19 @@
         if(res.data.orderFile!=null){
           res.data.orderFile.forEach(items=>{
             if(items.order_number==item.orderNumber)
-            item.fileData=items.file_data
+              item.fileData=items.file_data
           })
         }
       })
       otherMoney.value =res.data.orderOtherMoneyList
-          //鍔犺浇鍓〃鏁版嵁
+      //鍔犺浇鍓〃鏁版嵁
       xGrid.value.reloadData(orderDetails)
       gridOptions.loading = false
     }else{
       ElMessage.error(res.msg)
     }
   })
-})
+}
 
 //浣滃簾璁㈠崟
 const cancelOrder = () => {
@@ -2150,6 +2154,7 @@
                :close-on-click-modal="false"
                destroy-on-close width="800px">
       <upload-picture
+          @getParent="getOrderDetail"
           :rowIndex="rowIndex"
           :orderId="titleUploadData.orderId"
           :state="orderTypeState"
diff --git a/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java b/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java
index 967d760..ff22166 100644
--- a/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java
+++ b/north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java
@@ -51,6 +51,8 @@
     private Integer state;
     private String fileName;
     @TableField(select = false,exist= false)
+    private Integer fileId;
+    @TableField(select = false,exist= false)
     private String fileData;
     @TableField(select = false,exist= false)
     private String fileJson;
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java
index 2492db1..379da63 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java
@@ -49,7 +49,8 @@
 
     List<Order> exportOrderSummary(List<LocalDate> dates);
 
-    boolean deleteOrderFile(String orderId);
 
 
+
+    List<OrderDetail> selectListWithFileById(String id);
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
index 67aa1d4..d2e8300 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderFileService.java
@@ -11,6 +11,7 @@
 import com.example.erp.common.Result;
 import com.example.erp.entity.sd.OrderDetail;
 import com.example.erp.entity.sd.OrderFile;
+import com.example.erp.mapper.sd.OrderDetailMapper;
 import com.example.erp.mapper.sd.OrderFileMapper;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -26,6 +27,7 @@
 @RequiredArgsConstructor
 public class OrderFileService {
     private final OrderFileMapper orderFileMapper;
+    private final OrderDetailMapper orderDetailMapper;
     public List<OrderFile> getOrderFilePicture(List<Map<String,Object>> orderDetails) throws NoSuchFieldException {
         Set<String> seenKeys = new HashSet<>();
         List<Map<String,Object>> result = new ArrayList<>();
@@ -125,7 +127,9 @@
                         .eq(OrderFile::getOrderNumber, orderNumber)
                 );
             }
-
+            orderDetailMapper.update(null,new LambdaUpdateWrapper<OrderDetail>()
+                            .setSql("file_name = '" + name + "'")
+                    .eq(OrderDetail::getOrderId, orderId));
 
             return orderFile;
         } catch (Exception e) {
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 1c9a7b0..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
@@ -25,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;
@@ -54,9 +55,9 @@
     private final BasicOtherMoneyMapper basicOtherMoneyMapper;
 
     private final OrderProcessDetailMapper orderProcessDetailMapper;
-
+    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) {
+    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;
@@ -69,6 +70,8 @@
         this.flowCardMapper = flowCardMapper;
         this.basicOtherMoneyMapper = basicOtherMoneyMapper;
         this.deliveryService = deliveryService;
+
+        this.orderFileMapper = orderFileMapper;
     }
 
     public boolean saveOrder(Map<String,Object> orderMap) throws Exception {
@@ -246,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);
     }
@@ -272,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;
@@ -303,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);
@@ -330,6 +343,7 @@
                             .eq(OrderGlassDetail::getOrderId, orderId)
                             .eq(OrderGlassDetail::getOrderNumber, orderDetail.getOrderNumber())
                     );
+
 
             for(OrderGlassDetail orderGlassDetail:orderGlassDetails) {
                 //鑾峰彇褰撳墠灞傛暟涓庝箣鍓嶅眰鏁扮殑鍘氬害
@@ -424,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)
         );
@@ -434,7 +448,8 @@
     //鏌ヨ璁㈠崟涓昏〃涓庡壇琛ㄤ俊鎭�
     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);
diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
index b67e7b1..e51e829 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
@@ -1078,11 +1078,16 @@
         group by od.product_id,pd.detail
     </select>
 
-    <delete id="deleteOrderFile" >
-        delete from sd.order_file where order_id = #{orderId}
-    </delete>
 
 
+    <select id="selectListWithFileById">
+        select od.*,sof.id as file_id
+        from sd.order_detail as od
+        left join sd.order_file as sof
+            on sof.order_id = od.order_id
+            and sof.order_number = od.order_number
+        where od.order_id = #{id}
+    </select>
 
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0