From 1750abd11320f8d09ffe1580b7467dba87c86c89 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期三, 10 十二月 2025 14:40:25 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/src/main/resources/mapper/mm/FinishedGlassShelf.xml                  |    2 
 north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml                  |   13 +
 north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecord.vue           |    2 
 north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue              |    2 
 north-glass-erp/src/main/java/com/example/erp/mapper/sd/ProductDetailMapper.java     |    2 
 north-glass-erp/northglass-erp/src/views/pp/report/ProcessToBeCompleted.vue          |    1 
 north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue          |    3 
 north-glass-erp/src/main/java/com/example/erp/dto/pp/DamageReportDTO.java            |    3 
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java            |    7 
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java       |   13 ++
 north-glass-erp/src/main/resources/mapper/sd/ProductDetailMapper.xml                 |    6 +
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml                            |    5 
 north-glass-erp/src/main/java/com/example/erp/dto/pp/ProcessToBeCompletedDTO.java    |    2 
 north-glass-erp/src/main/resources/mapper/pp/Report.xml                              |   81 ++++++++++++++-
 north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue                |   20 ++-
 north-glass-erp/src/main/java/com/example/erp/dto/pp/WorkInProgressDTO.java          |    7 +
 north-glass-erp/northglass-erp/src/views/pp/report/DamageReport.vue                  |    3 
 north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java    |    6 
 north-glass-erp/northglass-erp/src/views/pp/report/NotCrossProcessBreaking.vue       |    5 
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java          |   73 ++++++++++++--
 north-glass-erp/src/main/resources/mapper/pp/PatchLogMapper.xml                      |    4 
 north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue     |   14 +-
 north-glass-erp/src/main/java/com/example/erp/mapper/pp/PatchLogMapper.java          |    3 
 north-glass-erp/src/main/java/com/example/erp/dto/pp/CrossProcessBreakingDTO.java    |    7 +
 north-glass-erp/northglass-erp/src/components/sd/order/ProcessAttribute.vue          |    1 
 north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java |    9 +
 26 files changed, 245 insertions(+), 49 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/ProcessAttribute.vue b/north-glass-erp/northglass-erp/src/components/sd/order/ProcessAttribute.vue
index 5e2fcef..c8402bf 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/ProcessAttribute.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/ProcessAttribute.vue
@@ -14,6 +14,7 @@
                 v-model="dataList[itme.process_type][itme1.process_type]"
                 placeholder=""
                 clearable
+                filterable
                 style="width: 120px"
             >
               <el-option
diff --git a/north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecord.vue b/north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecord.vue
index 39068ea..fad942c 100644
--- a/north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecord.vue
+++ b/north-glass-erp/northglass-erp/src/views/mm/productStock/StorageRecord.vue
@@ -348,7 +348,7 @@
 const validRules = ref({
   "cancelAvailable": [{
     validator (e) {
-      if (parseInt(e.row.cancelAvailable)  > e.row.quantity) {
+      if (parseInt(e.row.cancelAvailable)  > e.row.quantityAvailable) {
         return new Error(t('ingredientsStock.msg2'))
       }
       const regex = /^[1-9]\d*$/g
diff --git a/north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue b/north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue
index 6c23854..f324be1 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/replenish/PrintReplenishFlowCard.vue
@@ -367,6 +367,11 @@
     {field: 'glass_child', title: t('reportingWorks.glassChild'),width:110,filters: [{data: ''}],slots: {filter: 'num1_filter'}, filterMethod: filterChanged},
     {field: 'reporting_work_id', title: t('reportingWorks.reportingWorkId'),width:120,filters: [{data: ''}],slots: {filter: 'num1_filter'}, filterMethod: filterChanged},
     {field: 'create_time', title: t('basicData.reportData'),width:120},
+    {
+      field: 'print_num',
+      title: t('processCard.printStatus'),
+       width: 120
+    },
   ],//琛ㄥご鎸夐挳
 
   toolbarConfig: {
@@ -712,10 +717,9 @@
 
 // 鐩戝惉鎵撳嵃瀹屾垚浜嬩欢
 const printNumber = () =>{
-
-  selectRecordsData.value.printList=selectRecords
-  let printState=0
-  request.post(`/processCard/updatePrintState/${printState}`, selectRecordsData.value).then((res) => {
+  const $grid = xGrid.value
+  selectRecords = $grid.getCheckboxRecords()
+  request.post(`/Replenish/updatePrintNum`, selectRecords).then((res) => {
     if (res.code == 200 && res.data === true) {
     } else {
 
@@ -848,7 +852,7 @@
         destroy-on-close
         style="width: 75%;height:75% ">
       <template #header="{ close, titleId, titleClass }">
-        <el-button v-print="printContent"   :icon="Printer" circle />
+        <el-button v-print="printContent"   :icon="Printer" circle @click="printNumber"/>
       </template>
       <print-process id="child" :printList="printRow.list" :printMerge="printRow.printMergeVal" :printLike="printRow.like"
                      :mergeTechnologyNumber="printRow.mergeTechnologyNumber"
diff --git a/north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue b/north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue
index d1ca37f..78a6330 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/report/CrossProcessBreaking.vue
@@ -18,6 +18,9 @@
     {field: 'breakageReason', width: 100,title: t('reportingWorks.breakageReason'), sortable: true,showOverflow:"ellipsis"},
     {field: 'breakageQuantity', width: 100,title: t('reportingWorks.quantityBroken'), sortable: true},
     {field: 'responsiblePersonnel', width: 120,title: t('rework.responsibilityInformation'), sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'childWidth', width: 100, title: t('order.width'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'childHeight', width: 100, title: t('order.height'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'thickness',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, width: 90, title: t('order.totalThickness')},
     {field: 'area',width: 100, title: t('reportingWorks.wornArea'), sortable: true},
     {field: 'creator',width: 120, title: t('product.creator'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
     {field: 'project', width: 120,title: t('order.project'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
diff --git a/north-glass-erp/northglass-erp/src/views/pp/report/DamageReport.vue b/north-glass-erp/northglass-erp/src/views/pp/report/DamageReport.vue
index 35d1b2d..c67cd3a 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/report/DamageReport.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/report/DamageReport.vue
@@ -46,6 +46,7 @@
     {field: 'creator',width: 120, title: t('product.creator'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
     {field: 'childWidth', width: 100, title: t('order.width'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
     {field: 'childHeight', width: 100, title: t('order.height'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'thickness',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, width: 90, title: t('order.totalThickness')},
     {field: 'breakageQuantity', width: 120, title: t('reportingWorks.quantityBroken')},
     {field: 'area', width: 120, title: t('reportingWorks.wornArea')},
     {field: 'personnel', width: 120, title: t('reportingWorks.responsiblePersonnel')},
@@ -55,7 +56,7 @@
   data:[],//琛ㄦ牸鏁版嵁
   url :'/report/damageReport',
   exportUrl :'/report/exportDamageReport',
-  exportName:t('report.crossProcessBreakdown'),
+  exportName:t('report.secondaryBrokenTotal'),
   footList:['breakageQuantity','area']
 })
 
diff --git a/north-glass-erp/northglass-erp/src/views/pp/report/NotCrossProcessBreaking.vue b/north-glass-erp/northglass-erp/src/views/pp/report/NotCrossProcessBreaking.vue
index 976b2b9..7bfd3e8 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/report/NotCrossProcessBreaking.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/report/NotCrossProcessBreaking.vue
@@ -18,6 +18,9 @@
     {field: 'breakageReason', width: 100,title: t('reportingWorks.breakageReason'), sortable: true,showOverflow:"ellipsis"},
     {field: 'breakageQuantity', width: 100,title: t('reportingWorks.quantityBroken'), sortable: true},
     {field: 'responsiblePersonnel', width: 120,title: t('rework.responsibilityInformation'), sortable: true,showOverflow:"ellipsis",filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'childWidth', width: 100, title: t('order.width'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'childHeight', width: 100, title: t('order.height'), filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
+    {field: 'thickness',filters:[{ data: '' }],slots: { filter: 'num1_filter' }, width: 90, title: t('order.totalThickness')},
     {field: 'area',width: 100, title: t('reportingWorks.wornArea'), sortable: true},
     {field: 'creator',width: 120, title: t('product.creator'), sortable: true,showOverflow:"ellipsis" ,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
     {field: 'project', width: 120,title: t('order.project'), sortable: true,filters:[{ data: '' }],slots: { filter: 'num1_filter' }},
@@ -28,7 +31,7 @@
   data:[],//琛ㄦ牸鏁版嵁
   url :'/report/notCrossProcessBreaking',
   exportUrl :'/report/exportNotCrossProcessBreaking',
-  exportName:t('report.crossProcessBreakdown'),
+  exportName:t('report.notCrossProcessBreakdown'),
   footList:['breakageQuantity','area']
 })
 
diff --git a/north-glass-erp/northglass-erp/src/views/pp/report/ProcessToBeCompleted.vue b/north-glass-erp/northglass-erp/src/views/pp/report/ProcessToBeCompleted.vue
index 4a134e7..8202ab4 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/report/ProcessToBeCompleted.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/report/ProcessToBeCompleted.vue
@@ -290,6 +290,7 @@
       filterMethod: filterChanged},
     {field: 'thickness',filters: [{data: ''}],
       slots: {filter: 'num1_filter'},
+      filterMethod: filterChanged,
       width: 90, title: t('order.totalThickness')},
 
     {field: 'quantity', width: 120, title: t('order.quantity'),filters: [{data: ''}],
diff --git a/north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue b/north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue
index ec19396..5e01eef 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue
@@ -143,6 +143,7 @@
   }
   request.post(`/report/workInProgress/${pageNum.value}/${total.pageSize}/${inputVal}/${inputProject}/${selectProcesses}/${optionVal}/${terminationVals}`, filterData.value).then((res) => {
     if (res.code == 200) {
+
       total.value = res.data.total
       produceList = deepClone(res.data.data)
       produceList.forEach(item => {
@@ -180,10 +181,10 @@
   request.post(`/report/workInProgress/${pageNum.value}/${total.pageSize}/${inputVal}/${inputProject}/${selectProcesses}/${optionVal}/${terminationVals}`, filterData.value).then((res) => {
 
     if (res.code == 200) {
-      total.dataTotal = res.data.total.total * 1
-      total.pageTotal = res.data.total.pageTotal
-      pageTotal.value = res.data.total
-      total.value = res.data.total
+      total.value = res.data.total;
+      total.dataTotal = res.data.total.total * 1;
+      total.pageTotal = res.data.total.pageTotal;
+      pageTotal.value = res.data.total;
       res.data.data.forEach(item => {
         // 濡傛灉 shape 鍙兘鏄瓧绗︿覆灏辩敤 ==锛屽鏋滀竴瀹氭槸鏁板瓧灏辩敤 ===
         item.shape = (item.shape == 2) ? t('order.alien') : t('order.universalShape');
@@ -246,10 +247,10 @@
   request.post(`/report/workInProgress/${pageNum.value}/${total.pageSize}/${inputVal}/${inputProject}/${selectProcesses}/${optionVal}/${terminationVals}`, filterData.value).then((res) => {
 
     if (res.code == 200) {
-      total.dataTotal = res.data.total.total * 1
-      total.pageTotal = res.data.total.pageTotal
-      pageTotal.value = res.data.total
-      total.value = res.data.total
+      total.value = res.data.total;
+      total.dataTotal = res.data.total.total * 1;
+      total.pageTotal = res.data.total.pageTotal;
+      pageTotal.value = res.data.total;
       produceList = deepClone(res.data.data)
       produceList.forEach(item => {
         // 濡傛灉 shape 鍙兘鏄瓧绗︿覆灏辩敤 ==锛屽鏋滀竴瀹氭槸鏁板瓧灏辩敤 ===
@@ -359,6 +360,7 @@
       slots: {filter: 'num1_filter'},},
     {field: 'childHeight', width: 120, title: t('order.height'),visible: true,filters: [{data: ''}],
       slots: {filter: 'num1_filter'},},
+    {field: 'thickness',width: 90, title: t('order.totalThickness'),visible: true},
     {field: 'stockNum', width: 120, title: t('productStock.inventoryQuantity'),visible: true,filters: [{data: ''}],
       slots: {filter: 'num1_filter'},},
     {field: 'stockArea', width: 120, title: t('report.inventoryArea'),visible: true,filters: [{data: ''}],
@@ -394,7 +396,7 @@
         const List = ["quantity",'stockNum','stockArea',]
         if (List.includes(column.field)) {
           //return footSum(data, column.field)
-          return footSum(data, column.field)
+          return total.value?.[column.field] ?? 0
         }
         return ''
       })
diff --git a/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue b/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
index a95b10e..d74604d 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/delivery/CreateDelivery.vue
@@ -468,7 +468,7 @@
             otherMoney:otherMoney.value,
             deliveryIdType:company.deliveryIdType,
             deliveryOutbound:company.deliveryOutbound,
-            type:2
+            type:1
 
           })
           gridOptions.toolbarConfig.buttons[0].disabled = true
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java
index a9a1d17..c559028 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReplenishController.java
@@ -108,4 +108,13 @@
         //鍙傛暟锛氱浉搴旂殑鏁版嵁锛屽疄浣撶被淇℃伅锛岀浉搴旂殑鏂规硶锛堟暟鎹幏鍙栵級锛岀敓鎴愮殑excel鍚嶅瓧
         DownExcel.download(response, exportReplenishDTO.class, replenishService.exportReplenishSv(dates), "PatchLogAddDTO");
     }
+
+    @ApiOperation("淇敼鎵撳嵃娆℃暟")
+    @PostMapping("/updatePrintNum")
+    public Result updatePrintNum(
+            @RequestBody List<Map<String, Object>> object
+    ) {
+
+        return Result.success(replenishService.updatePrintNumSv(object));
+    }
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java
index 32a6f69..ba60fca 100644
--- a/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java
+++ b/north-glass-erp/src/main/java/com/example/erp/controller/pp/ReportController.java
@@ -213,21 +213,21 @@
     }
     @ApiOperation("璺ㄥ伐搴忔鐮存姤琛ㄥ鍑�")
     @PostMapping("/exportCrossProcessBreaking")
-    public void exportCrossProcessBreaking(HttpServletResponse response, @RequestBody List<LocalDate> dates) throws IOException, IllegalAccessException, InstantiationException {
+    public void exportCrossProcessBreaking(HttpServletResponse response, @RequestBody List<String> dates) throws IOException, IllegalAccessException, InstantiationException {
         //鍙傛暟锛氱浉搴旂殑鏁版嵁锛屽疄浣撶被淇℃伅锛岀浉搴旂殑鏂规硶锛堟暟鎹幏鍙栵級锛岀敓鎴愮殑excel鍚嶅瓧
         DownExcel.download(response, CrossProcessBreakingDTO.class, reportService.exportCrossProcessBreakingSv(dates), "CrossProcessBreaking");
     }
 
     @ApiOperation("闈炶法宸ュ簭娆$牬鎶ヨ〃瀵煎嚭")
     @PostMapping("/exportNotCrossProcessBreaking")
-    public void exportNotCrossProcessBreaking(HttpServletResponse response, @RequestBody List<LocalDate> dates) throws IOException, IllegalAccessException, InstantiationException {
+    public void exportNotCrossProcessBreaking(HttpServletResponse response, @RequestBody List<String> dates) throws IOException, IllegalAccessException, InstantiationException {
         //鍙傛暟锛氱浉搴旂殑鏁版嵁锛屽疄浣撶被淇℃伅锛岀浉搴旂殑鏂规硶锛堟暟鎹幏鍙栵級锛岀敓鎴愮殑excel鍚嶅瓧
         DownExcel.download(response, CrossProcessBreakingDTO.class, reportService.exportNotCrossProcessBreakingSv(dates), "CrossProcessBreaking");
     }
 
     @ApiOperation("娆$牬鏄庣粏鎶ヨ〃瀵煎嚭")
     @PostMapping("/exportDamageReport")
-    public void exportDamageReport(HttpServletResponse response, @RequestBody Map<String, Object> dates) throws IOException, IllegalAccessException, InstantiationException {
+    public void exportDamageReport(HttpServletResponse response, @RequestBody List<String> dates) throws IOException, IllegalAccessException, InstantiationException {
         //鍙傛暟锛氱浉搴旂殑鏁版嵁锛屽疄浣撶被淇℃伅锛岀浉搴旂殑鏂规硶锛堟暟鎹幏鍙栵級锛岀敓鎴愮殑excel鍚嶅瓧
         DownExcel.download(response, DamageReportDTO.class, reportService.exportDamageReportSv(dates), "DamageReport");
     }
diff --git a/north-glass-erp/src/main/java/com/example/erp/dto/pp/CrossProcessBreakingDTO.java b/north-glass-erp/src/main/java/com/example/erp/dto/pp/CrossProcessBreakingDTO.java
index 7a76551..08d2b45 100644
--- a/north-glass-erp/src/main/java/com/example/erp/dto/pp/CrossProcessBreakingDTO.java
+++ b/north-glass-erp/src/main/java/com/example/erp/dto/pp/CrossProcessBreakingDTO.java
@@ -27,6 +27,12 @@
     private String breakageType;
     @ExcelProperty("娆$牬鍘熷洜")
     private String breakageReason;
+    @ExcelProperty("瀹�")
+    private Double childWidth;
+    @ExcelProperty("楂�")
+    private Double childHeight;
+    @ExcelProperty("鍘氬害")
+    private String thickness;
     @ExcelProperty("娆$牬鏁伴噺")
     private Integer breakageQuantity;
     @ExcelProperty("娆$牬闈㈢Н")
@@ -45,4 +51,5 @@
     private String creator;
     @ExcelProperty("鎶ュ伐缂栧彿")
     private String reportingWorkId;
+
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/dto/pp/DamageReportDTO.java b/north-glass-erp/src/main/java/com/example/erp/dto/pp/DamageReportDTO.java
index eae38a9..56d3cee 100644
--- a/north-glass-erp/src/main/java/com/example/erp/dto/pp/DamageReportDTO.java
+++ b/north-glass-erp/src/main/java/com/example/erp/dto/pp/DamageReportDTO.java
@@ -48,10 +48,13 @@
     private Double childWidth;
     @ExcelProperty("楂�")
     private Double childHeight;
+    @ExcelProperty("鍘氬害")
+    private String thickness;
     @ExcelProperty("鎶ュ伐宸ュ簭")
     private String thisProcess;
     @ExcelProperty("鍒涘缓浜�")
     private String creator;
     @ExcelProperty("鎶ュ伐缂栧彿")
     private String reportingWorkId;
+
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/dto/pp/ProcessToBeCompletedDTO.java b/north-glass-erp/src/main/java/com/example/erp/dto/pp/ProcessToBeCompletedDTO.java
index 49bf585..720774b 100644
--- a/north-glass-erp/src/main/java/com/example/erp/dto/pp/ProcessToBeCompletedDTO.java
+++ b/north-glass-erp/src/main/java/com/example/erp/dto/pp/ProcessToBeCompletedDTO.java
@@ -47,4 +47,6 @@
     private Double incompleteArea;
     @ExcelProperty("鎴愬搧鍚嶇О")
     private String productName;
+    @ExcelProperty("鍘氬害")
+    private String thickness;
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/dto/pp/WorkInProgressDTO.java b/north-glass-erp/src/main/java/com/example/erp/dto/pp/WorkInProgressDTO.java
index 1e3b104..cfc468d 100644
--- a/north-glass-erp/src/main/java/com/example/erp/dto/pp/WorkInProgressDTO.java
+++ b/north-glass-erp/src/main/java/com/example/erp/dto/pp/WorkInProgressDTO.java
@@ -3,6 +3,8 @@
 import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 @Data
 public class WorkInProgressDTO {
     @ExcelProperty("宸ュ簭")
@@ -31,10 +33,12 @@
     private Double childWidth;
     @ExcelProperty("楂�")
     private Double childHeight;
+    @ExcelProperty("鍘氬害")
+    private BigDecimal thickness;
     @ExcelProperty("搴撳瓨鏁�")
     private Integer stockNum;
     @ExcelProperty("搴撳瓨闈㈢Н")
-    private Double stockArea;
+    private BigDecimal stockArea;
     @ExcelProperty("鎴愬搧鍚嶇О")
     private String productName;
     @ExcelProperty("鍦ㄥ埗鍝佸悕绉�")
@@ -45,4 +49,5 @@
     private String glassNumber;
     @ExcelProperty("涓婂伐搴忔姤宸ョ彮缁�")
     private String teamsGroupsName;
+
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/PatchLogMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/PatchLogMapper.java
index 8eb6174..95666d2 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/PatchLogMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/PatchLogMapper.java
@@ -7,6 +7,7 @@
 import com.example.erp.entity.pp.PatchLog;
 import com.example.erp.entity.pp.ReportingWork;
 import com.github.yulichang.base.MPJBaseMapper;
+import io.swagger.models.auth.In;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -55,5 +56,7 @@
     Integer selectProjectCount(String processId, String patchId, Integer technologyNumber);
 
     List<exportReplenishDTO> exportReplenishMp(List<LocalDate> dates);
+
+    Boolean updatePrintNumMp(Integer id);
 }
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java
index 08dcd08..9175bfb 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/pp/ReportMapper.java
@@ -8,6 +8,7 @@
 
 import java.sql.Date;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 
@@ -48,13 +49,13 @@
 
     List<Map<String, String>> rawMaterialRequisitionMp(Date selectTime1, Date selectTime2, Report report);
 
-    List<CrossProcessBreakingDTO> exportCrossProcessBreakingMp(List<LocalDate> dates);
+    List<CrossProcessBreakingDTO> exportCrossProcessBreakingMp(List<String> dates);
 
-    List<CrossProcessBreakingDTO> exportNotCrossProcessBreakingMp(List<LocalDate> dates);
+    List<CrossProcessBreakingDTO> exportNotCrossProcessBreakingMp(List<LocalDateTime> dates);
 
     Map<String, Integer> getDamageReportPageTotal(Integer offset, Integer pageSize, String selectTime1, String selectTime2, DamageReportDTO damageReportDTO);
 
-    List<DamageReportDTO> exportDamageReportMp(List<LocalDate> dates);
+    List<DamageReportDTO> exportDamageReportMp(List<LocalDateTime> dates);
 
     List<OrderPlanDecompositionDTO> exportOrderPlanDecompositionMp(List<LocalDate> dates);
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/ProductDetailMapper.java b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/ProductDetailMapper.java
index c0b78e1..49a6db3 100644
--- a/north-glass-erp/src/main/java/com/example/erp/mapper/sd/ProductDetailMapper.java
+++ b/north-glass-erp/src/main/java/com/example/erp/mapper/sd/ProductDetailMapper.java
@@ -13,4 +13,6 @@
     boolean insertList(List<ProductDetail> getProductDetails);
 
     String getGlassNameByGroup(Integer productId, Integer minTechnologyNumberByGroup, Integer maxTechnologyNumberByGroup);
+
+    String getGlassName(Integer productId);
 }
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java
index 9025211..602db86 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java
@@ -432,5 +432,18 @@
     public List<exportReplenishDTO> exportReplenishSv(List<LocalDate> dates) {
         return patchMapper.exportReplenishMp(dates);
     }
+
+    public Boolean updatePrintNumSv(List<Map<String, Object>> list) {
+        if (!list.isEmpty()){
+            for (Map<String, Object> item : list) {
+                Integer id = (Integer) item.get("id");
+                patchMapper.updatePrintNumMp(id);
+            }
+            return true;
+        }else {
+            return false;
+        }
+
+    }
 }
 
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
index 6b1f586..b68291d 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java
@@ -15,9 +15,11 @@
 import com.example.erp.entity.pp.Report;
 import com.example.erp.mapper.pp.*;
 import com.example.erp.mapper.sd.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.annotation.PreDestroy;
 import javax.annotation.Resource;
@@ -32,6 +34,8 @@
 import java.util.*;
 import java.util.concurrent.*;
 import java.util.function.Function;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 import static cn.hutool.core.convert.Convert.toDouble;
@@ -58,6 +62,33 @@
     @Resource
     private AsyncQueryExecutor asyncExecutor;
 
+
+    //鏍规嵁鍦ㄥ埗鍝佸悕绉拌幏鍙栧帤搴�
+    private List<BigDecimal> parseGlassThicknessList(String glassName) {
+        List<BigDecimal> list = new ArrayList<>();
+        if (glassName == null || glassName.isEmpty()) {
+            return list;
+        }
+
+        // 鍖归厤鎵�鏈� "鏁板瓧 + mm"锛屾敮鎸佸皬鏁帮紝渚嬪 3.2mm銆�5mm銆�8mm
+        Pattern pattern = Pattern.compile("(\\d+(?:\\.\\d+)?)mm");
+        Matcher matcher = pattern.matcher(glassName);
+
+        while (matcher.find()) {
+            String numStr = matcher.group(1); // 鎹曡幏 5銆�8銆�3.2
+            try {
+                list.add(new BigDecimal(numStr));
+            } catch (Exception ignore) {
+            }
+        }
+        return list;
+    }
+
+    //鐜荤拑鍘氬害姹傚拰
+    private BigDecimal calcGlassThicknessSum(String glassName) {
+        return parseGlassThicknessList(glassName).stream()
+                .reduce(BigDecimal.ZERO, BigDecimal::add);
+    }
 
     //涓婂伐搴忔姤宸ョ彮缁�
     private void mergeTeamsGroupsName( List<WorkInProgressDTO> dataList1,List<WorkInProgressDTO> dataList2) {
@@ -86,9 +117,11 @@
               if(productDetail!=null){
                   dto1.setGlassName(productDetail.getDetail());
               }
+              BigDecimal thicknessSum = calcGlassThicknessSum(productDetail.getDetail());
+              dto1.setThickness(thicknessSum);
 
             //basicData.getNickname().equals("stepC")
-          }else if(basicData.getNickname().equals("stepC")){
+          }else if(basicData.getNickname().equals("stepC")){//澶瑰眰
               OrderGlassDetail orderGlassDetailGroup = orderGlassDetailMapper
                       .selectOne(new QueryWrapper<OrderGlassDetail>()
                               .eq("order_id", dto1.getOrderId())
@@ -102,9 +135,13 @@
                       orderGlassDetailMapper.getMaxTechnologyNumberByGroup(dto1.getOrderId(),dto1.getOrderNumber(), String.valueOf(orderGlassDetailGroup.getGroup()))
               );
               dto1.setGlassName(glassName);
-
-          }else{
-              dto1.setGlassName(dto1.getProductName());
+              BigDecimal thicknessSum = calcGlassThicknessSum(glassName);
+              dto1.setThickness(thicknessSum);
+          }else{//涓┖
+              String glassName = productDetailMapper.getGlassName(orderDetail.getProductId());
+              dto1.setGlassName(glassName);
+              BigDecimal thicknessSum = calcGlassThicknessSum(glassName);
+              dto1.setThickness(thicknessSum);
           }
 
         }
@@ -973,12 +1010,22 @@
         return map;
     }
 
-    public List exportCrossProcessBreakingSv(List<LocalDate> dates) {
+    public List exportCrossProcessBreakingSv(List<String> dates) {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+        List<LocalDateTime> dateTimeList = dates.stream()
+                .map(s -> LocalDateTime.parse(s, formatter))
+                .collect(Collectors.toList());
         return reportMapper.exportCrossProcessBreakingMp(dates);
     }
 
-    public List exportNotCrossProcessBreakingSv(List<LocalDate> dates) {
-        return reportMapper.exportNotCrossProcessBreakingMp(dates);
+    public List exportNotCrossProcessBreakingSv(List<String> dates) {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+        List<LocalDateTime> dateTimeList = dates.stream()
+                .map(s -> LocalDateTime.parse(s, formatter))
+                .collect(Collectors.toList());
+        return reportMapper.exportNotCrossProcessBreakingMp(dateTimeList);
     }
 
     //    public List exportTeamOutputSv(Map<String, Object> dates) {
@@ -990,9 +1037,15 @@
 //        String laminating = reportMapper.getLaminating(process);
 //        return reportMapper.exportTeamOutputMp(date,process,laminating);
 //    }
-    public List exportDamageReportSv(Map<String, Object> dates) {
-        List<LocalDate> date= (List<LocalDate>) dates.get("date");
-        return reportMapper.exportDamageReportMp(date);
+    public List exportDamageReportSv(List<String> dates) {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+        List<LocalDateTime> dateTimeList = dates.stream()
+                .map(s -> LocalDateTime.parse(s, formatter))
+                .collect(Collectors.toList());
+
+        // 杩欓噷鐢� LocalDateTime 鍘昏皟鐢� mapper
+        return reportMapper.exportDamageReportMp(dateTimeList);
     }
 
     public List exportOrderPlanDecompositionSv(List<LocalDate> dates) {
diff --git a/north-glass-erp/src/main/resources/mapper/mm/FinishedGlassShelf.xml b/north-glass-erp/src/main/resources/mapper/mm/FinishedGlassShelf.xml
index b85bddf..ff6017c 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/FinishedGlassShelf.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/FinishedGlassShelf.xml
@@ -37,7 +37,7 @@
 
     <select id="getSelectFinishedGlassShelfInformationInventoryArea">
         SELECT
-            MAX(CAST(REGEXP_REPLACE(glass_shelf_number, '[^0-9]', '')AS UNSIGNED)) AS maxDindex
+            ifnull(MAX(CAST(REGEXP_REPLACE(glass_shelf_number, '[^0-9]', '')AS UNSIGNED)),0) AS maxDindex
         FROM
             finished_glass_shelf_information
         WHERE
diff --git a/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml b/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
index eef98e0..5fb149d 100644
--- a/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
+++ b/north-glass-erp/src/main/resources/mapper/mm/FinishedOperateLog.xml
@@ -80,7 +80,7 @@
         from (select *
         from mm.finished_operate_log aa where aa.operate_type = #{type}  and aa.status!='宸蹭綔搴�') fol
         left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
-        left join mm.finished_goods_inventory fgi on fgi.order_id = fol.order_id and fol.operation_number = fgi.order_number
+        left join mm.finished_goods_inventory fgi on fgi.order_id = fol.order_id and fol.operation_number = fgi.order_number and fgi.box_no=fol.remarks
         left join sd.`order` o on o.order_id=fol.order_id
         <where>
             date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
@@ -148,17 +148,20 @@
                 and o.project regexp #{finishedOperateLog.order.project}
             </if>
         </where>
+        group by fol.order_id,fol.operation_number,fol.remarks
         order by fol.operate_time desc
         limit #{offset},#{pageSize};
     </select>
 
     <select id="getSelectStorageRecordLogPageTotal">
-        select CEILING(count(fol.id)/#{pageSize}) as 'pageTotal',
-        count(fol.id) as 'total'
+        select
+        CEILING(count(zu.id)/#{pageSize}) as 'pageTotal',
+        count(zu.id) as 'total' from (
+        select fol.id
         from (select *
         from mm.finished_operate_log aa where aa.operate_type = #{type}  and aa.status!='宸蹭綔搴�') fol
         left join sd.order_detail od on fol.order_id = od.order_id and fol.operation_number = od.order_number
-        left join mm.finished_goods_inventory fgi on fgi.order_id = fol.order_id and fol.operation_number = fgi.order_number
+        left join mm.finished_goods_inventory fgi on fgi.order_id = fol.order_id and fol.operation_number = fgi.order_number and fgi.box_no=fol.remarks
         left join sd.`order` o on o.order_id=fol.order_id
         <where>
             date(fol.operate_time)>=#{startDate} and date(fol.operate_time) &lt;= #{endDate}
@@ -226,7 +229,9 @@
                 and o.project regexp #{finishedOperateLog.order.project}
             </if>
         </where>
+        group by fol.order_id,fol.operation_number,fol.remarks
         order by fol.`status` desc
+        ) as zu
     </select>
 
     <update id="updateToExamine">
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 cdef190..de8a8cd 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -1284,7 +1284,7 @@
     </select>
 
     <select id="selectReplenishPrintMp">
-        select fc.id,
+        select pl.id,
                fc.order_id,
                fc.process_id,
                o.customer_name,
@@ -1309,7 +1309,8 @@
                pl.reporting_work_id,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                AS glassNumber,
                pl.patch_id,
-               date(pl.create_time) as create_time
+               date(pl.create_time) as create_time,
+               pl.print_num
 
         from flow_card as fc
                  left join sd.order_glass_detail as ogd
diff --git a/north-glass-erp/src/main/resources/mapper/pp/PatchLogMapper.xml b/north-glass-erp/src/main/resources/mapper/pp/PatchLogMapper.xml
index b554941..77c5044 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/PatchLogMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/PatchLogMapper.xml
@@ -474,4 +474,8 @@
         </where>
         order by r.review_status,r.id desc
     </select>
+
+    <update id="updatePrintNumMp">
+        update pp.patch_log set print_num=IFNULL(print_num,0)+1 where id=#{id}
+    </update>
 </mapper>
\ No newline at end of file
diff --git a/north-glass-erp/src/main/resources/mapper/pp/Report.xml b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
index 03253e7..f169955 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/Report.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -278,13 +278,17 @@
                JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code,
                CONCAT(rw.process_id,'/',GROUP_CONCAT(distinct dd.technology_number SEPARATOR '')) as process_id,
                rw.creator,
-               rw.reporting_work_id
+               rw.reporting_work_id,
+               ogd.child_width,
+               ogd.child_height,
+               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) as thickness
         from
             sd.`order` as o left join sd.order_detail as od on o.order_id=od.order_id
                              left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number
                              left join pp.reporting_work as rw on rw.order_id=o.order_id
                              left join pp.damage_details as dd on dd.reporting_work_id=rw.reporting_work_id and dd.order_number=ogd.order_number
             and dd.technology_number=ogd.technology_number
+        left join sd.product_detail as pd on pd.prod_id=od.product_id
         where (rw.reporting_work_time) >= #{startDate}
           and (rw.reporting_work_time) &lt;= #{endDate}
           and rw.this_worn_quantity > 0
@@ -331,6 +335,15 @@
         <if test="crossProcessBreakingDTO.reportingWorkId != null and crossProcessBreakingDTO.reportingWorkId != ''">
             and rw.reporting_work_id like concat('%', #{crossProcessBreakingDTO.reportingWorkId}, '%')
         </if>
+        <if test="crossProcessBreakingDTO.childWidth != null and crossProcessBreakingDTO.childWidth != ''">
+            and ogd.child_width regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childWidth},'\\.0+$','')
+        </if>
+        <if test="crossProcessBreakingDTO.childHeight != null and crossProcessBreakingDTO.childHeight != ''">
+            and ogd.child_height regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childHeight},'\\.0+$','')
+        </if>
+        <if test="crossProcessBreakingDTO.thickness != null and crossProcessBreakingDTO.thickness != ''">
+            and JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) like concat('%', #{crossProcessBreakingDTO.thickness}, '%')
+        </if>
         GROUP BY dd.id
         order by dd.id desc
         limit #{offset},#{pageSize}
@@ -354,13 +367,17 @@
         JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code,
         CONCAT(rw.process_id,'/',GROUP_CONCAT(distinct dd.technology_number SEPARATOR '')) as process_id,
         rw.creator,
-        rw.reporting_work_id
+        rw.reporting_work_id,
+        ogd.child_width,
+        ogd.child_height,
+        JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) as thickness
         from
         sd.`order` as o left join sd.order_detail as od on o.order_id=od.order_id
         left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number
         left join pp.reporting_work as rw on rw.order_id=o.order_id
         left join pp.damage_details as dd on dd.reporting_work_id=rw.reporting_work_id and dd.order_number=ogd.order_number
         and dd.technology_number=ogd.technology_number
+        left join sd.product_detail as pd on pd.prod_id=od.product_id
         where (rw.reporting_work_time) >= #{startDate}
         and (rw.reporting_work_time) &lt;= #{endDate}
         and rw.this_worn_quantity > 0
@@ -406,6 +423,15 @@
         </if>
         <if test="crossProcessBreakingDTO.reportingWorkId != null and crossProcessBreakingDTO.reportingWorkId != ''">
             and rw.reporting_work_id like concat('%', #{crossProcessBreakingDTO.reportingWorkId}, '%')
+        </if>
+        <if test="crossProcessBreakingDTO.childWidth != null and crossProcessBreakingDTO.childWidth != ''">
+            and ogd.child_width regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childWidth},'\\.0+$','')
+        </if>
+        <if test="crossProcessBreakingDTO.childHeight != null and crossProcessBreakingDTO.childHeight != ''">
+            and ogd.child_height regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childHeight},'\\.0+$','')
+        </if>
+        <if test="crossProcessBreakingDTO.thickness != null and crossProcessBreakingDTO.thickness != ''">
+            and JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) like concat('%', #{crossProcessBreakingDTO.thickness}, '%')
         </if>
         GROUP BY dd.id
         order by dd.id desc
@@ -469,6 +495,15 @@
         <if test="crossProcessBreakingDTO.reportingWorkId != null and crossProcessBreakingDTO.reportingWorkId != ''">
             and rw.reporting_work_id like concat('%', #{crossProcessBreakingDTO.reportingWorkId}, '%')
         </if>
+        <if test="crossProcessBreakingDTO.childWidth != null and crossProcessBreakingDTO.childWidth != ''">
+            and ogd.child_width regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childWidth},'\\.0+$','')
+        </if>
+        <if test="crossProcessBreakingDTO.childHeight != null and crossProcessBreakingDTO.childHeight != ''">
+            and ogd.child_height regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childHeight},'\\.0+$','')
+        </if>
+        <if test="crossProcessBreakingDTO.thickness != null and crossProcessBreakingDTO.thickness != ''">
+            and JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) like concat('%', #{crossProcessBreakingDTO.thickness}, '%')
+        </if>
         order by dd.id desc
     </select>
 
@@ -528,6 +563,15 @@
         </if>
         <if test="crossProcessBreakingDTO.reportingWorkId != null and crossProcessBreakingDTO.reportingWorkId != ''">
             and rw.reporting_work_id like concat('%', #{crossProcessBreakingDTO.reportingWorkId}, '%')
+        </if>
+        <if test="crossProcessBreakingDTO.childWidth != null and crossProcessBreakingDTO.childWidth != ''">
+            and ogd.child_width regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childWidth},'\\.0+$','')
+        </if>
+        <if test="crossProcessBreakingDTO.childHeight != null and crossProcessBreakingDTO.childHeight != ''">
+            and ogd.child_height regexp REGEXP_REPLACE(#{crossProcessBreakingDTO.childHeight},'\\.0+$','')
+        </if>
+        <if test="crossProcessBreakingDTO.thickness != null and crossProcessBreakingDTO.thickness != ''">
+            and JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) like concat('%', #{crossProcessBreakingDTO.thickness}, '%')
         </if>
         order by dd.id desc
     </select>
@@ -788,7 +832,8 @@
         ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber,
         rw.this_process,
         rw.creator,
-        rw.reporting_work_id
+        rw.reporting_work_id,
+        JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) AS thickness
         FROM
         sd.ORDER AS o
         LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id
@@ -797,6 +842,7 @@
         AND dd.order_number = ogd.order_number
         AND dd.technology_number = ogd.technology_number
         left join sd.order_detail as od on o.order_id = od.order_id and od.order_number=ogd.order_number
+        left join sd.product_detail as pd on pd.prod_id=od.product_id
         WHERE
         rw.reporting_work_time >= #{selectTime1}
         AND rw.reporting_work_time &lt;=  #{selectTime2}
@@ -852,6 +898,9 @@
         </if>
         <if test="damageReportDTO.childHeight != null and damageReportDTO.childHeight != ''">
             and ogd.child_height regexp REGEXP_REPLACE(#{damageReportDTO.childHeight},'\\.0+$','')
+        </if>
+        <if test="damageReportDTO.thickness != null and damageReportDTO.thickness != ''">
+            and JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) like concat('%', #{damageReportDTO.thickness}, '%')
         </if>
         GROUP BY
         dd.id
@@ -870,6 +919,7 @@
         AND dd.order_number = ogd.order_number
         AND dd.technology_number = ogd.technology_number
         left join sd.order_detail as od on o.order_id = od.order_id and od.order_number=ogd.order_number
+        left join sd.product_detail as pd on pd.prod_id=od.product_id
         WHERE
         rw.reporting_work_time >= #{selectTime1}
         AND rw.reporting_work_time &lt;=  #{selectTime2}
@@ -924,6 +974,9 @@
         </if>
         <if test="damageReportDTO.childHeight != null and damageReportDTO.childHeight != ''">
             and ogd.child_height regexp REGEXP_REPLACE(#{damageReportDTO.childHeight},'\\.0+$','')
+        </if>
+        <if test="damageReportDTO.thickness != null and damageReportDTO.thickness != ''">
+            and JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) like concat('%', #{damageReportDTO.thickness}, '%')
         </if>
         limit #{offset},#{pageSize};
     </select>
@@ -1302,7 +1355,10 @@
                JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code,
                CONCAT(rw.process_id,'/',GROUP_CONCAT(distinct dd.technology_number SEPARATOR '')) as process_id,
                rw.creator,
-               rw.reporting_work_id
+               rw.reporting_work_id,
+               ogd.child_width,
+               ogd.child_height,
+               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) as thickness
         from damage_details as dd
                  left join reporting_work as rw
                            on rw.reporting_work_id = dd.reporting_work_id
@@ -1339,7 +1395,10 @@
                JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code,
                CONCAT(rw.process_id,'/',GROUP_CONCAT(distinct dd.technology_number SEPARATOR '')) as process_id,
                rw.creator,
-               rw.reporting_work_id
+               rw.reporting_work_id,
+               ogd.child_width,
+               ogd.child_height,
+               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) as thickness
         from damage_details as dd
                  left join reporting_work as rw
                            on rw.reporting_work_id = dd.reporting_work_id
@@ -1381,7 +1440,8 @@
                ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber,
                rw.this_process,
                rw.creator,
-               rw.reporting_work_id
+               rw.reporting_work_id,
+               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) AS thickness
         FROM sd.ORDER AS o
                  LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id
                  LEFT JOIN reporting_work AS rw ON rw.order_id = o.order_id
@@ -1389,6 +1449,7 @@
             AND dd.order_number = ogd.order_number
             AND dd.technology_number = ogd.technology_number
             left join sd.order_detail as od on o.order_id = od.order_id and od.order_number=ogd.order_number
+            left join sd.product_detail as pd on pd.prod_id=od.product_id
         WHERE rw.reporting_work_time >= #{dates[0]}
           and rw.reporting_work_time &lt;= #{dates[1]}
           AND dd.available = 0 and rw.reviewed_state>=0
@@ -1461,7 +1522,8 @@
                od.quantity - odpd.reporting_work_num                                as incompleteNum,
                ROUND(ogd.child_width * ogd.child_height * (od.quantity - odpd.reporting_work_num) / 1000000,
                      2)                                                             as incompleteArea,
-               od.product_name
+               od.product_name,
+               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) AS thickness
 
         from sd.order_detail AS od
                  LEFT JOIN sd.order_glass_detail AS ogd
@@ -1479,6 +1541,7 @@
                                and odpd.process_id = fc.process_id
                  left join sd.`order` as o
                            on o.order_id = od.order_id
+                 left join sd.product_detail as pd on pd.prod_id=od.product_id
         where  o.create_order>0
           and odpd.process = #{process}
           and date(o.create_time) >= #{date[0]}
@@ -2668,6 +2731,7 @@
                 AND dd.technology_number = ogd.technology_number
                 LEFT JOIN sd.order_detail AS od ON o.order_id = od.order_id
                 AND od.order_number = ogd.order_number
+                left join sd.product_detail as pd on pd.prod_id=od.product_id
         WHERE
             rw.reporting_work_time >= #{selectTime1}
           AND rw.reporting_work_time &lt;=  #{selectTime2}
@@ -2723,6 +2787,9 @@
         <if test="damageReportDTO.childHeight != null and damageReportDTO.childHeight != ''">
             and ogd.child_height regexp REGEXP_REPLACE(#{damageReportDTO.childHeight},'\\.0+$','')
         </if>
+        <if test="damageReportDTO.thickness != null and damageReportDTO.thickness != ''">
+            and JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) like concat('%', #{damageReportDTO.thickness}, '%')
+        </if>
     </select>
 
     <select id="teamOutputFootSum">
diff --git a/north-glass-erp/src/main/resources/mapper/sd/ProductDetailMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/ProductDetailMapper.xml
index c141a7f..055ac8e 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/ProductDetailMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/ProductDetailMapper.xml
@@ -33,4 +33,10 @@
       and glass_sort >= #{minTechnologyNumberByGroup}
       and glass_sort &gt;= #{minTechnologyNumberByGroup}
     </select>
+
+    <select id="getGlassName">
+        SELECT GROUP_CONCAT(detail SEPARATOR '+')
+        from sd.product_detail
+        where prod_id = #{productId} and detail_type='glass'
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0