From 1e31f9f7fe6f04236e97f72c0df3ce051d5f867e Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期一, 24 十一月 2025 16:26:23 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override

---
 north-glass-erp/src/main/resources/mapper/pp/Report.xml |   96 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 89 insertions(+), 7 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 d5008d7..7099592 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/Report.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -203,7 +203,8 @@
 
 
                ifnull(JSON_UNQUOTE(JSON_EXTRACT(a.other_columns, '$.S01')),'') AS glassNumber,
-               b.`group`
+               b.`group`,
+               c.termination_status
 
         from pp.flow_card as c
                  left join
@@ -250,7 +251,7 @@
                            on e.process_id = c.process_id
                                and e.technology_number = c.technology_number
                                and e.order_number = c.order_number
-        where a.order_id = #{orderId} and d.create_order>0 and c.quantity-ifnull(c.termination_quantity,0)>0
+        where a.order_id = #{orderId} and d.create_order>0 
         group by c.order_number,
                  c.technology_number,
                  c.process_id
@@ -969,7 +970,7 @@
         SUM(t.breakageQuantity) as breakageQuantity,
         SUM(t.breakageArea) as breakageArea,
         t.responsibleTeam,
-        CONCAT(ROUND(ROUND(SUM(t.area)/(SUM(t.area) + SUM(t.breakageArea)),2)*100), '%') as finished,
+        CONCAT(ROUND(TRUNCATE(SUM(t.area)/(SUM(t.area) + SUM(t.breakageArea)),2)*100), '%') as finished,
         t.product_name
         FROM
         (
@@ -1515,7 +1516,9 @@
           and position(#{process} in odpd.process)
           and position(ifnull(#{inputVal}, '') in od.order_id)
           and position(ifnull(#{project}, '') in o.project)
-
+        <if test="terminationVals != '1' and terminationVals != 1">
+            and fc.termination_status !=1
+        </if>
         group by fc.process_id, fc.order_number, fc.technology_number,odpd.process
         order by fc.process_id, fc.order_number, fc.technology_number
     </select>
@@ -1730,7 +1733,7 @@
             AND rw.this_process REGEXP #{teamOutputDTO.thisProcess}
         </if>
         <if test="teamOutputDTO.teamsGroupsName != null and teamOutputDTO.teamsGroupsName != ''">
-            AND rw.teams_groups_name REGEXP #{teamOutputDTO.teamsGroupsName}
+            and rw.teams_groups_name like concat('%', #{teamOutputDTO.teamsGroupsName}, '%')
         </if>
         <if test="teamOutputDTO.project != null and teamOutputDTO.project != ''">
             AND o.project REGEXP #{teamOutputDTO.project}
@@ -1883,7 +1886,7 @@
             and rw.this_process regexp #{teamOutputDTO.thisProcess}
         </if>
         <if test="teamOutputDTO.teamsGroupsName != null and teamOutputDTO.teamsGroupsName != ''">
-            and rw.teams_groups_name regexp #{teamOutputDTO.teamsGroupsName}
+            and rw.teams_groups_name like concat('%', #{teamOutputDTO.teamsGroupsName}, '%')
         </if>
         <if test="teamOutputDTO.project != null and teamOutputDTO.project != ''">
             and o.project regexp #{teamOutputDTO.project}
@@ -2378,6 +2381,9 @@
         and position(#{selectProcesses} in d.process)
         and position(#{orderId} in od.order_id)
         and position(#{inputProject} in o.project)
+        <if test="terminationVals != '1' and terminationVals != 1">
+            and fc.termination_status !=1
+        </if>
         <if test="workInProgressDTO.customerName != null and workInProgressDTO.customerName != ''">
             and o.customer_name regexp #{workInProgressDTO.customerName}
         </if>
@@ -2564,7 +2570,7 @@
             AND rw.this_process REGEXP #{teamOutputDTO.thisProcess}
         </if>
         <if test="teamOutputDTO.teamsGroupsName != null and teamOutputDTO.teamsGroupsName != ''">
-            AND rw.teams_groups_name REGEXP #{teamOutputDTO.teamsGroupsName}
+            and rw.teams_groups_name like concat('%', #{teamOutputDTO.teamsGroupsName}, '%')
         </if>
         <if test="teamOutputDTO.project != null and teamOutputDTO.project != ''">
             AND o.project REGEXP #{teamOutputDTO.project}
@@ -2701,6 +2707,9 @@
         and d.process!=SUBSTRING_INDEX(ogd.process, '->', 1)
         and position(#{orderId} in od.order_id)
         and position(#{inputProject} in o.project)
+        <if test="terminationVals != '1' and terminationVals != 1">
+            and fc.termination_status !=1
+        </if>
         <if test="workInProgressDTO.thisProcess != null and workInProgressDTO.thisProcess != ''">
             and d.process regexp #{workInProgressDTO.thisProcess}
         </if>
@@ -3156,8 +3165,13 @@
                                         ) AS cb ON cb.process_id = b.process_id
                                         AND cb.order_sort = b.order_number
                                         AND cb.technology_number = b.technology_number
+                             left join pp.flow_card as fc on fc.order_id= d.order_id and fc.order_number = d.order_number
+                                       and fc.technology_number = d.technology_number
                              where a.processing_card>0
                                and a.warehousing!=2
+                          <if test=" terminationVal != '1' and terminationVal != 1">
+                               and termination_status !=1
+                            </if>
                              GROUP BY  b.process_id, b.order_number,
                                  b.technology_number) as f
                                 LEFT JOIN sd.order_process_detail as e
@@ -3246,8 +3260,13 @@
         ) AS cb ON cb.process_id = b.process_id
         AND cb.order_sort = b.order_number
         AND cb.technology_number = b.technology_number
+        left join pp.flow_card as fc on fc.order_id= d.order_id and fc.order_number = d.order_number
+        and fc.technology_number = d.technology_number
         where a.processing_card>0
         and a.warehousing!=2
+        <if test="terminationVal != '1' and terminationVal != 1">
+            and termination_status !=1
+        </if>
         GROUP BY  b.process_id, b.order_number,
         b.technology_number) as f
         LEFT JOIN sd.order_process_detail as e
@@ -3332,8 +3351,13 @@
         ) AS cb ON cb.process_id = b.process_id
         AND cb.order_sort = b.order_number
         AND cb.technology_number = b.technology_number
+        left join pp.flow_card as fc on fc.order_id= d.order_id and fc.order_number = d.order_number
+        and fc.technology_number = d.technology_number
         where a.processing_card>0
         and a.warehousing!=2
+        <if test="terminationVal != '1' and terminationVal != 1">
+            and termination_status !=1
+        </if>
         and (c.quantity-b.reporting_work_num_count)>0
         GROUP BY  b.process_id, b.order_number,
         b.technology_number) as f
@@ -3583,5 +3607,63 @@
         GROUP BY hz.project,hz.batch,glass_child
     </select>
 
+    <select id="yieldProcessMp">
+        SELECT
+            t.this_process as process,
+            SUM(t.completed_quantity) as completedQuantity,
+            SUM(t.area) as completedArea,
+            SUM(t.breakageQuantity) as breakageQuantity,
+            SUM(t.breakageArea) as breakageArea,
+            CONCAT(ROUND(TRUNCATE(SUM(t.area)/(SUM(t.area) + SUM(t.breakageArea)),2)*100), '%') as finished
+        FROM
+            (
+                SELECT
+                    rw.reporting_work_time,
+                    rw.this_process,
+                    o.project,
+                    o.batch,
+                    rw.process_id,
+                    rwd.completed_quantity AS completed_quantity,
+                    ROUND(MAX(ogd.child_width) * MAX(ogd.child_height) * rwd.completed_quantity / 1000000, 2) AS area,
+                    IFNULL(dd.breakage_quantity,0) as breakageQuantity,
+                    IFNULL(ROUND(MAX(ogd.child_width) * MAX(ogd.child_height) * dd.breakage_quantity / 1000000, 2),0) AS breakageArea,
+                    IFNULL(dd.responsible_team,'') as responsibleTeam,
+                    od.product_name
 
+                FROM
+                    reporting_work AS rw
+                        LEFT JOIN reporting_work_detail AS rwd
+                                  ON rwd.reporting_work_id = rw.reporting_work_id
+                        LEFT JOIN damage_details as dd on dd.reporting_work_id = rw.reporting_work_id
+                        LEFT JOIN flow_card AS fc
+                                  ON fc.order_id = rw.order_id
+                                      AND fc.process_id = rw.process_id
+                                      AND fc.order_number = rwd.order_number
+                                      AND fc.technology_number = rwd.technology_number
+                        LEFT JOIN sd.order_glass_detail AS ogd
+                                  ON ogd.order_id = fc.order_id
+                                      AND ogd.order_number = fc.order_number
+                                      AND ogd.technology_number = fc.technology_number
+                        LEFT JOIN sd.order_detail AS od
+                                  ON od.order_id = ogd.order_id
+                                      AND od.order_number = ogd.order_number
+                        LEFT JOIN sd.`order` AS o
+                                  ON o.order_id = od.order_id
+                WHERE
+                    o.create_order > 0
+                  AND rw.reviewed_state >= 0
+                  AND rwd.completed_quantity + IFNULL(dd.breakage_quantity,0)> 0
+                  AND rw.reporting_work_time &gt;= #{selectTime1}
+                  AND rw.reporting_work_time &lt;= #{selectTime2}
+                GROUP BY
+                    rw.reporting_work_id,
+                    rw.process_id,
+                    rw.this_process,
+                    rw.teams_groups_name,
+                    rwd.order_number,
+                    rwd.technology_number
+            ) t
+        GROUP BY
+            t.this_process
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0