From a660db06773007b1be690e0674829c00a57aeb7b Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 24 十二月 2025 16:21:23 +0800
Subject: [PATCH] 订单首页流程卡新增楼层编号显示

---
 north-glass-erp/src/main/resources/mapper/pp/Report.xml |   57 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 34 insertions(+), 23 deletions(-)

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 f169955..3fac30d 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/Report.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -171,6 +171,7 @@
     <!--    娴佺▼鍗¤繘搴�-->
     <select id="processCardProgressMp">
         select a.product_name,
+               a.building_number,
                b.glass_child,
                d.order_type,
                concat(c.process_id, '/', c.technology_number) as process_id,
@@ -833,7 +834,9 @@
         rw.this_process,
         rw.creator,
         rw.reporting_work_id,
-        JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) AS thickness
+        JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) AS thickness,
+        ROUND(round( ogd.child_width * ogd.child_height * dd.breakage_quantity / 1000000, 2 )
+        * SUBSTRING_INDEX(IFNULL(JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')), '0'), 'mm', 1),2) AS pingfang
         FROM
         sd.ORDER AS o
         LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id
@@ -1441,7 +1444,9 @@
                rw.this_process,
                rw.creator,
                rw.reporting_work_id,
-               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) AS thickness
+               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')) AS thickness,
+            ROUND(round( ogd.child_width * ogd.child_height * dd.breakage_quantity / 1000000, 2 )
+            * SUBSTRING_INDEX(IFNULL(JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')), '0'), 'mm', 1),2) AS pingfang
         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
@@ -2566,10 +2571,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
@@ -2626,7 +2630,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)
@@ -2721,7 +2725,9 @@
     <select id="damageReportFootSum">
         SELECT
             SUM(dd.breakage_quantity) AS breakageQuantity,
-            ROUND(SUM(ogd.child_width * ogd.child_height * dd.breakage_quantity) / 1000000, 2) AS area
+            ROUND(SUM(ogd.child_width * ogd.child_height * dd.breakage_quantity) / 1000000, 2) AS area,
+        SUM(ROUND(round( ogd.child_width * ogd.child_height * dd.breakage_quantity / 1000000, 2 )
+        * SUBSTRING_INDEX(IFNULL(JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.thickness')), '0'), 'mm', 1),2)) AS pingfang
         FROM
             sd.ORDER AS o
                 LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id
@@ -2973,10 +2979,9 @@
         od.quantity,
         ogd.child_width,
         ogd.child_height,
-        d.numCounts + d.patchNumSum - d.numCount -d.broken_num 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
@@ -3035,7 +3040,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)
@@ -3454,8 +3459,10 @@
                  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,
                                    if(a.batch!="",CONCAT(a.project,'(',a.batch,')'),a.project) as project,
                                     C.product_id,
@@ -3466,9 +3473,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
@@ -3514,7 +3522,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'">
@@ -3530,6 +3538,7 @@
 
 
              ) as h
+        where h.quantity >0
         <choose>
             <when test="optionVal == 1">
                 GROUP BY thisProcess
@@ -3549,8 +3558,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,
@@ -3561,9 +3570,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
@@ -3605,10 +3615,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'">
@@ -3699,7 +3710,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'">

--
Gitblit v1.8.0