From dffdcaa14f32c51a63b4ab2cc7a38eebf17f8f44 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期日, 28 七月 2024 15:58:34 +0800
Subject: [PATCH] 修改发货报表

---
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml |  811 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 743 insertions(+), 68 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 bacba8e..477d5eb 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -63,6 +63,7 @@
         sum(c.compute_gross_area) as compute_gross_area,
         a.founder,
         c.processing_note,
+        b.customer_name,
         if(a.layout_status=0,'涓嶅彲鎺掔増',if(a.layout_status=1,'鍙帓鐗�','宸叉帓鐗�')) as layout_status
         from (select id,order_id,process_id,order_number, quantity,founder,layout_status,create_time from flow_card
         group by process_Id,order_number) as a left join sd.`order` as b on a.order_Id=b.order_id
@@ -93,7 +94,9 @@
         <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '宸叉帓鐗�'">
             and a.layout_status regexp 2
         </if>
-
+        <if test="flowCard.order.customerName != null and flowCard.order.customerName!= ''">
+            and b.customer_name regexp #{flowCard.order.customerName}
+        </if>
         group by a.process_Id
         ORDER BY a.id desc
         limit #{offset},#{pageSize};
@@ -215,7 +218,6 @@
                 on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number
         set ogd.splitting_status=0
         where ogd.order_id = #{orderId}
-          and ogd.production_id = left(#{processId}, 11)
 
     </update>
 
@@ -223,7 +225,7 @@
     <update id="deleteFlowCardMp">
         delete
         from flow_card as fc
-        where fc.production_id = left(#{processId}, 11)
+        where fc.order_id = left(#{processId}, 10)
     </update>
 
     <!--    鍒嗘灦鏂板鏄庣粏鏌ヨ-->
@@ -243,11 +245,31 @@
                od.compute_gross_area as 'computeGrossArea',
                p.total_thickness     AS 'totalThickness',
                p.thickness,
-               od.weight
+               od.weight,
+               od.remarks,
+               ods.S01,
+               ods.S02,
+               ods.S03,
+               ods.S04,
+               ods.S05
         from sd.order_detail as od
                  left join sd.order_glass_detail as ogd
                            on od.order_id = ogd.order_id and od.order_number = ogd.order_number
                  left join sd.product as p on od.product_name = p.product_name
+                 left join (
+            SELECT
+                order_id,
+                order_number,
+                JSON_UNQUOTE( JSON_EXTRACT( other_columns, '$.S01' )) AS S01,
+                JSON_UNQUOTE( JSON_EXTRACT( other_columns, '$.S02' )) AS S02,
+                JSON_UNQUOTE( JSON_EXTRACT( other_columns, '$.S03' )) AS S03,
+                JSON_UNQUOTE( JSON_EXTRACT( other_columns, '$.S04' )) AS S04,
+                JSON_UNQUOTE( JSON_EXTRACT( other_columns, '$.S05' )) AS S05
+            FROM
+                sd.order_detail
+            WHERE
+                order_id = #{orderId}
+        ) as ods on ods.order_id=od.order_id and ods.order_number=od.order_number
         where od.order_id = #{orderId}
           and ogd.production_id = #{productionId}
           and ogd.splitting_status = 0
@@ -424,11 +446,11 @@
     <delete id="deleteReportingWork">
         delete
         from sd.order_process_detail
-        where left(process_id, 11) = left(#{processId}, 11)
+        where order_id = left(#{processId}, 10)
     </delete>
 
     <select id="selectPrintFlowCardMp">
-        select *
+        select order_id,project,customer_name,quantity,area,order_type,pack_type,batch
         from sd.order
         where create_time between #{selectTime1} and #{selectTime2}
           and position(#{orderId} in order_id)
@@ -446,38 +468,135 @@
     </select>
 
     <select id="selectPrintMp">
-        select fc.id,
-               fc.order_id,
-               fc.process_id,
-               o.customer_name,
-               o.project,
-               fc.order_number,
-               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
-        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
+        select * from ((select fc.id,
+                               fc.order_id,
+                               fc.process_id,
+                               o.customer_name,
+                               o.project,
+                               ogdss.technology_number,
+                               ogdss.concatenated_glass_child,
+                               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 AS concatenated_glass_child,
+                                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 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
+                        order by fc.process_id,ogdss.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
+                        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!=""
 
     </select>
 
     <select id="getPrimaryList">
         select o.customer_name,
                o.project,
-               ogd.process,
+               #{process} process,
                od.edging_type,
-               ogd.glass_child,
+               #{glassChild} as glass_child,
                od.product_name,
                o.processing_note,
                fc.process_id,
@@ -493,9 +612,20 @@
                  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 sd.product as p on p.id=od.product_id
+                 left join (
+            select         ogd.order_id,
+                           ogd.order_number,
+                           ogd.technology_number,
+                           ogd.glass_child,
+                           GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+            from sd.order_glass_detail as ogd
+            where ogd.order_id = left(#{processId},10)
+              and position(ogd.technology_number in #{technologyNumber})
+            GROUP BY order_id, order_number
+        ) as ogdc on ogdc.order_id=ogd.order_id and ogdc.order_number=ogd.order_number and ogdc.technology_number=ogd.technology_number
         where fc.process_id = #{processId}
-          and fc.technology_number = #{technologyNumber}
-        group by fc.process_id, fc.technology_number
+          and position(fc.technology_number in #{technologyNumber})
+        group by fc.process_id
     </select>
 
     <select id="getDetailList">
@@ -505,14 +635,20 @@
                round(ogd.total_area, 2)                                     as total_area,
                od.perimeter,
                od.bend_radius,
-               concat(od.processing_note,od.remarks) as remarks
+               concat(od.processing_note,od.remarks) as remarks,
+               od.other_columns,
+               round(ogd.child_width) as width,
+               round(ogd.child_height) as height,
+               pd.separation,
+               fc.technology_number
         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 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
         where fc.process_id = #{processId}
-          and fc.technology_number = #{technologyNumber}
+          and position(fc.technology_number in #{technologyNumber})
         group by fc.process_id, fc.order_number
         order by IF(sort != NULL || sort != '', sort, fc.order_number)
     </select>
@@ -542,24 +678,28 @@
 
     <select id="getPrintLabel">
         select o.order_id,
-               o.customer_name,
+               c.customer_abbreviation as customer_name,
                o.project,
                od.building_number,
                od.processing_note,
-               od.width,
-               od.height,
+               ogd.child_width as width,
+               ogd.child_height as height,
                ogd.glass_child,
+               ogd.process,
                e.type_name,
                opd.stock_id,
-               od.quantity
+               od.quantity,
+               od.other_columns,
+               od.bend_radius
         from pp.optimize_detail opd
                  left join sd.`order` o on SUBSTR(opd.process_id, 1, 10) = o.order_id
                  left join sd.order_detail od
                            on SUBSTR(opd.process_id, 1, 10) = od.order_id and opd.order_sort = od.order_number
                  left join sd.order_glass_detail ogd
-                           on SUBSTR(opd.process_id, 1, 10) = ogd.order_id and opd.order_sort = ogd.order_number
+                           on SUBSTR(opd.process_id, 1, 10) = ogd.order_id and opd.order_sort = ogd.order_number and opd.layer=ogd.technology_number
                  left join sd.product p on od.product_id = p.id
                  left join sd.basic_glass_type e on e.type_id = p.type_id
+        left join sd.customer c on c.id=o.customer_id
         where opd.project_no = #{projectNo}
         order by opd.stock_id
     </select>
@@ -568,15 +708,19 @@
         select o.order_id ,
                o.project,
                o.customer_id ,
-               od.width,
-               od.height,
+               ogd.child_width as width,
+               ogd.child_height as height,
                od.quantity,
                od.order_number as orderNumber,
                fc.technology_number as technologyNumber,
                ogd.glass_child,
+               ogd.process,
                c.customer_abbreviation as customer_name,
                ifnull(od.processing_note,'') as processing_note,
-               bgt.type_name
+               bgt.type_name,
+               od.other_columns,
+               od.building_number,
+               od.bend_radius
         from sd.order as o
                  left join sd.order_detail as od on o.order_id = od.order_id
                  left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number
@@ -599,13 +743,14 @@
                ogd.child_height,
                fc.quantity,
                ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
-               fc.sort
+               fc.sort,
+               ogd.glass_child
         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
         where fc.process_id = #{processId}
-          and fc.technology_number = #{technologyNumber}
+          and  position(fc.technology_number in #{technologyNumber})
         order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
     </select>
 
@@ -686,13 +831,28 @@
                od.product_name      as productName,
                od.edging_type       as edgingType,
                p.remarks,
-               c.customer_abbreviation as customerAbbreviation
+               c.customer_abbreviation as customerAbbreviation,
+               p.product_abbreviation as productAbbreviation,
+               fc.process_id as processId,
+               o.create_time as createTime,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS glassNumber,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S02' )) AS figureNumber,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S03' )) AS colourCeramicGlaze,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S04' )) AS remarks1,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S05' )) AS remarks2,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S06' )) AS remarks3,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S07' )) AS remarks4,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S08' )) AS remarks5,
+                p.remarks as filmNumber,
+                od.bend_radius as bendRadius,
+                od.other_columns
         from sd.order as o
                  left join sd.order_detail as od on o.order_id = od.order_id
                  left join flow_card as fc on o.order_id = fc.order_id and
                                               od.order_number = fc.order_number
                  left join sd.product as p on p.id=od.product_id
                  left join sd.customer as c on c.id = o.customer_id
+        left join sd.product_detail as pd  on pd.prod_id=p.id and pd.sort_num=od.order_number
         where fc.process_id = #{processId}
           and fc.technology_number = #{technologyNumber}
         group by od.order_number, width, height
@@ -717,7 +877,9 @@
                pl.patch_reason,
                pl.patch_processes,
                od.product_name,
-               ogd.glass_child
+               ogd.glass_child,
+               fc.print_status,
+               pl.reporting_work_id
         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
@@ -727,16 +889,492 @@
                  left join patch_log as pl on pl.order_id = fc.order_id and pl.process_id = fc.process_id and
                                               pl.order_sort = fc.order_number and
                                               pl.technology_number = fc.technology_number
-        where pl.create_time between #{selectTime1} and #{selectTime2}
-        GROUP BY fc.process_id, ogd.technology_number
-        order by fc.process_id, ogd.technology_number
+        where pl.create_time between #{selectTime1} and #{selectTime2} and pl.review_status>0
+        GROUP BY pl.id,fc.process_id, ogd.technology_number
+        order by pl.id desc,fc.process_id, ogd.technology_number
     </select>
 
     <select id="getRepairPrintCustomData">
         select o.order_id           as orderId,
+               o.project,
+               o.customer_id          as customerId,
+               o.customer_name        as customerName,
+               o.order_type           as orderType,
+               o.order_classify       as orderClassify,
+               o.batch,
+               o.icon,
+               o.pack_type            as packType,
+               o.delivery_date        as deliveryDate,
+               o.al_type              as alType,
+               o.money,
+               contract_id          as contractId,
+               customer_batch          customerBatch,
+               contacts,
+               o.delivery_address     as deliveryAddress,
+               od.processing_note   as processingNote,
+               od.width,
+               od.height,
+               pl.patch_num         as quantity,
+               pl.order_sort        as orderNumber,
+               pl.technology_number as technologyNumber,
+               od.building_number   as buildingNumber,
+               od.product_name      as productName,
+               od.edging_type       as edgingType,
+                p.remarks,
+                c.customer_abbreviation as customerAbbreviation,
+               p.product_abbreviation as productAbbreviation,
+               fc.process_id as processId,
+               o.create_time as createTime,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS glassNumber,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S02' )) AS figureNumber,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S03' )) AS colourCeramicGlaze,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S04' )) AS remarks1,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S05' )) AS remarks2,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S06' )) AS remarks3,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S07' )) AS remarks4,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S08' )) AS remarks5,
+               p.remarks as filmNumber,
+               od.bend_radius as bendRadius
+        from sd.order as o
+                 left join sd.order_detail as od on o.order_id = od.order_id
+                 left join flow_card as fc on o.order_id = fc.order_id and
+                                              od.order_number = fc.order_number
+                 left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
+                                              pl.technology_number = fc.technology_number
+                 left join sd.product as p on p.id=od.product_id
+                 left join sd.customer as c on c.id = o.customer_id
+                 left join sd.product_detail as pd  on pd.prod_id=p.id and pd.sort_num=od.order_number
+        where pl.process_id = #{processId}
+          and pl.technology_number = #{technologyNumber}
+        and pl.reporting_work_id=#{reportingWorkId}
+        group by od.order_number, width, height
+        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, pl.order_sort)
+    </select>
+
+    <select id="getGlassNumber">
+        select other_columns
+        from sd.order_detail as od
+                 left join flow_card as fc on od.order_id = fc.order_id and od.order_number = fc.order_number
+        where fc.process_id = #{processId}
+          and fc.technology_number = #{technologyNumber}
+        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
+    </select>
+
+    <update id="updatePrintStateMp">
+        update  pp.flow_card
+        set print_status = print_status+1
+        where process_id = #{processId} and technology_number = #{technologyNumber}
+    </update>
+
+    <select id="printFlowCardOrderSortMp">
+        SELECT fc.process_id,
+               fc.order_number,
+               fc.technology_number,
+               ogd.glass_address,
+               ogd.child_width,
+               ogd.child_height,
+               fc.quantity,
+               ROUND(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as area,
+               fc.sort,
+               ogd.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
+        where fc.order_id=#{orderId}
+        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.technology_number)
+    </select>
+
+    <update id="printOrderSortMp">
+        update flow_card
+        set sort = #{sort}
+        where process_id = #{processId}
+          and order_number = #{orderNumber}
+          and technology_number = #{technologyNumber}
+    </update>
+
+    <select id="getPrimaryListMerge">
+        select o.customer_name,
+               o.project,
+               ogd.process,
+               od.edging_type,
+               ogdc.concatenated_glass_child as glass_child,
+               od.product_name,
+               o.processing_note,
+               fc.process_id,
+               SUM(od.quantity)                                as quantity,
+               round(SUM(ogd.total_area), 2)                   as gross_area,
+               sum(od.weight)                   as weight,
+               #{technologyNumber}                             as technologyNumber,
+               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
+        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 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 sd.product as p on p.id=od.product_id
+                 left join (
+            select         ogd.order_id,
+                           ogd.order_number,
+                           ogd.technology_number,
+                           ogd.glass_child,
+                           GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+            from sd.order_glass_detail as ogd
+            where ogd.order_id = left(#{processId},10)
+              and position(ogd.technology_number in #{technologyNumber})
+            GROUP BY order_id, order_number
+        ) as ogdc on ogdc.order_id=ogd.order_id and ogdc.order_number=ogd.order_number and ogdc.technology_number=ogd.technology_number
+        where fc.process_id = #{processId}
+          and position(fc.technology_number in #{technologyNumber}) and ogdc.concatenated_glass_child is NOT null
+        group by fc.process_id, fc.technology_number
+    </select>
+
+    <select id="selectorderOtherMoney">
+        select * from sd.basic_other_money where id between 21 and 35
+    </select>
+
+    <select id="selectReworkPrintMp">
+        select fc.id,
+               fc.order_id,
+               fc.process_id,
+               o.customer_name,
+               o.project,
+               fc.order_number,
+               ogd.technology_number,
+               ogd.glass_address,
+               pl.rework_num,
+               pl.rework_area,
+               pl.rework_team,
+               pl.responsible_equipment,
+               pl.responsible_personnel,
+               pl.rework_type,
+               pl.rework_reason,
+               pl.rework_processes,
+               od.product_name,
+               ogd.glass_child,
+               pl.reporting_work_id
+        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 rework as pl on pl.order_id = fc.order_id and pl.process_id = fc.process_id and
+                                           pl.order_sort = fc.order_number and
+                                           pl.technology_number = fc.technology_number
+        where pl.create_time between #{selectTime1} and #{selectTime2}
+        GROUP BY fc.process_id, ogd.technology_number,pl.reporting_work_id
+        order by pl.id desc,fc.process_id, ogd.technology_number
+    </select>
+
+    <select id="getDetailListLike">
+        select fc.order_number,
+               concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+               od.quantity,
+               round(ogd.total_area, 2)                                     as total_area,
+               od.perimeter,
+               od.bend_radius,
+               concat(od.processing_note,od.remarks) as remarks,
+               od.other_columns,
+               round(ogd.child_width) as width,
+               round(ogd.child_height) as height,
+               pd.separation,
+               fc.technology_number
+        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 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
+        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)
+    </select>
+
+    <select id="getPrimaryListMergeRefund">
+        select o.customer_name,
+               o.project,
+               ogd.process,
+               od.edging_type,
+               ogdc.concatenated_glass_child as glass_child,
+               od.product_name,
+               o.processing_note,
+               fc.process_id,
+               pl.patch_num                                as quantity,
+               round(SUM(ogd.total_area), 2)                   as gross_area,
+               sum(od.weight)                   as weight,
+               #{technologyNumber}                             as technologyNumber,
+               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
+        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 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 sd.product as p on p.id=od.product_id
+                 left join (
+            select         ogd.order_id,
+                           ogd.order_number,
+                           ogd.technology_number,
+                           ogd.glass_child,
+                           GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+            from sd.order_glass_detail as ogd
+            where ogd.order_id = left(#{processId},10)
+              and ogd.order_number=#{orderNumber}
+              and position(ogd.technology_number in #{technologyNumber})
+            GROUP BY order_id, order_number
+        ) as ogdc on ogdc.order_id=ogd.order_id and ogdc.order_number=ogd.order_number and ogdc.technology_number=ogd.technology_number
+                 left join patch_log as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
+        where fc.process_id = #{processId} and fc.order_number=#{orderNumber}
+          and position(fc.technology_number in #{technologyNumber}) and ogdc.concatenated_glass_child is NOT null
+        group by fc.process_id, fc.technology_number
+    </select>
+
+    <select id="getDetailListRefund">
+        select fc.order_number,
+               concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+               (pl.patch_num) as quantity,
+               round(ogd.total_area, 2)                                     as total_area,
+               od.perimeter,
+               od.bend_radius,
+               concat(od.processing_note,od.remarks) as remarks,
+               od.other_columns,
+               round(ogd.child_width) as width,
+               round(ogd.child_height) as height,
+               pd.separation,
+               fc.technology_number
+        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 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 patch_log as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
+        where fc.process_id = #{processId}
+          and fc.order_number = #{orderNumber}
+          and position(fc.technology_number in #{technologyNumber})
+        and pl.reporting_work_id=#{reportingWorkId}
+        group by fc.process_id, fc.order_number,fc.technology_number
+        order by IF(sort != NULL || sort != '', sort, fc.order_number)
+    </select>
+
+    <select id="getPrimaryListRefund">
+        select o.customer_name,
+               o.project,
+               ogd.process,
+               od.edging_type,
+               ogd.glass_child,
+               od.product_name,
+               o.processing_note,
+               fc.process_id,
+               pl.patch_num                                as quantity,
+               round(SUM(ogd.total_area), 2)                   as gross_area,
+               sum(od.weight)                   as weight,
+               #{technologyNumber}                             as technologyNumber,
+               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
+               dd.breakage_type,
+               dd.breakage_reason,
+               dd.responsible_process,
+               dd.responsible_team
+        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 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 sd.product as p on p.id=od.product_id
+                 left join (
+            select         ogd.order_id,
+                           ogd.order_number,
+                           ogd.technology_number,
+                           ogd.glass_child,
+                           GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+            from sd.order_glass_detail as ogd
+            where ogd.order_id = left(#{processId},10)
+              and ogd.order_number = #{orderNumber}
+              and position(ogd.technology_number in #{technologyNumber})
+            GROUP BY order_id, order_number
+        ) as ogdc on ogdc.order_id=ogd.order_id and ogdc.order_number=ogd.order_number and ogdc.technology_number=ogd.technology_number
+                 left join patch_log as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
+        left join pp.reporting_work as rw on rw.order_id=fc.order_id and rw.process_id=fc.process_id
+        left join pp.damage_details as dd on rw.reporting_work_id=dd.reporting_work_id and dd.order_number=fc.order_number and dd.technology_number=fc.technology_number
+        where fc.process_id = #{processId}
+          and fc.order_number = #{orderNumber}
+          and fc.technology_number = #{technologyNumber}
+        and rw.reporting_work_id=#{reportingWorkId}
+        group by fc.process_id, fc.technology_number
+    </select>
+
+    <select id="getDetailListLikeRefund">
+        select fc.order_number,
+               concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+               pl.patch_num as quantity,
+               round(ogd.total_area, 2)                                     as total_area,
+               od.perimeter,
+               od.bend_radius,
+               concat(od.processing_note,od.remarks) as remarks,
+               od.other_columns,
+               round(ogd.child_width) as width,
+               round(ogd.child_height) as height,
+               pd.separation,
+               fc.technology_number
+        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 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 patch_log as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
+        where fc.process_id = #{processId}
+          and fc.order_number = #{orderNumber}
+          and position(fc.technology_number in #{technologyNumber})
+          and pl.reporting_work_id=#{reportingWorkId}
+        group by fc.process_id, fc.order_number,fc.technology_number
+        order by IF(sort != NULL || sort != '', sort, fc.order_number)
+    </select>
+
+    <select id="getPrimaryListRework">
+        select o.customer_name,
+               o.project,
+               ogd.process,
+               od.edging_type,
+               ogd.glass_child,
+               od.product_name,
+               o.processing_note,
+               fc.process_id,
+               pl.rework_num                                as quantity,
+               round(SUM(ogd.total_area), 2)                   as gross_area,
+               sum(od.weight)                   as weight,
+               #{technologyNumber}                             as technologyNumber,
+               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
+        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 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 sd.product as p on p.id=od.product_id
+                 left join (
+            select         ogd.order_id,
+                           ogd.order_number,
+                           ogd.technology_number,
+                           ogd.glass_child,
+                           GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+            from sd.order_glass_detail as ogd
+            where ogd.order_id = left(#{processId},10)
+              and ogd.order_number = #{orderNumber}
+              and position(ogd.technology_number in #{technologyNumber})
+            GROUP BY order_id, order_number
+        ) as ogdc on ogdc.order_id=ogd.order_id and ogdc.order_number=ogd.order_number and ogdc.technology_number=ogd.technology_number
+                 left join rework as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
+        where fc.process_id = #{processId}
+          and fc.order_number = #{orderNumber}
+          and fc.technology_number = #{technologyNumber}
+        group by fc.process_id, fc.technology_number
+    </select>
+
+    <select id="getDetailListRework">
+        select fc.order_number,
+               concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+               (pl.rework_num) as quantity,
+               round(ogd.total_area, 2)                                     as total_area,
+               od.perimeter,
+               od.bend_radius,
+               concat(od.processing_note,od.remarks) as remarks,
+               od.other_columns,
+               round(ogd.child_width) as width,
+               round(ogd.child_height) as height,
+               pd.separation,
+               fc.technology_number
+        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 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 rework as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
+        where fc.process_id = #{processId}
+          and fc.order_number = #{orderNumber}
+          and position(fc.technology_number in #{technologyNumber})
+          and pl.reporting_work_id=#{reportingWorkId}
+        group by fc.process_id, fc.order_number,fc.technology_number
+        order by IF(sort != NULL || sort != '', sort, fc.order_number)
+    </select>
+
+    <select id="getPrimaryListMergeRework">
+        select o.customer_name,
+               o.project,
+               ogd.process,
+               od.edging_type,
+               ogdc.concatenated_glass_child as glass_child,
+               od.product_name,
+               o.processing_note,
+               fc.process_id,
+               pl.rework_num                                as quantity,
+               round(SUM(ogd.total_area), 2)                   as gross_area,
+               sum(od.weight)                   as weight,
+               #{technologyNumber}                             as technologyNumber,
+               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber
+        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 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 sd.product as p on p.id=od.product_id
+                 left join (
+            select         ogd.order_id,
+                           ogd.order_number,
+                           ogd.technology_number,
+                           ogd.glass_child,
+                           GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
+            from sd.order_glass_detail as ogd
+            where ogd.order_id = left(#{processId},10)
+              and ogd.order_number=#{orderNumber}
+              and position(ogd.technology_number in #{technologyNumber})
+            GROUP BY order_id, order_number
+        ) as ogdc on ogdc.order_id=ogd.order_id and ogdc.order_number=ogd.order_number and ogdc.technology_number=ogd.technology_number
+                 left join rework as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
+        where fc.process_id = #{processId} and fc.order_number=#{orderNumber}
+          and position(fc.technology_number in #{technologyNumber}) and ogdc.concatenated_glass_child is NOT null
+        group by fc.process_id, fc.technology_number
+    </select>
+
+    <select id="getDetailListLikeRework">
+        select fc.order_number,
+               concat(round(ogd.child_width), "*", round(ogd.child_height)) as child_width,
+               pl.rework_num as quantity,
+               round(ogd.total_area, 2)                                     as total_area,
+               od.perimeter,
+               od.bend_radius,
+               concat(od.processing_note,od.remarks) as remarks,
+               od.other_columns,
+               round(ogd.child_width) as width,
+               round(ogd.child_height) as height,
+               pd.separation,
+               fc.technology_number
+        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 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 rework as pl on pl.process_id=fc.process_id and pl.order_sort=fc.order_number and pl.technology_number=fc.technology_number
+        where fc.process_id = #{processId}
+          and fc.order_number = #{orderNumber}
+          and position(fc.technology_number in #{technologyNumber})
+          and pl.reporting_work_id=#{reportingWorkId}
+        group by fc.process_id, fc.order_number,fc.technology_number
+        order by IF(sort != NULL || sort != '', sort, fc.order_number)
+    </select>
+
+    <select id="getPrintCustomDataSemi">
+        select o.order_id           as orderId,
                project,
                customer_id          as customerId,
-               customer_name        as customerName,
+               o.customer_name        as customerName,
                order_type           as orderType,
                order_classify       as orderClassify,
                batch,
@@ -752,32 +1390,69 @@
                od.processing_note   as processingNote,
                width,
                height,
-               pl.patch_num         as quantity,
-               pl.order_sort        as orderNumber,
-               pl.technology_number as technologyNumber,
+               od.quantity,
+               od.order_number      as orderNumber,
+               fc.technology_number as technologyNumber,
                od.building_number   as buildingNumber,
                od.product_name      as productName,
-               od.edging_type       as edgingType
-
+               od.edging_type       as edgingType,
+               p.remarks,
+               c.customer_abbreviation as customerAbbreviation,
+               p.product_abbreviation as productAbbreviation,
+               fc.process_id as processId,
+               o.create_time as createTime,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S01' )) AS glassNumber,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S02' )) AS figureNumber,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S03' )) AS colourCeramicGlaze,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S04' )) AS remarks1,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S05' )) AS remarks2,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S06' )) AS remarks3,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S07' )) AS remarks4,
+               JSON_UNQUOTE( JSON_EXTRACT( od.other_columns, '$.S08' )) AS remarks5,
+               p.remarks as filmNumber,
+               od.bend_radius as bendRadius,
+               ogd.glass_child as glassChild,
+               ogd.glass_address as glassAddress
         from sd.order as o
                  left join sd.order_detail as od on o.order_id = od.order_id
                  left join flow_card as fc on o.order_id = fc.order_id and
                                               od.order_number = fc.order_number
-                 left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
-                                              pl.technology_number = fc.technology_number
-        where pl.process_id = #{processId}
-          and pl.technology_number = #{technologyNumber}
-        group by od.order_number, width, height
-        order by IF(fc.sort != NULL || fc.sort != '', fc.sort, pl.order_sort)
-    </select>
-
-    <select id="getGlassNumber">
-        select other_columns
-        from sd.order_detail as od
-                 left join flow_card as fc on od.order_id = fc.order_id and od.order_number = fc.order_number
+                 left join sd.product as p on p.id=od.product_id
+                 left join sd.customer as c on c.id = o.customer_id
+                 left join sd.product_detail as pd  on pd.prod_id=p.id and pd.sort_num=od.order_number
+        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
         where fc.process_id = #{processId}
           and fc.technology_number = #{technologyNumber}
+        group by od.order_number,ogd.technology_number, width, height
         order by IF(fc.sort != NULL || fc.sort != '', fc.sort, fc.order_number)
     </select>
 
+    <select id="selectPrintNotMp">
+        select fc.id,
+               fc.order_id,
+               fc.process_id,
+               o.customer_name,
+               o.project,
+               fc.order_number,
+               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
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0