From eef4b7ca66cc2fb34d2d2cb0a4a8643f2bb0f838 Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期五, 18 十月 2024 13:44:06 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override

---
 north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml | 2308 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 2,184 insertions(+), 124 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 9383dd5..4e86833 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -9,6 +9,8 @@
         <result column="quantity" property="quantity"/>
         <result column="founder" property="founder"/>
         <result column="create_time" property="createTime"/>
+        <result column="layout_status" property="layoutStatus"/>
+        <result column="merge" property="merge"/>
         <!--鎺ユ敹鍏朵粬澶栭敭瀹炰綋绫绘暟鎹�-->
         <association property="order" javaType="com.example.erp.entity.sd.Order">
             <result column="project" property="project"/>
@@ -48,6 +50,8 @@
         <result column="g_type" property="glassTypes.type"/>-->
 
     </resultMap>
+
+
     <!--    娴佺▼鍗$鐞嗘煡璇�-->
     <select id="selectFlowCard" resultMap="flowCardMap">
         select
@@ -56,32 +60,92 @@
         c.product_id,
         c.product_name,
         b.project,
-        a.quantity,
-        c.compute_gross_area,
+        sum(a.quantity) as quantity,
+        sum(c.compute_gross_area) as compute_gross_area,
         a.founder,
-        c.processing_note
+        c.processing_note,
+        b.customer_name,
+        if(a.layout_status=0,'涓嶅彲鎺掔増',if(a.layout_status=1,'鍙帓鐗�','宸叉帓鐗�')) as layout_status,
+        a.merge
+        from (select id,order_id,process_id,order_number, quantity,founder,layout_status,create_time,merge from flow_card
+        group by process_Id,order_number) as a left join sd.`order` as b on a.order_Id=b.order_id
+        left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
+        where a.create_time between #{selectTime1} and #{selectTime2}
+        <if test="flowCard.orderId != null and flowCard.orderId != ''">
+            and a.order_id regexp #{flowCard.orderId}
+        </if>
+        <if test="flowCard.processId != null and flowCard.processId != ''">
+            and a.process_Id regexp #{flowCard.processId}
+        </if>
+        <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
+            and c.product_id regexp #{flowCard.orderDetail.productId}
+        </if>
+        <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
+            and c.product_name regexp #{flowCard.orderDetail.productName}
+        </if>
+
+        <if test="flowCard.order.project != null and flowCard.order.project!= ''">
+            and b.project regexp #{flowCard.order.project}
+        </if>
+        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '涓嶅彲鎺掔増'">
+            and a.layout_status regexp 0
+        </if>
+        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '鍙帓鐗�'">
+            and a.layout_status regexp 1
+        </if>
+        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '宸叉帓鐗�'">
+            and a.layout_status regexp 2
+        </if>
+        <if test="flowCard.merge != null">
+            and a.merge regexp #{flowCard.merge}
+        </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};
+    </select>
+
+
+    <select id="getPageTotal">
+        select
+        CEILING(count(a.process_Id)/#{pageSize}) as 'pageTotal',
+        count(distinct a.process_Id) as 'total'
         from flow_card as a left join sd.`order` as b on a.order_Id=b.order_id
         left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
         where a.create_time between #{selectTime1} and #{selectTime2}
-                    <if test="flowCard.orderId != null and flowCard.orderId != ''">
-                        and a.order_id regexp #{flowCard.orderId}
-                    </if>
-                    <if test="flowCard.productionId != null and flowCard.productionId != ''">
-                        and a.process_Id regexp #{flowCard.productionId}
-                    </if>
-                    <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
-                        and c.product_id regexp #{flowCard.orderDetail.productId}
-                    </if>
-                    <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
-                        and c.product_name regexp #{flowCard.orderDetail.productName}
-                    </if>
+        <if test="flowCard.orderId != null and flowCard.orderId != ''">
+            and a.order_id regexp #{flowCard.orderId}
+        </if>
+        <if test="flowCard.processId != null and flowCard.processId != ''">
+            and a.process_Id regexp #{flowCard.processId}
+        </if>
+        <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
+            and c.product_id regexp #{flowCard.orderDetail.productId}
+        </if>
+        <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
+            and c.product_name regexp #{flowCard.orderDetail.productName}
+        </if>
 
-                    <if test="flowCard.order.project != null and flowCard.order.project!= ''">
-                        and b.project regexp #{flowCard.order.project}
-                    </if>
+        <if test="flowCard.order.project != null and flowCard.order.project!= ''">
+            and b.project regexp #{flowCard.order.project}
+        </if>
+        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '涓嶅彲鎺掔増'">
+            and a.layout_status regexp 0
+        </if>
+        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '鍙帓鐗�'">
+            and a.layout_status regexp 1
+        </if>
+        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '宸叉帓鐗�'">
+            and a.layout_status regexp 2
+        </if>
+        <if test="flowCard.merge != null">
+            and a.merge regexp #{flowCard.merge}
+        </if>
 
-
-        group by a.process_Id;
+        ORDER BY a.id desc
+        limit #{offset},#{pageSize};
     </select>
 
     <!--鍒嗘灦鏌ヨ-->
@@ -98,10 +162,11 @@
         o.delivery_address
         from sd.`order` as o
         left join sd.order_glass_detail ogd on o.order_id = ogd.order_id
-        where o.production_order=2 and ogd.splitting_status=0 and o.create_time between #{selectTime1} and #{selectTime2}
+        where o.production_order=2 and ogd.splitting_status=0 and o.create_time between #{selectTime1} and
+        #{selectTime2}
 
         <if test="flowCard.order.orderId != null and flowCard.order.orderId != ''">
-            and o.order_id, regexp #{flowCard.order.orderId}
+            and o.order_id regexp #{flowCard.order.orderId}
         </if>
         <if test="flowCard.order.customerName != null and flowCard.order.customerName != ''">
             and o.customer_name regexp #{flowCard.order.customerName}
@@ -127,158 +192,2153 @@
             and o.salesman regexp #{flowCard.order.salesman}
         </if>
         group by o.order_id
+        order by o.id desc
 
         ;
     </select>
 
-<!--    鍒嗘灦鏄庣粏鏌ヨ-->
-    <select id="DetailsSelectMp" resultMap="flowCardMap">
+    <!--    鍒嗘灦鏄庣粏鏌ヨ-->
+    <select id="detailsSelectMp">
         select od.order_id,
-        ogd.production_id,
-        od.product_id,
-        od.product_name,
-        SUM( od.quantity) as quantity,
-        SUM(od.compute_gross_area) as compute_gross_area,
-        od.perimeter
-        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
-        where od.order_id = #{orderId} and ogd.splitting_status=0
-        <if test="flowCard.orderDetail.orderId != null and flowCard.orderDetail.orderId != ''">
-            and od.order_id regexp #{flowCard.orderDetail.orderId}
-        </if>
-        <if test="flowCard.orderGlassDetail.productionId != null and flowCard.orderGlassDetail.productionId != ''">
-            and ogd.production_id regexp #{flowCard.orderGlassDetail.productionId}
-        </if>
-        <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
-            and od.product_id regexp #{flowCard.orderDetail.productId}
-        </if>
-        <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName != ''">
-            and od.product_name regexp #{flowCard.orderDetail.productName}
-        </if>
+               ogd.production_id,
+               od.product_id,
+               od.product_name,
+               ROUND(SUM(od.quantity)-IFNULL(sum(fc.quantity)/count(fc.technology_number),0))            as quantity,
+               SUM(od.compute_gross_area)  as compute_gross_area,
+               round(sum(od.perimeter), 2) as perimeter
+        from sd.order_detail as od
+                 left join
+             (select order_id, order_number,technology_number, production_id, splitting_status
+              from sd.order_glass_detail
+              GROUP BY order_id, order_number) as ogd
+             on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+                 left join flow_card as fc on fc.order_id = od.order_id and fc.order_number = od.order_number
+            and fc.technology_number=ogd.technology_number
+        where od.order_id = #{orderId}
+          and ogd.splitting_status = 0
+
         group by od.order_id, ogd.production_id
+        order by od.id desc
     </select>
 
-    <update id="UpdateDeleteState">
-        update sd.order_glass_detail as ogd
-        set ogd.production_id=null,
-            ogd.production_time=null,
-            ogd.founder=null
-        where ogd.production_id = #{processId}
+    <!--    鏇存柊鍒嗘灦鐘舵��-->
+    <update id="updateDeleteState">
+        update
+            sd.order_glass_detail as ogd left join flow_card as fc
+                on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number
+        set ogd.splitting_status=0
+        where fc.process_id = #{processId}
 
     </update>
 
     <!--    鍒犻櫎娴佺▼鍗�-->
-    <update id="DeleteFlowCardMp">
-        update 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
-        set ogd.production_id=null,
-            ogd.production_time=null,
-            ogd.founder=null
-        where od.order_id = #{orderId}
-          and ogd.production_id = #{processId}
+    <update id="deleteFlowCardMp">
+        delete
+        from flow_card as fc
+        where fc.process_id = #{processId}
     </update>
 
     <!--    鍒嗘灦鏂板鏄庣粏鏌ヨ-->
 
     <!--resultMap="flowCardMap"-->
-    <select id="SelectNoCardMp" >
+    <select id="selectNoCardMp">
 
-        select
-        od.order_number,
-        od.order_number AS 'orderNumber',
-        od.width,
-        od.height,
-        od.shape,
-        od.quantity,
-        od.compute_gross_area,
-        p.total_thickness,
-        od.quantity as baiscQuantity,
-        od.compute_gross_area as 'computeGrossArea',
-        p.total_thickness AS 'totalThickness',
-        p.thickness,
-        od.weight
-        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
-        where od.order_id=#{orderId} and ogd.production_id=#{productionId} and ogd.splitting_status=0
-        GROUP BY od.order_number;
-
+        select od.order_number,
+               od.order_number       AS 'orderNumber',
+               od.width,
+               od.height,
+               od.shape,
+               od.quantity,
+               od.compute_gross_area,
+               p.total_thickness,
+               ROUND(od.quantity-IFNULL(sum(fc.quantity)/count(fc.technology_number),0))           as baiscQuantity,
+               od.compute_gross_area as 'computeGrossArea',
+               p.total_thickness     AS 'totalThickness',
+               ifnull(p.thickness,'') as thickness,
+               od.weight,
+               od.remarks,
+               od.processing_note,
+               ifnull(od.bend_radius,'') as bend_radius,
+               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
+                 left join flow_card as fc on fc.order_id = od.order_id and fc.order_number = od.order_number
+                           and fc.technology_number=ogd.technology_number
+        where od.order_id = #{orderId}
+          and ogd.production_id = #{productionId}
+          and ogd.splitting_status = 0
+        GROUP BY od.order_number
+        order by od.id
 
     </select>
 
     <!--淇敼鎺掔増鐘舵��-->
-    <update id="UpdateLayoutStatusMp">
+    <update id="updateLayoutStatusMp">
         update flow_card as fc
-        set fc.layout_status=2
+        set fc.layout_status=#{state}
         where fc.process_id = #{processId}
     </update>
 
-<!--    鏌ヨ瀵瑰簲娴佺▼鍗″彿鎺掔増鐘舵��-->
-    <select id="SelectLayoutStatus">
+    <!--    鏌ヨ瀵瑰簲娴佺▼鍗″彿鎺掔増鐘舵��-->
+    <select id="selectLayoutStatus">
         select fc.layout_status
         from flow_card as fc
         where fc.process_id = #{processId}
         LIMIT 1
     </select>
 
-<!--    鏌ヨ鎶ュ伐琛ㄥ唴鏄惁鏈夊搴旀祦绋嬪崱-->
-    <select id="ReportingWorkCount">
+    <!--    鏌ヨ鎶ュ伐琛ㄥ唴鏄惁鏈夊搴旀祦绋嬪崱-->
+    <select id="reportingWorkCount">
         select COUNT(rw.process_id)
         from reporting_work as rw
         where rw.process_id = #{processId}
     </select>
-<!--    鎻掑叆Flow_card琛�-->
-    <insert id="AddFlowCardMp">
-        insert into
-            flow_card (
-            order_id,
-            production_id,
-            process_id,
-            landing_sequence,
-            order_number,
-            technology_number,
-            quantity,
-            founder,
-            splitFrame_time,
-            create_time
-        )
-        select
-            ogd.order_id,
-            ogd.production_id,
-            #{processId},
-            #{landingSequence},
-            ogd.order_number,
-            ogd.technology_number,
-            #{quantity},
-            #{userName},
-            NOW(),
-            NOW()
-
+    <!--    鎻掑叆Flow_card琛�-->
+    <insert id="addFlowCardMp">
+        insert into flow_card (order_id,
+                               production_id,
+                               process_id,
+                               landing_sequence,
+                               order_number,
+                               technology_number,
+                               quantity,
+                               founder,
+                               layers_number,
+                               splitFrame_time,
+                               create_time)
+        select ogd.order_id,
+               ogd.production_id,
+               #{processId},
+               #{landingSequence},
+               ogd.order_number,
+               ogd.technology_number,
+               #{quantity},
+               #{userName},
+               #{layer},
+               NOW(),
+               NOW()
 
 
         from sd.order_glass_detail as ogd
-        where ogd.production_id=#{productionId} and ogd.order_number=#{orderNumber}
+        where ogd.production_id = #{productionId}
+          and ogd.order_number = #{orderNumber}
         GROUP BY ogd.technology_number
     </insert>
 
-<!--    鏇存柊鍒嗘灦鐘舵��-->
-    <update id="UpdateFlowState">
+    <!--    鏇存柊鍒嗘灦鐘舵��-->
+    <update id="updateFlowState">
         update sd.order_glass_detail as ogd
         set ogd.splitting_status=1
-        where ogd.production_id=#{productionId} and ogd.order_number=#{orderNumber}
+        where ogd.production_id = #{productionId}
+          and ogd.order_number = #{orderNumber}
     </update>
-<!--    鏌ヨ鏈垎鏋剁殑鏉℃暟-->
-    <select id="SelectFlowCount">
+    <!--    鏌ヨ鏈垎鏋剁殑鏉℃暟-->
+    <select id="selectFlowCount">
         select COUNT(*)
         from sd.order_glass_detail as ogd
-        where ogd.order_id = left(#{productionId},10)
+        where ogd.order_id = left(#{productionId}, 10)
           and ogd.splitting_status = 0
     </select>
-<!--   淇敼璁㈠崟琛ㄥ垎鏋剁姸鎬�-->
-    <update id="UpdateProcessingCard">
+    <!--   淇敼璁㈠崟琛ㄥ垎鏋剁姸鎬�-->
+    <update id="updateProcessingCard">
         update sd.`order` as o
         set o.processing_card=#{state}
-        where o.order_id=left(#{productionId},10)
+        where o.order_id = left(#{productionId}, 10)
     </update>
+
+    <!--    鏌ヨ宸叉帓鐗堟暟鎹�-->
+    <select id="selectOkSchedulingMp">
+        select od.order_id,
+               o.customer_name,
+               o.project,
+               od.order_number,
+               od.width,
+               od.height,
+               od.quantity,
+               round(od.width * od.height * od.quantity / 1000000, 2),
+               (od.quantity - IFNULL(ps.scheduling_quantity, 0)),
+               round(od.width * od.height * (od.quantity - IFNULL(ps.scheduling_quantity, 0)) / 1000000, 2),
+               IFNULL(ps.scheduling_quantity, 0),
+               round(od.width * od.height * (IFNULL(ps.scheduling_quantity, 0)) / 1000000, 2),
+               od.product_name,
+               od.shape
+        from sd.order_detail as od
+                 left join sd.order as o on od.order_id = o.order_id
+                 left join production_scheduling as ps
+                           on ps.order_id = od.order_id and ps.order_number = od.order_number
+        where od.order_id = #{orderId}
+          and ps.processes = #{processes}
+          and ps.scheduling_id IS NOT NULL
+        order by ps.id desc
+    </select>
+    <!--    鏌ヨ鏈帓鐗堟暟鎹�-->
+    <select id="selectNoSchedulingMp">
+
+    </select>
+    <!--    棣栨鏌ヨ鎺掔増鏁版嵁-->
+    <select id="selectLastSchedulingMp">
+        select od.order_id,
+               o.customer_name,
+               o.project,
+               od.order_number,
+               od.width,
+               od.height,
+               od.quantity,
+               round(od.width * od.height * od.quantity / 1000000, 2) as area,
+               (od.quantity - IFNULL(ps.scheduling_quantity, 0))      as pendingProductionQuantity,
+               round(od.width * od.height * (od.quantity - IFNULL(ps.scheduling_quantity, 0)) / 1000000,
+                     2)                                               as pendingProductionArea,
+               IFNULL(ps.scheduling_quantity, 0)                      as productionScheduledQuantity,
+               round(od.width * od.height * (IFNULL(ps.scheduling_quantity, 0)) / 1000000,
+                     2)                                               as productionScheduledArea,
+               od.product_name,
+               od.shape
+        from sd.order_detail as od
+                 left join sd.order as o on od.order_id = o.order_id
+                 left join production_scheduling as ps
+                           on ps.order_id = od.order_id and ps.order_number = od.order_number
+        where od.create_time between #{selectTime1} and #{selectTime2}
+    </select>
+
+    <!--   鏌ヨ瀵瑰簲搴忓彿鐨勫眰鏁�-->
+    <select id="selectLayer">
+        select COUNT(ogd.order_number)
+        from sd.order_glass_detail as ogd
+        where ogd.production_id = #{productionId}
+          and ogd.order_number = #{orderNumber}
+    </select>
+    <!--  鏌ヨ璇ヨ鍗曟祦绋嬪崱鏉℃暟  -->
+    <select id="selectFlowCardCount">
+        select COUNT(*)
+        from flow_card
+        where order_id = #{orderId}
+    </select>
+
+    <select id="flowCardDetailMp">
+        select fc.order_id,
+               fc.process_id,
+               fc.order_number,
+               fc.technology_number,
+               fc.quantity,
+               ogd.child_width,
+               ogd.child_height,
+               round(ogd.child_width * ogd.child_height * fc.quantity / 1000000, 2) as 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 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 = ogd.order_id and od.order_number = ogd.order_number
+        where fc.process_id = #{processId}
+        GROUP BY fc.order_id, fc.process_id, fc.order_number, fc.technology_number
+        order by fc.order_number, fc.technology_number
+    </select>
+
+    <delete id="deleteReportingWork">
+        delete
+        from sd.order_process_detail
+        where process_id = #{processId}
+    </delete>
+
+    <select id="selectPrintFlowCardMp">
+        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)
+          and position(#{project} in project)
+          and processing_card >0
+        order by create_time desc
+    </select>
+
+    <select id="selectPrintFlowCard">
+        select *
+        from pp.optimize_project
+        where create_time between #{selectTime1} and #{selectTime2}
+          and state >= 20
+        order by create_time desc
+    </select>
+
+    <select id="selectPrintMp">
+        select *
+        from ((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,
+                      ROUND(SUM(ogd.child_width*ogd.child_height*fc.quantity)/1000000/(count(DISTINCT fc.technology_number)),2) 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,
+                                          ogds.child_width,
+                                          ogds.child_height
+                                   from sd.order_glass_detail as ogds
+                                   where ogds.order_id = #{orderId}
+                                   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, ogdss.processed_part
+               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,
+                      ROUND(SUM(ogd.child_width*ogd.child_height*fc.quantity)/1000000/(count(DISTINCT fc.technology_number)),2) 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,
+                      ROUND(SUM(ogd.child_width*ogd.child_height*fc.quantity)/1000000/(count(DISTINCT fc.technology_number)),2) 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
+        order by order_id, process_id, length(technology_number)
+    </select>
+
+    <select id="getPrimaryList">
+        select o.customer_name,
+               o.project,
+               #{process}                                         process,
+               od.edging_type,
+               #{glassChild}                                   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,
+               concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch)                 AS otherRemarks,
+               ''                                              as qrcode
+        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})
+        group by fc.process_id
+    </select>
+
+    <select id="getDetailList">
+        select fc.order_number,
+               concat(round(ogd.child_width), "*", round(ogd.child_height))   as child_width,
+               fc.quantity,
+               round(ogd.total_area, 2)                                       as total_area,
+               od.perimeter,
+               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+               concat(IFNULL(od.processing_note, ''), IFNULL(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 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
+        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
+    </select>
+
+    <select id="getProcessList">
+        select *
+        from sd.order_process_detail
+        where process_id = #{processId}
+          and technology_number = #{technologyNumber}
+        group by process
+    </select>
+
+    <update id="updateInventory">
+        update flow_card
+        set inventory_quantity=#{completedQuantity}
+        where process_id = #{processId}
+          and order_number = #{orderNumber}
+          and technology_number = #{technologyNumber}
+    </update>
+
+    <!--    澶嶉�夋淇敼鎺掔増鐘舵��-->
+    <update id="updateComposing">
+        update flow_card as fc
+        set fc.layout_status=1
+        where fc.process_id = #{processId}
+    </update>
+
+    <select id="getPrintLabel">
+        select o.order_id,
+               c.customer_abbreviation as customer_name,
+               o.project,
+               od.building_number,
+               od.processing_note,
+               ogd.child_width         as width,
+               ogd.child_height        as height,
+               ogd.glass_child,
+               ogd.process,
+               e.type_name,
+               opd.stock_id,
+               od.quantity,
+               od.other_columns,
+               od.bend_radius,
+               od.order_number as heat_layout_id,
+               a.id as heat_layout_sort
+        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 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
+        left join
+        (select (@row_number := @row_number + 1) as id,process_id as process_id from (select process_id from pp.optimize_detail tt where project_no =#{projectNo} group by process_id) tt,(select @row_number := 0) as t) a
+        on a.process_id=opd.process_id
+        where opd.project_no = #{projectNo}
+        order by opd.stock_id,opd.polys_id
+    </select>
+
+    <select id="getPrintLabel2">
+        select o.order_id,
+               c.customer_abbreviation as customer_name,
+               o.project,
+               od.building_number,
+               od.processing_note,
+               ogd.child_width         as width,
+               ogd.child_height        as height,
+               ogd.glass_child,
+               ogd.process,
+               e.type_name,
+               od.quantity,
+               od.other_columns,
+               od.bend_radius,
+               opd.heat_layout_id,
+               opd.heat_layout_sort
+        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 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.heat_layout_id, opd.heat_layout_sort desc
+    </select>
+
+    <select id="getPrintLabel1">
+        select o.order_id,
+               o.project,
+               o.customer_id,
+               ogd.child_width                as width,
+               ogd.child_height               as height,
+               fc.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,
+               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
+                 left join pp.flow_card as fc on o.order_id = fc.order_id and
+                                                 od.order_number = fc.order_number and
+                                                 fc.technology_number = ogd.technology_number
+                 left join sd.product pt on pt.id = od.product_id
+                 left join sd.customer c on c.id = o.customer_id
+                 left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id
+        where fc.process_id = #{processId}
+          and fc.technology_number = #{technologyNumber}
+        group by od.order_number, od.width, od.height
+    </select>
+
+    <select id="getPrintLabelDetail">
+        select o.order_id,
+               o.project,
+               o.customer_id,
+               ogd.child_width                as width,
+               ogd.child_height               as height,
+               fc.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,
+               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
+                 left join pp.flow_card as fc on o.order_id = fc.order_id and
+                                                 od.order_number = fc.order_number and
+                                                 fc.technology_number = ogd.technology_number
+                 left join sd.product pt on pt.id = od.product_id
+                 left join sd.customer c on c.id = o.customer_id
+                 left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id
+        <where>
+            and fc.process_id = #{flowCard.processId}
+            and fc.order_number = #{flowCard.orderNumber}
+            <if test="flowCard.technologyNumber != null and flowCard.technologyNumber != ''">
+                and fc.technology_number = #{flowCard.technologyNumber}
+            </if>
+        </where>
+        group by od.order_number,fc.technology_number, od.width, od.height
+    </select>
+
+    <select id="printFlowCardDetailsMp">
+        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,
+               ifnull(fcs.sort, '')                                                 as sort,
+               ogd.glass_child,
+               #{process}                                                           as process,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                AS glassNumber,
+               od.bend_radius
+        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}
+                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_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(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
+    </select>
+
+    <update id="printSortMp">
+        update flow_card
+        set sort = #{sort}
+        where process_id = #{processId}
+          and order_number = #{orderNumber}
+          and technology_number = #{technologyNumber}
+    </update>
+
+    <select id="selectType">
+        select *
+        from pp.tag_style
+    </select>
+    <select id="getPrintTitle">
+        select value
+        from pp.tag_style as a
+        where a.name = #{type}
+    </select>
+
+    <select id="getCustomLabelDetailMp">
+        select #{name}
+        from #{form}
+        where order_id = #{id}
+    </select>
+
+    <resultMap id="orderDetial" type="com.example.erp.entity.sd.OrderDetail">
+        <result column="width" property="width"/>
+        <result column="height" property="height"/>
+        <result column="order_id" property="order.orderId"/>
+        <result column="project" property="order.project"/>
+        <result column="customer_id" property="order.customerId"/>
+        <result column="customer_name" property="order.customerName"/>
+        <result column="order_type" property="order.orderType"/>
+        <result column="order_classify" property="order.orderClassify"/>
+        <result column="batch" property="order.batch"/>
+        <result column="icon" property="order.icon"/>
+        <result column="pack_type" property="order.packType"/>
+        <result column="delivery_date" property="order.deliveryDate"/>
+        <result column="al_type" property="order.alType"/>
+        <result column="money" property="order.money"/>
+        <result column="contract_id" property="order.contractId"/>
+        <result column="customer_batch" property="order.customerBatch"/>
+        <result column="contacts" property="order.contacts"/>
+        <result column="delivery_address" property="order.deliveryAddress"/>
+        <result column="processing_note" property="processingNote"/>
+        <result column="quantity" property="quantity"/>
+        <result column="edging_type" property="edgingType"/>
+        <result column="product_name" property="productName"/>
+        <result column="building_number" property="buildingNumber"/>
+    </resultMap>
+
+    <select id="getPrintCustomData">
+        select o.order_id                                            as orderId,
+               project,
+               customer_id                                           as customerId,
+               o.customer_name                                       as customerName,
+               order_type                                            as orderType,
+               order_classify                                        as orderClassify,
+               batch,
+               o.icon,
+               pack_type                                             as packType,
+               delivery_date                                         as deliveryDate,
+               al_type                                               as alType,
+               money,
+               contract_id                                           as contractId,
+               customer_batch                                           customerBatch,
+               contacts,
+               delivery_address                                      as deliveryAddress,
+               od.processing_note                                    as processingNote,
+               width,
+               height,
+               fc.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.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,
+               od.other_columns,
+               ogd.glass_child                                       as glassChild,
+               ogd.glass_address                                     as glassAddress,
+               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color
+        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 and
+                                                      pd.glass_sort = fc.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
+        where fc.process_id = #{processId}
+          and fc.technology_number = #{technologyNumber}
+        group by od.order_number, width, height
+        order by fc.process_id
+    </select>
+
+    <select id="selectReplenishPrintMp">
+        select fc.id,
+               fc.order_id,
+               fc.process_id,
+               o.customer_name,
+               o.project,
+               fc.order_number,
+               ogd.technology_number,
+               ogd.glass_address,
+               pl.patch_num,
+               pl.patch_area,
+               pl.responsible_team,
+               pl.responsible_equipment,
+               pl.responsible_personnel,
+               pl.patch_type,
+               pl.patch_reason,
+               pl.patch_processes,
+               od.product_name,
+               ogd.glass_child,
+               fc.print_status,
+               pl.reporting_work_id,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                AS glassNumber,
+               pl.patch_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 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}
+          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 or 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 POSITION(fc.technology_number in #{technologyNumber})
+        GROUP BY other_columns
+        order by IF(fc.sort != NULL or 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,
+               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 or 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,
+               concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch)                 AS otherRemarks
+        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,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber
+        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,fc.order_number, 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,
+               fc.quantity,
+               round(ogd.total_area, 2)                                       as total_area,
+               od.perimeter,
+               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+               concat(IFNULL(od.processing_note, ''), IFNULL(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 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(fcs.sort != NULL or fcs.sort != '', fcs.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,
+               sum(pl.patch_num)                                                 as quantity,
+               round(ogd.total_area, 2)                                       as total_area,
+               od.perimeter,
+               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+               concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
+               od.other_columns,
+               round(ogd.child_width)                                         as width,
+               round(ogd.child_height)                                        as height,
+               pd.separation,
+               fc.technology_number,
+               pl.patch_type,
+               pl.patch_reason,
+               pl.patch_processes,
+               pl.responsible_team,
+               pl.responsible_personnel
+        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}
+        and pl.patch_reason = #{patchReason}
+        group by fc.process_id, fc.order_number, fc.technology_number,pl.id
+        order by IF(sort != NULL and 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,
+               concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch)                 AS otherRemarks,
+               dd.responsible_personnel,
+               #{mergeTechnologyNumber} as  mergeTechnologyNumber,
+               pl.patch_id
+        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 pl.reporting_work_id = #{reportingWorkId}
+          and dd.breakage_reason = #{patchReason}
+        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(IFNULL(od.processing_note, ''), IFNULL(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 and 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,
+               dd.breakage_type,
+               dd.breakage_reason,
+               dd.responsible_process,
+               dd.responsible_team,
+               concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch)                 AS otherRemarks,
+               dd.responsible_personnel,
+               pl.rework_id as  patch_id
+        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
+                 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="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,
+               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as 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,
+               pl.rework_type as patch_type,
+               pl.rework_reason as patch_reason,
+               pl.rework_processes as patch_processes,
+               pl.responsible_team,
+               pl.rework_team,
+               pl.responsible_personnel
+        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 and 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 or sort != '', sort, fc.order_number)
+    </select>
+
+    <select id="getPrintCustomDataSemi">
+        select o.order_id                                            as orderId,
+               project,
+               customer_id                                           as customerId,
+               o.customer_name                                       as customerName,
+               order_type                                            as orderType,
+               order_classify                                        as orderClassify,
+               batch,
+               o.icon,
+               pack_type                                             as packType,
+               delivery_date                                         as deliveryDate,
+               al_type                                               as alType,
+               money,
+               contract_id                                           as contractId,
+               customer_batch                                           customerBatch,
+               contacts,
+               delivery_address                                      as deliveryAddress,
+               od.processing_note                                    as processingNote,
+               round(ogd.child_width)                                as width,
+               round(ogd.child_height)                               as height,
+               fc.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.remarks,
+               c.customer_abbreviation                               as customerAbbreviation,
+               p.product_abbreviation                                as productAbbreviation,
+               CONCAT(fc.process_id, '/', fc.technology_number)      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,
+               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color
+        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
+                 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 position(fc.technology_number in #{technologyNumber})
+        group by fc.process_id,od.order_number, ogd.technology_number, ogd.child_width, ogd.child_height
+        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.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(fc.quantity)                                                          as quantity,
+               round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) 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>
+
+    <select id="selectPrintNotMergeMp">
+        select *
+        from ((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)
+
+              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 != ""
+    </select>
+
+    <select id="getRepairPrintCustomDataSemi">
+        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,
+               round(ogd.child_width)                                as width,
+               round(ogd.child_height)                               as 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,
+               CONCAT(fc.process_id, '/', fc.technology_number)      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,
+               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color
+        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
+                 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 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 or 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(fc.quantity)                                                          as quantity,
+                      round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) 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
+        order by order_id, process_id, length(technology_number)
+    </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>
+
+    <select id="getPrimaryListLimt">
+        select o.customer_name,
+               o.project,
+               #{process}                                         process,
+               od.edging_type,
+               #{glassChild}                                   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,
+               concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch)                 AS otherRemarks,
+               fc.technology_number                            as qrcode
+        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})
+        group by fc.process_id
+        limit 1
+    </select>
+
+    <select id="selectPrintDetailsMp">
+        select fc.id,
+               fc.order_id,
+               fc.process_id,
+               o.customer_name,
+               o.project,
+               /*ogd.technology_number,*/
+               ogd.glass_address,
+               (fc.quantity)                                                          as quantity,
+               round((ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) 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,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                  AS glassNumber,
+               od.order_number
+        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, od.order_number
+        order by fc.process_id, od.order_number
+    </select>
+
+    <select id="selectPrintDetailsMp1">
+        select fc.id,
+               fc.order_id,
+               fc.process_id,
+               o.customer_name,
+               o.project,
+               ogd.technology_number,
+               ogd.glass_address,
+               (fc.quantity)                                                          as quantity,
+               round((ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) 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,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                  AS glassNumber,
+               od.order_number
+        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, od.order_number,fc.technology_number
+        order by fc.process_id, od.order_number,fc.technology_number
+    </select>
+
+    <select id="getPrintCustomDataDetails">
+        select o.order_id                                            as orderId,
+               project,
+               customer_id                                           as customerId,
+               o.customer_name                                       as customerName,
+               order_type                                            as orderType,
+               order_classify                                        as orderClassify,
+               batch,
+               o.icon,
+               pack_type                                             as packType,
+               delivery_date                                         as deliveryDate,
+               al_type                                               as alType,
+               money,
+               contract_id                                           as contractId,
+               customer_batch                                           customerBatch,
+               contacts,
+               delivery_address                                      as deliveryAddress,
+               od.processing_note                                    as processingNote,
+               width,
+               height,
+               fc.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.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,
+               od.other_columns,
+               ogd.glass_child                                       as glassChild,
+               ogd.glass_address                                     as glassAddress,
+               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color,
+               '鏂囨湰' as custom1,
+               '鏂囨湰' as custom2,
+               '鏂囨湰' as custom3,
+               '鏂囨湰' as custom4,
+               '鏂囨湰' as custom5,
+               od.quantity
+        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 and
+                                                      pd.glass_sort = fc.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
+        where fc.process_id = #{processId}
+          and fc.order_number = #{orderNumber}
+        group by od.order_number, width, height
+        order by fc.process_id
+    </select>
+
+    <select id="getPrintCustomDataProjectNo">
+        select
+            o.order_id                                            as orderId,
+            project,
+            customer_id                                           as customerId,
+            o.customer_name                                       as customerName,
+            order_type                                            as orderType,
+            order_classify                                        as orderClassify,
+            batch,
+            o.icon,
+            pack_type                                             as packType,
+            delivery_date                                         as deliveryDate,
+            al_type                                               as alType,
+            money,
+            contract_id                                           as contractId,
+            customer_batch                                           customerBatch,
+            contacts,
+            delivery_address                                      as deliveryAddress,
+            od.processing_note                                    as processingNote,
+            od.width,
+            od.height,
+            fc.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.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,
+            od.other_columns,
+            JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color,
+            '鏂囨湰' as custom1,
+            '鏂囨湰' as custom2,
+            '鏂囨湰' as custom3,
+            '鏂囨湰' as custom4,
+            '鏂囨湰' as custom5
+        from optimize_detail as opt
+                 left join flow_card as fc on opt.project_no=fc.project_no and opt.process_id=fc.process_id and opt.layer=fc.technology_number and opt.order_sort=fc.order_number
+                 left join sd.order as o on o.order_id=fc.order_id
+                 left join sd.order_detail as od on fc.order_id = od.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 and
+                                                      pd.glass_sort = fc.technology_number
+        where opt.project_no=#{projectNo}
+        order by opt.stock_id,opt.polys_id
+    </select>
+
+    <select id="selectUserMp">
+        select role_id
+        from erp_user_info.`user` as u
+                 left join erp_user_info.user_role as ur on u.id = ur.user_id
+        where u.login_name = #{userId}
+    </select>
+
+    <select id="selectSortTableMp">
+        select fcs.sort,
+               process_id,
+               fcs.order_number,
+               fcs.technology_number,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
+               fcs.process
+        from flow_card_sort as fcs
+                 left join sd.order_detail as od
+                           on od.order_id = left(fcs.process_id, 10) and od.order_number = fcs.order_number
+        where LEFT(fcs.process_id, 10) = #{orderId}
+        GROUP BY process_id,
+                 fcs.order_number,
+                 fcs.technology_number,
+                 fcs.process
+        ORDER BY fcs.sort,process_id,
+                 fcs.order_number,
+                 fcs.technology_number
+    </select>
+
+    <select id="countFlowCard">
+        select count(distinct process_id) from flow_card where order_id = #{orderId}
+    </select>
+
+    <select id="remakList">
+        SELECT
+            ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S01')),'') AS S01,
+            ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S04')),'') AS S02,
+            ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S05')),'') AS S03,
+            ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S06')),'') AS S04,
+            ifnull(JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S07')),'') AS S05
+        FROM flow_card as fc left join sd.order_detail as od on  fc.order_id = od.order_id
+        and fc.order_number = od.order_number
+        WHERE fc.process_id=#{processId}
+        GROUP BY fc.order_number
+    </select>
+
+    <select id="selectMaxFlowCard">
+        select ifnull((select fc.process_id
+                       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 flow_card as fc on fc.order_id=od.order_id and fc.order_number=od.order_number and fc.technology_number=ogd.technology_number
+                       where od.order_id = #{orderId}
+                         and ogd.production_id = #{productionId}
+                       GROUP BY od.order_number
+                       order by fc.process_id desc LIMIT 1),'') as process_id
+    </select>
+
+    <select id="selectFlowCardMerge">
+        select *,GROUP_CONCAT(DISTINCT fc.technology_number) as count1,count(DISTINCT fc.technology_number)  as count2
+        from pp.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 = ogd.order_id and od.order_number = ogd.order_number
+        where fc.process_id = #{processId}
+        GROUP BY fc.order_id, fc.process_id, ogd.glass_child
+    </select>
+
+    <update id="updateFlowCardMerge">
+        update  pp.flow_card fc set fc.merge=#{index}
+        where fc.process_id = #{processId} and fc.technology_number  in
+        <foreach item="technologyNumber" collection="technologyNumbers" open="(" separator="," close=")">
+            #{technologyNumber}
+        </foreach>
+    </update>
+
+    <delete id="deleteflowCardSort">
+        delete from flow_card_sort where process_id = #{processId}
+    </delete>
+
+    <select id="getPrintProjectDetailsMp">
+        SELECT opd.project_no,opd.stock_id,opl.glass_count FROM optimize_detail as opd left join optimize_layout as opl on opl.project_no=opd.project_no and opl.stock_id=opd.stock_id
+        where opd.project_no=#{projectNo}
+        GROUP BY opd.stock_id
+        ORDER BY opd.stock_id
+    </select>
+
+    <select id="getPrintCustomDataProjectDetail">
+        select
+            o.order_id                                            as orderId,
+            project,
+            customer_id                                           as customerId,
+            o.customer_name                                       as customerName,
+            order_type                                            as orderType,
+            order_classify                                        as orderClassify,
+            batch,
+            o.icon,
+            pack_type                                             as packType,
+            delivery_date                                         as deliveryDate,
+            al_type                                               as alType,
+            money,
+            contract_id                                           as contractId,
+            customer_batch                                           customerBatch,
+            contacts,
+            delivery_address                                      as deliveryAddress,
+            od.processing_note                                    as processingNote,
+            od.width,
+            od.height,
+            fc.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.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,
+            od.other_columns,
+            JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color,
+            '鏂囨湰' as custom1,
+            '鏂囨湰' as custom2,
+            '鏂囨湰' as custom3,
+            '鏂囨湰' as custom4,
+            '鏂囨湰' as custom5
+        from optimize_detail as opt
+                 left join flow_card as fc on opt.project_no=fc.project_no and opt.process_id=fc.process_id and opt.layer=fc.technology_number and opt.order_sort=fc.order_number
+                 left join sd.order as o on o.order_id=fc.order_id
+                 left join sd.order_detail as od on fc.order_id = od.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 and
+                                                      pd.glass_sort = fc.technology_number
+        where opt.project_no=#{projectNo} and opt.stock_id=#{stockId}
+        order by opt.stock_id,opt.polys_id
+    </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0