From fec9f42e00f2df68a2a20cbf132b17bdeed8e63a Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期一, 25 八月 2025 09:19:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 north-glass-erp/src/main/resources/mapper/pp/Report.xml |  100 ++++++++++++++++++++++++++++++++++---------------
 1 files changed, 69 insertions(+), 31 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 2d019f6..4892304 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/Report.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -1367,56 +1367,74 @@
 
     <select id="teamOutputMp" resultMap="teamOutputMap">
         SELECT
+        *
+        FROM
+        (
+        SELECT
         rw.reporting_work_time,
         rw.this_process,
         rw.teams_groups_name,
         o.project,
         rw.process_id,
         fc.order_number,
-        MAX( ogd.child_width ) as width,
-        MAX( ogd.child_height ) as height,
+        MAX(ogd.child_width)  AS width,
+        MAX(ogd.child_height) AS height,
         od.edging_type,
-        rwd.completed_quantity as completed_quantity,
-        ROUND(MAX( ogd.child_width )*MAX( ogd.child_height )*rwd.completed_quantity/1000000,2) as area,
+        rwd.completed_quantity AS completed_quantity,
+        ROUND(MAX(ogd.child_width) * MAX(ogd.child_height) * rwd.completed_quantity / 1000000, 2) AS area,
         od.product_name,
-        JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code,
+        JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS code,
         rw.reviewed,
         rw.examine_time,
         rw.device_name,
         o.order_type,
---         GROUP_CONCAT(ogd.glass_child SEPARATOR '+') as workProcessName
         CASE
-        WHEN LOCATE('step',#{laminating})>0 THEN GROUP_CONCAT(ogd.glass_child SEPARATOR '+')
-        ELSE MAX( ogd.glass_child )
+        WHEN LOCATE('step', #{laminating}) > 0 THEN GROUP_CONCAT(ogd.glass_child SEPARATOR '+')
+        ELSE MAX(ogd.glass_child)
         END AS workProcessName,
-            o.batch
+        o.batch
         FROM
-        reporting_work as rw left join reporting_work_detail as rwd on rwd.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>0 and
-        rw.reporting_work_time >= #{selectTime1}
+        reporting_work AS rw
+        LEFT JOIN reporting_work_detail AS rwd
+        ON rwd.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 > 0
+        AND rw.reporting_work_time &gt;= #{selectTime1}
         AND rw.reporting_work_time &lt;  #{selectTime2}
-        and position(#{selectProcesses} in rw.this_process)
+        AND POSITION(#{selectProcesses} IN rw.this_process)
         <if test="teamOutputDTO.thisProcess != null and teamOutputDTO.thisProcess != ''">
-            and rw.this_process regexp #{teamOutputDTO.thisProcess}
+            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 REGEXP #{teamOutputDTO.teamsGroupsName}
         </if>
         <if test="teamOutputDTO.project != null and teamOutputDTO.project != ''">
-            and o.project regexp #{teamOutputDTO.project}
+            AND o.project REGEXP #{teamOutputDTO.project}
         </if>
         <if test="teamOutputDTO.processId != null and teamOutputDTO.processId != ''">
-            and rw.process_id regexp #{teamOutputDTO.processId}
+            AND rw.process_id REGEXP #{teamOutputDTO.processId}
         </if>
         <if test="teamOutputDTO.edgingType != null and teamOutputDTO.edgingType != ''">
-            and od.edging_type regexp #{teamOutputDTO.edgingType}
+            AND od.edging_type REGEXP #{teamOutputDTO.edgingType}
         </if>
         <if test="teamOutputDTO.deviceName != null and teamOutputDTO.deviceName != ''">
-            and rw.device_name regexp #{teamOutputDTO.deviceName}
+            AND rw.device_name REGEXP #{teamOutputDTO.deviceName}
         </if>
 
         <choose>
@@ -1431,7 +1449,7 @@
             </when>
             <otherwise>
                 GROUP BY
-                <if test="laminating == 'stepA' || laminating == 'stepC'" >
+                <if test="laminating == 'stepA' || laminating == 'stepC'">
                     ogd.`group`,
                 </if>
                 rw.reporting_work_id,
@@ -1439,16 +1457,20 @@
                 rw.this_process,
                 rw.teams_groups_name,
                 rwd.order_number
-
             </otherwise>
         </choose>
+        ) t
+        WHERE 1 = 1
+        <if test="teamOutputDTO.workProcessName != null and teamOutputDTO.workProcessName != ''">
+            AND t.workProcessName REGEXP #{teamOutputDTO.workProcessName}
+        </if>
         ORDER BY
-        rw.this_process,
-        rw.process_id,
-        rwd.order_number,
-        rw.reporting_work_time,
-        rw.teams_groups_name
-        limit #{offset},#{pageSize};
+        t.this_process,
+        t.process_id,
+        t.order_number,
+        t.reporting_work_time,
+        t.teams_groups_name
+        LIMIT #{offset}, #{pageSize};
     </select>
 
     <select id="exportTeamOutputMp">
@@ -2341,6 +2363,22 @@
         <if test="workInProgressDTO.technologyNumber != null and workInProgressDTO.technologyNumber != ''">
             and ogd.technology_number regexp #{workInProgressDTO.technologyNumber}
         </if>
+        <if test="workInProgressDTO.quantity != null and workInProgressDTO.quantity != ''">
+            and od.quantity regexp #{workInProgressDTO.quantity}
+        </if>
+        <if test="workInProgressDTO.childWidth != null and workInProgressDTO.childWidth != ''">
+            and ogd.child_width regexp #{workInProgressDTO.childWidth}
+        </if>
+        <if test="workInProgressDTO.childHeight != null and workInProgressDTO.childHeight != ''">
+            and ogd.child_height regexp #{workInProgressDTO.childHeight}
+        </if>
+        <if test="workInProgressDTO.stockNum != null and workInProgressDTO.stockNum != ''">
+            and (d.numCounts + d.patchNumSum - d.numCount -d.broken_num) regexp #{workInProgressDTO.stockNum}
+        </if>
+        <if test="workInProgressDTO.stockArea != null and workInProgressDTO.stockArea != ''">
+            and ROUND(ogd.child_width * ogd.child_height * (d.numCounts + d.patchNumSum - d.numCount -
+            d.broken_num) / 1000000, 2) regexp #{workInProgressDTO.stockArea}
+        </if>
         <if test="workInProgressDTO.glassNumber != null and workInProgressDTO.glassNumber != ''">
             and ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') regexp #{workInProgressDTO.glassNumber}
         </if>

--
Gitblit v1.8.0