From b1c49ce18f24c7cf89c2b938f2737dba611d30ee Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期四, 15 八月 2024 15:43:54 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override

---
 north-glass-erp/src/main/resources/mapper/pp/Report.xml |   91 +++++++++++++++++++++++++++++++++++++++------
 1 files changed, 78 insertions(+), 13 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 340de15..eaf2a1a 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/Report.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -165,7 +165,8 @@
                e.broken_num,
                ifnull(f.inventory, 0)                         as inventory,
                round(ifnull(f.inventory, 0) * a.area, 2)      as inventoryArea,
-               ifnull(dd.quantity, 0)                         as shippedQuantity
+               ifnull(dd.quantity, 0)                         as shippedQuantity,
+               JSON_UNQUOTE(JSON_EXTRACT(a.other_columns, '$.S01')) AS glassNumber
         from flow_card as c
                  left join
              sd.order_detail as a
@@ -1203,8 +1204,8 @@
         if(od.shape=1,'鏅舰',if(od.shape=2,'寮傚舰','')) as shape,
         sum( pd.thickness ) as thickness,
         od.edging_type,
-        rwd.completed_quantity,
-        ROUND(MAX( ogd.child_width )*MAX( ogd.child_height )*rwd.completed_quantity/1000000,2) as area,
+        opd.reporting_work_num as completed_quantity,
+        ROUND(MAX( ogd.child_width )*MAX( ogd.child_height )*opd.reporting_work_num/1000000,2) as area,
         od.product_name,
         JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code
         FROM
@@ -1226,9 +1227,12 @@
         sd.product_detail
         WHERE
         detail_type = "glass"
-        ) AS pd ON pd.prod_id = od.product_id
-        AND pd.glass_sort = rwd.technology_number
-        where rw.reviewed_state=1 and rw.reporting_work_time between #{selectTime1} and #{selectTime2}
+        ) AS pd ON pd.prod_id = od.product_id AND pd.glass_sort = rwd.technology_number
+        LEFT JOIN sd.order_process_detail AS opd ON opd.order_id = o.order_id
+        AND opd.process_id = rw.process_id
+        AND opd.order_number = ogd.order_number
+        AND opd.technology_number = ogd.technology_number
+        where opd.reporting_work_num > 0 and rw.reviewed_state=1 and rw.reporting_work_time between #{selectTime1} and #{selectTime2}
         and position(#{selectProcesses} in rw.this_process)
         <if test="teamOutputDTO.thisProcess != null and teamOutputDTO.thisProcess != ''">
             and rw.this_process regexp #{teamOutputDTO.thisProcess}
@@ -1250,17 +1254,75 @@
         </if>
 
         GROUP BY
-        rwd.order_number,
         rw.this_process,
         rw.teams_groups_name,
         rw.process_id,
-        rw.reporting_work_id
+        rwd.order_number
         ORDER BY
         rw.this_process,
+        rw.process_id,
+        rwd.order_number,
         rw.reporting_work_time,
-        rw.teams_groups_name,
-        rw.process_id
+        rw.teams_groups_name
         limit #{offset},#{pageSize};
+    </select>
+
+    <select id="exportTeamOutputMp">
+        SELECT
+        rw.reporting_work_time,
+        rw.this_process,
+        rw.teams_groups_name,
+        o.project,
+        rw.process_id,
+        rwd.order_number,
+        MAX( ogd.child_width ) as width,
+        MAX( ogd.child_height ) as height,
+        if(od.shape=1,'鏅舰',if(od.shape=2,'寮傚舰','')) as shape,
+        sum( pd.thickness ) as thickness,
+        od.edging_type,
+        opd.reporting_work_num as completed_quantity,
+        ROUND(MAX( ogd.child_width )*MAX( ogd.child_height )*opd.reporting_work_num/1000000,2) as area,
+        od.product_name,
+        JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS code
+        FROM
+        reporting_work AS rw
+        LEFT JOIN reporting_work_detail AS rwd ON rw.reporting_work_id = rwd.reporting_work_id
+        LEFT JOIN sd.`order` AS o ON o.order_id = rw.order_id
+        LEFT JOIN sd.order_detail AS od ON od.order_id = o.order_id
+        AND od.order_number = rwd.order_number
+        LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id
+        AND ogd.order_number = rwd.order_number
+        AND ogd.technology_number = rwd.technology_number
+        AND ogd.order_number = od.order_number
+        LEFT JOIN (
+        SELECT
+        prod_id,
+        glass_sort,
+        REPLACE ( JSON_UNQUOTE( JSON_EXTRACT( separation, '$.thickness' )), 'mm', '' ) AS thickness
+        FROM
+        sd.product_detail
+        WHERE
+        detail_type = "glass"
+        ) AS pd ON pd.prod_id = od.product_id AND pd.glass_sort = rwd.technology_number
+        LEFT JOIN sd.order_process_detail AS opd ON opd.order_id = o.order_id
+        AND opd.process_id = rw.process_id
+        AND opd.order_number = ogd.order_number
+        AND opd.technology_number = ogd.technology_number
+        where opd.reporting_work_num > 0 and rw.reviewed_state=1
+          and date(rw.reporting_work_time) >= #{date[0]}
+          and date(rw.reporting_work_time) &lt;= #{date[1]}
+        and position(#{process} in rw.this_process)
+        GROUP BY
+        rw.this_process,
+        rw.teams_groups_name,
+        rw.process_id,
+        rwd.order_number
+        ORDER BY
+        rw.this_process,
+        rw.process_id,
+        rwd.order_number,
+        rw.reporting_work_time,
+        rw.teams_groups_name
     </select>
 
     <select id="teamOutputPageTotal">
@@ -1286,9 +1348,12 @@
         sd.product_detail
         WHERE
         detail_type = "glass"
-        ) AS pd ON pd.prod_id = od.product_id
-        AND pd.glass_sort = rwd.technology_number
-        where rw.reviewed_state=1 and rw.reporting_work_time between #{selectTime1} and #{selectTime2}
+        ) AS pd ON pd.prod_id = od.product_id AND pd.glass_sort = rwd.technology_number
+        LEFT JOIN sd.order_process_detail AS opd ON opd.order_id = o.order_id
+        AND opd.process_id = rw.process_id
+        AND opd.order_number = ogd.order_number
+        AND opd.technology_number = ogd.technology_number
+        where opd.reporting_work_num > 0 and rw.reviewed_state=1 and rw.reporting_work_time between #{selectTime1} and #{selectTime2}
         and position(#{selectProcesses} in rw.this_process)
         <if test="teamOutputDTO.thisProcess != null and teamOutputDTO.thisProcess != ''">
             and rw.this_process regexp #{teamOutputDTO.thisProcess}

--
Gitblit v1.8.0