From 6661232f32135d943c76197afba2baac81e171f4 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期五, 18 七月 2025 12:00:55 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override

---
 north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml               |   10 ++-
 north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue                |   28 +++++++--
 north-glass-erp/northglass-erp/src/components/sd/order/UploadPicture.vue         |    2 
 north-glass-erp/src/main/java/com/example/erp/entity/sd/OrderDetail.java         |    3 +
 north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml                     |   17 +++++
 north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java |   10 +++
 north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderDetailMapper.java   |    2 
 north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java         |    6 ++
 north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java       |   41 +++++++++++++
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml                        |   37 +++++++++++-
 10 files changed, 142 insertions(+), 14 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 c77013f..dac7efb 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
@@ -14,7 +14,7 @@
   console.log(file)
 }
 const handleChange = (uploadFile, uploadFiles) => {
-  emits('getUploadPicture', uploadFile.name)
+  emits('getUploadPicture', uploadFile.name,uploadFile)
   upload.value.clearFiles()
 }
 
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 9e89320..0cee56d 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
@@ -129,7 +129,7 @@
           { code: 'sizeCheck', name: t('basicData.sizeReview'), prefixIcon: 'vxe-icon-eye-fill', visible: true, disabled: false },
           { code: 'updateOrderId', name: t('searchOrder.updateOrderId'), prefixIcon: 'vxe-icon-eye-fill', visible: true, disabled: false },
           { code: 'reportingTransfer', name: t('searchOrder.reportingTransfer'), prefixIcon: 'vxe-icon-send', visible: true, disabled: true },
-          /*{ code: 'uploadPicture', name: 'Upload Picture',  visible: true, }*/
+          { code: 'uploadPicture', name: 'Upload Picture',  visible: true, }
         ]
       ]
     }
@@ -182,6 +182,7 @@
     {field: 'bendRadius',width:160,  title: t('order.bendRadius'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
     {field: 'edgingType',width:160,  title: t('order.edgingType'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
     {field: 'processingNote',width:200,  title: t('order.processingNote'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
+    {field: 'fileName',width:200,  title: t('鏂囦欢鍚嶇О'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
     {field: 'remarks',width:140,  title: t('basicData.remarks'),editRender: { name: 'input'},filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged},
 
 
@@ -925,6 +926,12 @@
       const orderDetails = res.data.orderDetails
       orderDetails.forEach(item => {
         item.otherColumns = JSON.parse(item.otherColumns)
+        if(res.data.orderFile!=null){
+          res.data.orderFile.forEach(items=>{
+            if(items.order_number==item.orderNumber)
+            item.fileData=items.file_data
+          })
+        }
       })
       otherMoney.value =res.data.orderOtherMoneyList
           //鍔犺浇鍓〃鏁版嵁
@@ -1631,15 +1638,24 @@
 }
 
 //鍥剧墖涓婁紶鍚嶇О
-const getUploadPicture = (name) => {
+const getUploadPicture = async (name, file) => {
   uploadPictureVisible.value = false
   const row = xGrid.value.getCurrentRecord()
-  if(!row.otherColumns){
-    row.otherColumns = {}
-  }
-  row.otherColumns.S02 = name
+
+  row.fileName = name
+  const base64 = await fileToBase64(file.raw);
+  row.fileData = base64.replace(/^data:.+;base64,/, "");
 }
 
+const fileToBase64 = (file) => {
+  return new Promise((resolve, reject) => {
+    const reader = new FileReader();
+    reader.onload = () => resolve(reader.result);
+    reader.onerror = reject;
+    reader.readAsDataURL(file);
+  });
+};
+
 </script>
 
 <template>
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java b/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
index 08abee7..ac9c5ce 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/sd/OrderController.java
@@ -265,5 +265,15 @@
         return  Result.seccess(null);
     }
 
+    @PostMapping("/upload-dxf")
+    public Result uploadDxf(@RequestBody Map<String,Object> object) {
+        return  Result.seccess(orderService.uploadDxf(object));
+    }
+
+    @PostMapping("/selectUploadDxf")
+    public Result selectUploadDxf(@RequestBody Map<String,Object> object) {
+        return  Result.seccess(orderService.selectUploadDxf(object));
+    }
+
 
 }
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 38fbe40..4da708b 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
@@ -46,6 +46,9 @@
     private Integer deliveryNum;
     private Integer returnNum;
     private Integer state;
+    private String fileName;
+    @TableField(select = false,exist= false)
+    private String fileData;
     private LocalDate createTime;
     private LocalDate updateTime;
     @TableField(select = false,exist= false)
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 69266bb..2492db1 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,5 +49,7 @@
 
     List<Order> exportOrderSummary(List<LocalDate> dates);
 
+    boolean deleteOrderFile(String orderId);
+
 
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java
index 41efa3e..855fd5c 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/OrderMapper.java
@@ -60,4 +60,10 @@
     Map<String,String> scannerGlassInfo(String projectNo, Integer layoutId, Integer sort, String orderId);
 
     String getProcessIdByOptimizeHeatDetail(String projectId, Integer layoutId, Integer sort);
+
+    Boolean saveOrderFile(String fileName,String dxfData,String orderId,Integer orderNumber);
+
+    Map<String,String> selectOrderFile( String orderId,Integer orderNumber);
+
+    List<Map<String,String>> selectOrderFileList( String orderId);
 }
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 ba2e441..3e78377 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
@@ -232,6 +232,8 @@
         //鍒犻櫎璁㈠崟宸ヨ壓琛�
         // orderProcessDetailMapper.delete(new LambdaQueryWrapper<OrderProcessDetail>().eq(OrderProcessDetail::getOrderId, order.getOrderId()));
 
+        orderDetailMapper.deleteOrderFile(order.getOrderId());
+
         insertOtherDetail(order.getOrderId(),OrderDetails,orderOtherMoneyList);
     }
 
@@ -287,6 +289,10 @@
                 });
             }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());
             }
 
         }
@@ -404,7 +410,8 @@
     }
     //鍒犻櫎璁㈠崟
     public Integer deleteOrder(String id) {
-        return  orderMapper.delete(
+        orderDetailMapper.deleteOrderFile(id);
+        return orderMapper.delete(
                 new QueryWrapper<Order>().eq("order_id",id)
         );
     }
@@ -415,12 +422,14 @@
         Order order = orderMapper.selectOne(new QueryWrapper<Order>().eq("order_id",id));
         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);
 
 
         Map<String,Object> map = new HashMap<>();
         map.put("order",order);
         map.put("orderDetails",orderDetails);
         map.put("orderOtherMoneyList",orderOtherMoneyList);
+        map.put("orderFile",orderFileList);
         return map;
     }
     //璁㈠崟瀹℃牳
@@ -972,4 +981,34 @@
         }
 
     }
+
+    public Object uploadDxf(Map<String,Object> object)  {
+        String fileName = "";
+        if (object.get("fileName") != null) {
+            fileName = object.get("fileName").toString();
+        }
+        String fileData = "";
+        if (object.get("fileData") != null) {
+            fileData = object.get("fileData").toString();
+        }
+        byte[] dxfData = Base64.getDecoder().decode(fileData);
+        String orderId="NG25010101";
+        Integer orderNumber=1;
+        orderMapper.saveOrderFile(fileName, fileData,orderId,orderNumber);
+        return true;
+    }
+
+    public Map<String,Object> selectUploadDxf(Map<String,Object> object)  {
+        String orderId = "";
+        if (object.get("orderId") != null) {
+            orderId = object.get("orderId").toString();
+        }
+        int orderNumber =0;
+        if (object.get("orderNumber") != null) {
+            orderNumber = Integer.parseInt(object.get("orderNumber").toString());
+        }
+        Map<String,Object> map = new HashMap<>();
+        map.put("data",orderMapper.selectOrderFile(orderId,orderNumber));
+        return map;
+    }
 }
diff --git a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
index e387333..5c454e3 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -1140,6 +1140,7 @@
                c.customer_abbreviation                               as customerAbbreviation,
                p.product_abbreviation                                as productAbbreviation,
                fc.process_id                                         as processId,
+               SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
                o.create_time                                         as createTime,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
@@ -1207,6 +1208,7 @@
                c.customer_abbreviation                               as customerAbbreviation,
                p.product_abbreviation                                as productAbbreviation,
                fc.process_id                                         as processId,
+               SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
                o.create_time                                         as createTime,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
@@ -1319,6 +1321,11 @@
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
                p.remarks                                             as filmNumber,
                od.bend_radius                                        as bendRadius,
+               CONCAT(
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+                       ' = ',pl.patch_num )      as size,
                CONCAT(
                        od.order_number,')      ',
                        TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width   AS CHAR))),
@@ -1994,6 +2001,11 @@
                ogd.glass_address                                     as glassAddress,
                JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color,
                CONCAT(
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR))),
+                       ' = ',fc.quantity )      as size,
+               CONCAT(
                        od.order_number,')      ',
                        TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width   AS CHAR))),
                        ' X ',
@@ -2221,6 +2233,11 @@
                ogd.glass_child                                       as glassChild,
                ogd.glass_address                                     as glassAddress,
                JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color,
+               CONCAT(
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR))),
+                       ' = ',pl.patch_num )      as size,
                CONCAT(
                        od.order_number,')      ',
                        TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width   AS CHAR))),
@@ -2629,6 +2646,7 @@
             c.customer_abbreviation                               as customerAbbreviation,
             p.product_abbreviation                                as productAbbreviation,
             fc.process_id                                 as processId,
+            SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
             o.create_time                                         as createTime,
             JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
             JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
@@ -2789,6 +2807,7 @@
             c.customer_abbreviation                               as customerAbbreviation,
             p.product_abbreviation                                as productAbbreviation,
             fc.process_id                                 as processId,
+            SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
             o.create_time                                         as createTime,
             JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
             JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
@@ -2851,6 +2870,7 @@
             c.customer_abbreviation                               as customerAbbreviation,
             p.product_abbreviation                                as productAbbreviation,
             fc.process_id                                 as processId,
+            SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
             o.create_time                                         as createTime,
             JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
             JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
@@ -3142,11 +3162,16 @@
                        ' = ',#{printQuantity} )      as size,
 
                CONCAT(
-                   od.order_number,')  ',
-                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+                       od.order_number,')      ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width   AS CHAR))),
                        ' X ',
-                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height    AS CHAR))),
                        ' = ',#{printQuantity} )      as numberSize,
+               CONCAT(
+                       od.order_number,')','   ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height    AS CHAR))))      as numberSizeQuantity,
             od.order_number                                       as orderNumber,
             ogd.technology_number                                  as technologyNumber,
             od.building_number                                    as buildingNumber,
@@ -3156,6 +3181,7 @@
             c.customer_abbreviation                               as customerAbbreviation,
             p.product_abbreviation                                as productAbbreviation,
             ''                                         as processId,
+            SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
             o.create_time                                         as createTime,
             JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
             JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
@@ -3410,6 +3436,11 @@
                ogd.glass_address                                     as glassAddress,
                JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color,
                CONCAT(
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+                       ' = ',fc.quantity )      as size,
+               CONCAT(
                        od.order_number,')      ',
                        TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width   AS CHAR))),
                        ' X ',
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 d08023b..9d88fdc 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderDetailMapper.xml
@@ -28,7 +28,8 @@
                             weight,
                             perimeter,
                             monolithic_perimeter,
-                            other_columns
+                            other_columns,
+                            file_name
                           )
         values
         <foreach collection ="orderDetails" item="orderDetail" separator =",">
@@ -55,7 +56,8 @@
             #{orderDetail.weight},
             #{orderDetail.perimeter},
             #{orderDetail.monolithicPerimeter},
-            #{orderDetail.otherColumns}
+            #{orderDetail.otherColumns},
+            #{orderDetail.fileName}
              )
         </foreach>
     </insert>
@@ -1066,7 +1068,9 @@
         group by od.product_id,pd.detail
     </select>
 
-
+    <delete id="deleteOrderFile" >
+        delete from sd.order_file where order_id = #{orderId}
+    </delete>
 
 
 
diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
index 4322a81..4a12860 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderMapper.xml
@@ -415,4 +415,21 @@
         and a.layout_id = #{layoutId}
         and a.sort = #{sort}
     </select>
+
+
+    <insert id="saveOrderFile">
+        insert into sd.order_file (order_id,order_number,file_name,file_data,create_time) values(#{orderId},#{orderNumber},#{fileName},#{dxfData},now())
+    </insert>
+
+    <select id="selectOrderFile">
+        select  * from sd.order_file
+        where order_id = #{orderId} and order_number = #{orderNumber}
+
+    </select>
+
+    <select id="selectOrderFileList">
+        select  * from sd.order_file
+        where order_id = #{orderId}
+
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0