From 4408f77aac1a6f382758c142e9cf59e9685a1daa Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期五, 19 十二月 2025 08:40:44 +0800
Subject: [PATCH] 修改在制品报表终止数量不显示问题,添加报工后续工序减去对应终止数量

---
 north-glass-erp/northglass-erp/src/lang/en.js                                    |    3 +
 north-glass-erp/northglass-erp/src/lang/ar.js                                    |    3 +
 north-glass-erp/northglass-erp/src/lang/ru.js                                    |    3 +
 north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgressCombination.vue |    4 +-
 north-glass-erp/src/main/resources/mapper/pp/Report.xml                          |   45 ++++++++++------------
 north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgress.vue            |    2 
 north-glass-erp/northglass-erp/src/lang/zh.js                                    |    1 
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportService.java      |    2 
 north-glass-erp/northglass-erp/src/lang/kr.js                                    |    3 +
 north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml                   |   32 ++++++++++++----
 10 files changed, 58 insertions(+), 40 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/lang/ar.js b/north-glass-erp/northglass-erp/src/lang/ar.js
index 5ab5eb1..8962fe2 100644
--- a/north-glass-erp/northglass-erp/src/lang/ar.js
+++ b/north-glass-erp/northglass-erp/src/lang/ar.js
@@ -600,7 +600,8 @@
         terminationNo:'鍙栨秷缁堟',
         updateProcessMsg:'淇濆瓨澶辫触锛佽妫�鏌ュ彉鏇村伐搴忔槸鍚︽姤宸�',
         termination:'缁堟',
-
+        notTermination:'闅愯棌缁堟',
+        printProgressProcessCard:'娴佺▼鍗¤繘搴︽墦鍗�',
         quantity:'宸ョ▼鐢ㄦ暟閲�',
         print1:'11鍒�4琛�',
         print2:'6琛�3鍒�',
diff --git a/north-glass-erp/northglass-erp/src/lang/en.js b/north-glass-erp/northglass-erp/src/lang/en.js
index 3131fbd..3762a1c 100644
--- a/north-glass-erp/northglass-erp/src/lang/en.js
+++ b/north-glass-erp/northglass-erp/src/lang/en.js
@@ -600,7 +600,8 @@
         terminationNo:'鍙栨秷缁堟',
         updateProcessMsg:'淇濆瓨澶辫触锛佽妫�鏌ュ彉鏇村伐搴忔槸鍚︽姤宸�',
         termination:'缁堟',
-
+        notTermination:'闅愯棌缁堟',
+        printProgressProcessCard:'娴佺▼鍗¤繘搴︽墦鍗�',
         quantity:'宸ョ▼鐢ㄦ暟閲�',
         print1:'11鍒�4琛�',
         print2:'6琛�3鍒�',
diff --git a/north-glass-erp/northglass-erp/src/lang/kr.js b/north-glass-erp/northglass-erp/src/lang/kr.js
index 7a9a01b..7dc88c4 100644
--- a/north-glass-erp/northglass-erp/src/lang/kr.js
+++ b/north-glass-erp/northglass-erp/src/lang/kr.js
@@ -600,7 +600,8 @@
         terminationNo:'鍙栨秷缁堟',
         updateProcessMsg:'淇濆瓨澶辫触锛佽妫�鏌ュ彉鏇村伐搴忔槸鍚︽姤宸�',
         termination:'缁堟',
-
+        notTermination:'闅愯棌缁堟',
+        printProgressProcessCard:'娴佺▼鍗¤繘搴︽墦鍗�',
         quantity:'宸ョ▼鐢ㄦ暟閲�',
         print1:'11鍒�4琛�',
         print2:'6琛�3鍒�',
diff --git a/north-glass-erp/northglass-erp/src/lang/ru.js b/north-glass-erp/northglass-erp/src/lang/ru.js
index fb2f94e..1fbea73 100644
--- a/north-glass-erp/northglass-erp/src/lang/ru.js
+++ b/north-glass-erp/northglass-erp/src/lang/ru.js
@@ -600,7 +600,8 @@
         terminationNo:'鍙栨秷缁堟',
         updateProcessMsg:'淇濆瓨澶辫触锛佽妫�鏌ュ彉鏇村伐搴忔槸鍚︽姤宸�',
         termination:'缁堟',
-
+        notTermination:'闅愯棌缁堟',
+        printProgressProcessCard:'娴佺▼鍗¤繘搴︽墦鍗�',
         quantity:'宸ョ▼鐢ㄦ暟閲�',
         print1:'11鍒�4琛�',
         print2:'6琛�3鍒�',
diff --git a/north-glass-erp/northglass-erp/src/lang/zh.js b/north-glass-erp/northglass-erp/src/lang/zh.js
index fa13082..46bbb76 100644
--- a/north-glass-erp/northglass-erp/src/lang/zh.js
+++ b/north-glass-erp/northglass-erp/src/lang/zh.js
@@ -600,6 +600,7 @@
         terminationNo:'鍙栨秷缁堟',
         updateProcessMsg:'淇濆瓨澶辫触锛佽妫�鏌ュ彉鏇村伐搴忔槸鍚︽姤宸�',
         termination:'缁堟',
+        notTermination:'闅愯棌缁堟',
         printProgressProcessCard:'娴佺▼鍗¤繘搴︽墦鍗�',
 
         quantity:'宸ョ▼鐢ㄦ暟閲�',
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 5e01eef..556532d 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
@@ -527,7 +527,7 @@
           :model-value="terminationVal === 0"
           @change="onlandingTerminationChange"
       >
-        {{ t('processCard.termination') }}
+        {{ t('processCard.notTermination') }}
       </el-checkbox>
         &nbsp;
         <el-button type="primary" @click="getWorkOrder">{{$t('basicData.search')}}</el-button>
diff --git a/north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgressCombination.vue b/north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgressCombination.vue
index a88e7a1..4235538 100644
--- a/north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgressCombination.vue
+++ b/north-glass-erp/northglass-erp/src/views/pp/report/WorkInProgressCombination.vue
@@ -297,7 +297,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 ''
       })
@@ -408,7 +408,7 @@
           :model-value="terminationVal === 0"
           @change="onlandingTerminationChange"
       >
-        {{ t('processCard.termination') }}
+        {{ t('processCard.notTermination') }}
       </el-checkbox>
       &nbsp;
         <el-button type="primary" @click="getWorkOrder">{{$t('basicData.search')}}</el-button>
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 b68291d..b64171f 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
@@ -1328,7 +1328,7 @@
         }
 
         totalSumMap.put("stockNum", totalStockNum);
-        totalSumMap.put("stockArea", totalStockArea);
+        totalSumMap.put("stockArea", Double.valueOf(String.format("%.2f", totalStockArea)));
 
         map.put("data", resultList);
         map.put("total", totalSumMap);
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 c00dc2c..cb33dfa 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/Report.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -2570,10 +2570,9 @@
         from
         (
         SELECT (od.quantity) AS quantity,
-        d.numCounts + d.patchNumSum - d.numCount -d.broken_num as stockNum,
+        if(d.numCounts + d.patchNumSum - d.numCount -d.broken_num - fc.termination_quantity &lt;0,0,d.numCounts + d.patchNumSum - d.numCount -d.broken_num - fc.termination_quantity) as stockNum,
         ROUND(ogd.child_width * ogd.child_height *
-        (d.numCounts + d.patchNumSum - d.numCount -
-        d.broken_num) / 1000000, 2) as stockArea
+        (if(d.numCounts + d.patchNumSum - d.numCount -d.broken_num - fc.termination_quantity &lt;0,0,d.numCounts + d.patchNumSum - d.numCount -d.broken_num - fc.termination_quantity)) / 1000000, 2) as stockArea
         FROM
         sd.order_detail AS od
         LEFT JOIN sd.order_glass_detail AS ogd
@@ -2630,7 +2629,7 @@
         and position(#{selectProcesses} in d.process)
         left join sd.`order` as o on o.order_id=od.order_id
         where  o.create_order>0
-        and d.numCounts +d.patchNumSum - d.numCount - d.broken_num != 0
+        and if(d.numCounts + d.patchNumSum - d.numCount -d.broken_num - fc.termination_quantity &lt;0,0,d.numCounts + d.patchNumSum - d.numCount -d.broken_num - fc.termination_quantity) != 0
         and d.process!=SUBSTRING_INDEX(ogd.process, '->', 1)
         and position(#{selectProcesses} in d.process)
         and position(#{orderId} in od.order_id)
@@ -2979,10 +2978,9 @@
         od.quantity,
         ogd.child_width,
         ogd.child_height,
-        d.numCounts + d.patchNumSum - d.numCount -d.broken_num-ifnull(fc.termination_quantity,0) as stockNum,
+        if(d.numCounts + d.patchNumSum - d.numCount -d.broken_num-ifnull(fc.termination_quantity,0)&lt;0,0,d.numCounts + d.patchNumSum - d.numCount -d.broken_num-ifnull(fc.termination_quantity,0)) as stockNum,
         ROUND(ogd.child_width * ogd.child_height *
-        (d.numCounts + d.patchNumSum - d.numCount -
-        d.broken_num) / 1000000, 2) as stockArea,
+        (if(d.numCounts + d.patchNumSum - d.numCount -d.broken_num-ifnull(fc.termination_quantity,0)&lt;0,0,d.numCounts + d.patchNumSum - d.numCount -d.broken_num-ifnull(fc.termination_quantity,0))) / 1000000, 2) as stockArea,
         od.product_name,
         od.bend_radius,
         ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber
@@ -3041,7 +3039,7 @@
         left join sd.`order` as o on o.order_id=od.order_id
         LEFT JOIN sd.basic_data AS bd ON bd.basic_name = d.process
         where  o.create_order>0
-        and d.numCounts +d.patchNumSum - d.numCount - d.broken_num != 0
+        and if(d.numCounts + d.patchNumSum - d.numCount -d.broken_num-ifnull(fc.termination_quantity,0)&lt;0,0,d.numCounts + d.patchNumSum - d.numCount -d.broken_num-ifnull(fc.termination_quantity,0)) != 0
         and d.process!=SUBSTRING_INDEX(ogd.process, '->', 1)
         and position(#{orderId} in od.order_id)
         and position(#{inputProject} in o.project)
@@ -3460,13 +3458,10 @@
                  SELECT g.*
                       ,GROUP_CONCAT(g.glass_child SEPARATOR '+')  as childName
                  from( SELECT f.*,
-        if((e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num-f.termination_quantity)>0,
-        (e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num-f.termination_quantity),
-            0
-            ) as quantity,
-        if((e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num-f.termination_quantity)>0,
-        (e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num-f.termination_quantity)  ,
-            0)*f.area as glassArea
+        if(e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num-f.termination_quantity&lt;0,
+            0,e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num-f.termination_quantity) as quantity,
+        round(if(e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num-f.termination_quantity&lt;0,0,
+            e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num-f.termination_quantity)*f.area/1000000,2) as glassArea
                        from (SELECT a.order_id,
                                    if(a.batch!="",CONCAT(a.project,'(',a.batch,')'),a.project) as project,
                                     C.product_id,
@@ -3477,7 +3472,7 @@
                                     d.`group` ,
                                     b.broken_num,
                                     b.id,
-                                    c.area,
+                                    d.child_width * d.child_height as area,
                                     d.glass_child,
                                     ifnull(cb.patchNumSum,0) as patchNumSum,
                                     fc.termination_quantity
@@ -3526,7 +3521,7 @@
         f.technology_number ORDER BY f.process_id, f.order_number,
         f.technology_number) as g
                             <choose>
-                                <when test="laminating == 'stepC' and process == '棰勫帇'">
+                                <when test="laminating == 'stepB'">
                                     GROUP BY g.process_id, g.order_number, g.technology_number
                                 </when>
                                 <when test="laminating == 'stepC'">
@@ -3562,8 +3557,8 @@
         SELECT g.*
         ,GROUP_CONCAT(g.glass_child SEPARATOR '+')  as childName
         from( SELECT f.*,
-        e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num as quantity,
-        (e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num)*f.area as glassArea
+        if(e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num-f.termination_quantity&lt;0,0,e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num-f.termination_quantity) as quantity,
+        round(if(e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num-f.termination_quantity&lt;0,0,e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num-f.termination_quantity)*f.area/1000000,2) as glassArea
         from (SELECT a.order_id,
         a.project,
         C.product_id,
@@ -3574,9 +3569,10 @@
         d.`group` ,
         b.broken_num,
         b.id,
-        c.area,
+        d.child_width * d.child_height as area,
         d.glass_child,
-        ifnull(cb.patchNumSum,0) as patchNumSum
+        ifnull(cb.patchNumSum,0) as patchNumSum,
+        fc.termination_quantity
 
         FROM sd.`order` as a
         LEFT JOIN sd.order_process_detail as b
@@ -3618,10 +3614,11 @@
         on e.id=(f.id-1) and e.process_id = f.process_id and e.order_number = f.order_number and e.technology_number =f.technology_number
         where
         e.id is not null
-        and e.reporting_work_num_count-f.reporting_work_num_count>0 group by f.process_id, f.order_number,
+        and (e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num)>0 group by f.process_id, f.order_number,
+        f.technology_number ORDER BY f.process_id, f.order_number,
         f.technology_number) as g
         <choose>
-            <when test="laminating == 'stepC' and process == '棰勫帇'">
+            <when test="laminating == 'stepB'">
                 GROUP BY g.process_id, g.order_number, g.technology_number
             </when>
             <when test="laminating == 'stepC'">
@@ -3712,7 +3709,7 @@
         e.id is not null
         and (e.reporting_work_num_count+f.patchNumSum-f.reporting_work_num_count-f.broken_num)>0 ) as g
         <choose>
-            <when test="laminating == 'stepC' and process == '棰勫帇'">
+            <when test="laminating == 'stepB'">
                 GROUP BY g.process_id, g.order_number, g.technology_number
             </when>
             <when test="laminating == 'stepC'">
diff --git a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
index 23f89ed..6b81c99 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/ReportingWork.xml
@@ -137,8 +137,15 @@
             ogd.child_width,
             ogd.child_height,
             if(od.shape=1,'鏅舰',if(od.shape=2,'寮傚舰','')) as shape,
-            fc.quantity -fc.export_number + ifnull(patch.patch_num,0) -odpd.reporting_work_num -odpd.broken_num - ifnull(fc.termination_quantity,0)  as quantity,
-            fc.quantity -fc.export_number + ifnull(patch.patch_num,0) -odpd.reporting_work_num -odpd.broken_num - ifnull(fc.termination_quantity,0)   as completedQuantity,
+        IF(odpd.reporting_work_num>=fc.quantity-fc.termination_quantity,
+        (fc.quantity  -fc.export_number + ifnull(patch.patch_num,0) -odpd.reporting_work_num -odpd.broken_num),
+        IF((fc.quantity - ifnull(fc.termination_quantity,0) -fc.export_number + ifnull(patch.patch_num,0) -odpd.reporting_work_num -odpd.broken_num )&lt;0,0,
+            (fc.quantity - ifnull(fc.termination_quantity,0) -fc.export_number + ifnull(patch.patch_num,0) -odpd.reporting_work_num -odpd.broken_num)))
+        as quantity,
+        IF(odpd.reporting_work_num>=fc.quantity-fc.termination_quantity,
+        (fc.quantity  -fc.export_number + ifnull(patch.patch_num,0) -odpd.reporting_work_num -odpd.broken_num),
+        IF((fc.quantity - ifnull(fc.termination_quantity,0) -fc.export_number + ifnull(patch.patch_num,0) -odpd.reporting_work_num -odpd.broken_num )&lt;0,0,
+            (fc.quantity - ifnull(fc.termination_quantity,0) -fc.export_number + ifnull(patch.patch_num,0) -odpd.reporting_work_num -odpd.broken_num)))   as completedQuantity,
             odpd.reporting_work_num as completed,
             odpd.broken_num as onceBroken,
             if(fc.quantity -odpd.reporting_work_num = 0 ,true,false) as saveFlag, -- 鍒ゆ柇鏄惁宸茬粡瀹屾垚锛屽凡缁忓畬鎴愪笉搴忓彿鍜屽悓搴忓彿鏁伴噺鐩稿悓鎵嶈兘鎻愪氦
@@ -199,12 +206,21 @@
         ogd.child_width,
         ogd.child_height,
         if(od.shape=1,'鏅舰',if(od.shape=2,'寮傚舰','')) as shape,
-        if((odpds.reporting_work_num_count + ifnull(c.patchNumSum,0) -odpd.reporting_work_num_count -odpd.broken_num ) &lt; 0,
-        0,
-        odpds.reporting_work_num_count + ifnull(c.patchNumSum,0) -odpd.reporting_work_num_count -odpd.broken_num) as quantity,
-        if((odpds.reporting_work_num_count + ifnull(c.patchNumSum,0) -odpd.reporting_work_num_count -odpd.broken_num) &lt; 0,
-        0,
-        odpds.reporting_work_num_count + ifnull(c.patchNumSum,0) -odpd.reporting_work_num_count -odpd.broken_num) as completedQuantity,
+        IF(
+        odpds.reporting_work_num_count + ifnull( c.patchNumSum, 0 ) - odpd.reporting_work_num_count - odpd.broken_num&lt;=fc.quantity-fc.termination_quantity,
+        odpds.reporting_work_num_count + ifnull( c.patchNumSum, 0 ) - odpd.reporting_work_num_count - odpd.broken_num,
+        IF(odpds.reporting_work_num_count + ifnull( c.patchNumSum, 0 ) - odpd.reporting_work_num_count - odpd.broken_num-fc.termination_quantity&lt;0
+        ,0,
+        odpds.reporting_work_num_count + ifnull( c.patchNumSum, 0 ) - odpd.reporting_work_num_count - odpd.broken_num-fc.termination_quantity)
+        )
+        AS quantity,
+        IF(
+        odpds.reporting_work_num_count + ifnull( c.patchNumSum, 0 ) - odpd.reporting_work_num_count - odpd.broken_num&lt;=fc.quantity-fc.termination_quantity,
+        odpds.reporting_work_num_count + ifnull( c.patchNumSum, 0 ) - odpd.reporting_work_num_count - odpd.broken_num,
+        IF(odpds.reporting_work_num_count + ifnull( c.patchNumSum, 0 ) - odpd.reporting_work_num_count - odpd.broken_num-fc.termination_quantity&lt;0
+        ,0,
+        odpds.reporting_work_num_count + ifnull( c.patchNumSum, 0 ) - odpd.reporting_work_num_count - odpd.broken_num-fc.termination_quantity)
+        ) AS completedQuantity,
         odpd.reporting_work_num as completed,
         odpd.broken_num as onceBroken,
         ogd.`group`,

--
Gitblit v1.8.0