From c27a685ed122e3f2934eba2c3d77bc2e1312a4cf Mon Sep 17 00:00:00 2001
From: 你好啊 <1536384743@qq.com>
Date: 星期五, 09 八月 2024 11:19:41 +0800
Subject: [PATCH] 修改当传入数据为空时,该=改null  为0

---
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml |  171 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 160 insertions(+), 11 deletions(-)

diff --git a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
index 9fc3d0f..edb8a16 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -472,13 +472,15 @@
 
     <select id="selectPrintMp">
         select *
-        from ((select fc.id,
+        from (
+
+        (select fc.id,
                       fc.order_id,
                       fc.process_id,
                       o.customer_name,
                       o.project,
                       ogdss.technology_number,
-                      ogdss.concatenated_glass_child,
+                      ogd.glass_address,
                       ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
                       sum(ogd.total_area)                                              as total_area,
                       # SUM(ogd.child_width*child_height*fc.quantity/(count(DISTINCT ogd.technology_number))) as total_area,
@@ -503,10 +505,10 @@
                                           process                                           AS processed_part
                                    from sd.order_glass_detail as ogds
                                    where ogds.order_id = #{orderId}
-                                   GROUP BY order_id, order_number, ogds.glass_child) as ogdss
+                                   GROUP BY order_id, order_number, ogds.glass_child,process) as ogdss
                                   on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
                where fc.order_id = #{orderId}
-               GROUP BY fc.process_id, ogdss.concatenated_glass_child
+               GROUP BY fc.process_id, ogdss.concatenated_glass_child,ogdss.processed_part
                order by fc.process_id, ogdss.technology_number)
 
               UNION
@@ -593,7 +595,7 @@
                order by fc.process_id)) AS combined_results
         where process is not null
           and process != ""
-
+        GROUP BY order_id,process_id,technology_number,process
     </select>
 
     <select id="getPrimaryList">
@@ -753,14 +755,18 @@
                ogd.child_height,
                fc.quantity,
                ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
-               fc.sort,
-               ogd.glass_child
+               ifnull(fcs.sort,'') as sort,
+               ogd.glass_child,
+               #{process} as process
         FROM flow_card AS fc
                  LEFT JOIN sd.order_glass_detail AS ogd ON fc.order_id = ogd.order_id
             AND fc.order_number = ogd.order_number
             AND fc.technology_number = ogd.technology_number
+        left join flow_card_sort as fcs on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and fcs.technology_number = fc.technology_number
+            and fcs.process=#{process}
         where fc.process_id = #{processId}
           and position(fc.technology_number in #{technologyNumber})
+
         order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
     </select>
 
@@ -995,11 +1001,13 @@
                fc.quantity,
                ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
                fc.sort,
-               ogd.process
+               ogd.process,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber
         FROM flow_card AS fc
                  LEFT JOIN sd.order_glass_detail AS ogd ON fc.order_id = ogd.order_id
             AND fc.order_number = ogd.order_number
             AND fc.technology_number = ogd.technology_number
+        left join sd.order_detail as od on fc.order_id = od.order_id and fc.order_number = od.order_number
         where fc.order_id = #{orderId}
         order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.technology_number)
     </select>
@@ -1110,10 +1118,12 @@
                  left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
                  left join sd.product_detail as pd
                            on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
+                 left join flow_card_sort as fcs on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and fcs.technology_number = fc.technology_number
+            and fcs.process=#{process}
         where fc.process_id = #{processId}
           and position(fc.technology_number in #{technologyNumber})
         group by fc.process_id, fc.order_number, fc.technology_number
-        order by IF(sort != NULL || sort != '', sort, fc.order_number)
+        order by IF(fcs.sort != NULL || fcs.sort != '', fcs.sort, fc.order_number)
     </select>
 
     <select id="getPrimaryListMergeRefund">
@@ -1465,10 +1475,12 @@
                  left join sd.order_glass_detail ogd
                            on ogd.order_id = o.order_id and ogd.order_number = od.order_number and
                               ogd.technology_number = fc.technology_number
+                 left join flow_card_sort as fcs on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and fcs.technology_number = fc.technology_number
+            and fcs.process=#{process}
         where fc.process_id = #{processId}
-          and fc.technology_number = #{technologyNumber}
+          and position(fc.technology_number in #{technologyNumber})
         group by od.order_number, ogd.technology_number, ogd.child_width, ogd.child_height
-        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
+        order by IF(fcs.sort != NULL || fcs.sort != '', fcs.sort, fc.order_number)
     </select>
 
     <select id="selectPrintNotMp">
@@ -1678,4 +1690,141 @@
         group by od.order_number, width, height
         order by IF(fc.sort != NULL || fc.sort != '', fc.sort, pl.order_sort)
     </select>
+
+    <select id="selectPrintAllMp">
+        select *
+        from ( (select fc.id,
+                       fc.order_id,
+                       fc.process_id,
+                       o.customer_name,
+                       o.project,
+                       ogd.technology_number,
+                       ogd.glass_address,
+                       sum(od.quantity)         as quantity,
+                       sum(ogd.total_area)      as total_area,
+                       od.product_name,
+                       ogd.glass_child,
+                       fc.founder,
+                       date(fc.splitFrame_time) as splitFrame_time,
+                    /* if(fc.print_status=0,'鏈墦鍗�','宸叉墦鍗�') as  print_status*/
+                       fc.print_status,
+                       ogd.process
+                from flow_card as fc
+                         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 = fc.order_id and od.order_number = fc.order_number
+                         left join sd.`order` as o on o.order_id = fc.order_id
+                where fc.order_id = #{orderId}
+                GROUP BY fc.process_id, ogd.technology_number
+                order by fc.process_id, ogd.technology_number)
+
+                 UNION
+
+                 (select fc.id,
+                         fc.order_id,
+                         fc.process_id,
+                         o.customer_name,
+                         o.project,
+                         ogdss.technology_number,
+                         ogd.glass_address,
+                         ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
+                         sum(ogd.total_area)                                              as total_area,
+                         # SUM(ogd.child_width*child_height*fc.quantity/(count(DISTINCT ogd.technology_number))) as total_area,
+                         od.product_name,
+                         ogdss.concatenated_glass_child                                   as glass_child,
+                         fc.founder,
+                         date(fc.splitFrame_time)                                         as splitFrame_time,
+                         fc.print_status,
+                         processed_part                                                   as process
+
+                  from flow_card as fc
+                           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 = fc.order_id and od.order_number = fc.order_number
+                           left join sd.`order` as o on o.order_id = fc.order_id
+                           left join (select ogds.order_id,
+                                             ogds.order_number,
+                                             GROUP_CONCAT(ogds.technology_number SEPARATOR '') AS technology_number,
+                                             ogds.glass_child,
+                                             GROUP_CONCAT(ogds.glass_child SEPARATOR ' ')      AS concatenated_glass_child,
+                                             SUBSTRING(process, LOCATE('澶硅兌', process))       AS processed_part
+                                      from sd.order_glass_detail as ogds
+                                      where ogds.order_id = #{orderId}
+                                        and LOCATE('澶硅兌', ogds.process) > 0
+                                      GROUP BY order_id, order_number, ogds.group) as ogdss
+                                     on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
+                  where fc.order_id = #{orderId}
+                  GROUP BY fc.process_id, ogdss.technology_number
+                  order by fc.process_id)
+                 UNION
+                 (select fc.id,
+                         fc.order_id,
+                         fc.process_id,
+                         o.customer_name,
+                         o.project,
+                         ogdss.technology_number,
+                         ogd.glass_address,
+                         ROUND(sum(fc.quantity) / (count(DISTINCT fc.technology_number))) as quantity,
+                         sum(ogd.total_area)                                              as total_area,
+                         od.product_name,
+                         ogdss.concatenated_glass_child                                   as glass_child,
+                         fc.founder,
+                         date(fc.splitFrame_time)                                         as splitFrame_time,
+                         fc.print_status,
+                         processed_part                                                   as process
+
+                  from flow_card as fc
+                           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 = fc.order_id and od.order_number = fc.order_number
+                           left join sd.`order` as o on o.order_id = fc.order_id
+                           left join (select ogds.order_id,
+                                             ogds.order_number,
+                                             GROUP_CONCAT(pds.glass_sort SEPARATOR '')           AS technology_number,
+                                             ogds.glass_child,
+                                             GROUP_CONCAT(ogds.glass_child SEPARATOR ' ')        AS concatenated_glass_child,
+                                             SUBSTRING(pds.process, LOCATE('涓┖', pds.process)) AS processed_part
+                                      from sd.order_glass_detail as ogds
+                                               left join sd.order_detail as ods
+                                                         on ods.order_id = ogds.order_id and ods.order_number = ogds.order_number
+                                               left join sd.product_detail as pds on pds.prod_id = ods.product_id and
+                                                                                     pds.glass_sort =
+                                                                                     ogds.technology_number
+                                      where ogds.order_id = #{orderId}
+                                      GROUP BY order_id, order_number) as ogdss
+                                     on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
+                  where fc.order_id = #{orderId}
+                  GROUP BY fc.process_id
+                  order by fc.process_id)) AS combined_results
+        where process is not null
+          and process != ""
+        GROUP BY order_id,process_id,technology_number,process
+    </select>
+
+    <insert id="printAddSortMp">
+        insert into flow_card_sort (process_id,order_number,technology_number,process,sort,create_time)
+        values (#{processId},#{orderNumber},#{technologyNumber},#{process},#{sort},now())
+    </insert>
+    <select id="printAddSortCountMp">
+        select
+        count(*)
+        from flow_card_sort
+        where process_id = #{processId}
+          and order_number = #{orderNumber}
+          and technology_number = #{technologyNumber}
+          and process = #{process}
+    </select>
+    <update id="printUpdateSortMp">
+        update flow_card_sort
+        set sort = #{sort}
+        where process_id = #{processId}
+          and order_number = #{orderNumber}
+          and technology_number = #{technologyNumber}
+          and process = #{process}
+    </update>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0