From b499a7e1dbcc4b9dbcdcaa46bbf5c24271bf6698 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期一, 11 八月 2025 16:54:05 +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 | 1095 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 996 insertions(+), 99 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 efd51ed..a584d19 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -11,6 +11,7 @@
         <result column="create_time" property="createTime"/>
         <result column="layout_status" property="layoutStatus"/>
         <result column="merge" property="merge"/>
+        <result column="rack" property="rack"/>
         <!--鎺ユ敹鍏朵粬澶栭敭瀹炰綋绫绘暟鎹�-->
         <association property="order" javaType="com.example.erp.entity.sd.Order">
             <result column="project" property="project"/>
@@ -61,16 +62,20 @@
         c.product_name,
         b.project,
         sum(a.quantity) as quantity,
-        sum(c.compute_gross_area) as compute_gross_area,
+        sum(a.quantity) * c.area as compute_gross_area,
         a.founder,
         c.processing_note,
         b.customer_name,
-        if(a.layout_status=0,'涓嶅彲鎺掔増',if(a.layout_status=1,'鍙帓鐗�','宸叉帓鐗�')) as layout_status,
-        a.merge
-        from (select id,order_id,process_id,order_number, quantity,founder,max(layout_status) as 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
+        layout_status as layout_status,
+        a.merge,
+        a.rack,
+        b.batch
+        from (select id,order_id,process_id,order_number, quantity,founder,max(layout_status) as layout_status,create_time,max(merge) as merge,rack 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 date(a.create_time)>=#{selectTime1} and date(a.create_time) &lt;= #{selectTime2}
+        and b.create_order>0
         <if test="flowCard.orderId != null and flowCard.orderId != ''">
             and a.order_id regexp #{flowCard.orderId}
         </if>
@@ -99,6 +104,9 @@
         <if test="flowCard.merge != null">
             and a.merge regexp #{flowCard.merge}
         </if>
+        <if test="flowCard.rack != null and flowCard.rack != ''">
+            and a.rack regexp #{flowCard.rack}
+        </if>
         <if test="flowCard.order.customerName != null and flowCard.order.customerName!= ''">
             and b.customer_name regexp #{flowCard.order.customerName}
         </if>
@@ -115,6 +123,7 @@
         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 date(a.create_time)>=#{selectTime1} and date(a.create_time) &lt;= #{selectTime2}
+        and b.create_order>0
         <if test="flowCard.orderId != null and flowCard.orderId != ''">
             and a.order_id regexp #{flowCard.orderId}
         </if>
@@ -199,43 +208,66 @@
 
     <!--    鍒嗘灦鏄庣粏鏌ヨ-->
     <select id="detailsSelectMp">
-        select od.order_id,
-               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
+        SELECT
+            od.order_id,
+            ogd.production_id,
+            od.product_id,
+            od.product_name,
+            ROUND(SUM(od.quantity) - IFNULL(SUM(fc.quantity), 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, production_id, splitting_status,
+                   technology_number
+            FROM sd.order_glass_detail
+            GROUP BY order_id, order_number, production_id, splitting_status
+        ) AS ogd
+                           ON od.order_id = ogd.order_id
+                               AND od.order_number = ogd.order_number
+                 LEFT JOIN (
+            SELECT order_id, order_number, technology_number, SUM(quantity) AS quantity, layers_number
+            FROM flow_card
+            GROUP BY order_id, order_number, technology_number
+        ) 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, od.product_id, od.product_name
+        ORDER BY od.order_id DESC;
 
-        group by od.order_id, ogd.production_id
-        order by od.id desc
     </select>
 
     <!--    鏇存柊鍒嗘灦鐘舵��-->
     <update id="updateDeleteState">
         update
-            sd.order_glass_detail as ogd left join flow_card as fc
+            sd.order_glass_detail as ogd left join pp.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}
+        where
+        <if test="processId=='all'">
+            ogd.order_id = #{orderId}
+        </if>
+        <if test="processId!='all'">
+            fc.process_id = #{processId}
+        </if>
+
 
     </update>
 
     <!--    鍒犻櫎娴佺▼鍗�-->
     <update id="deleteFlowCardMp">
         delete
-        from flow_card as fc
-        where fc.process_id = #{processId}
+        from pp.flow_card as fc
+        where
+        <if test="processId=='all'">
+            fc.order_id = #{orderId}
+        </if>
+        <if test="processId!='all'">
+            fc.process_id = #{processId}
+        </if>
     </update>
 
     <!--    鍒嗘灦鏂板鏄庣粏鏌ヨ-->
@@ -247,11 +279,13 @@
                od.order_number       AS 'orderNumber',
                od.width,
                od.height,
+               GREATEST(od.width, od.height) AS longSide,   -- 闀胯竟
+               LEAST(od.width, od.height)   AS shortSide,   -- 鐭竟
                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,
+               ROUND(od.quantity-IFNULL(sum(fc.quantity)/fc.layers_number,0))           as baiscQuantity,
                od.compute_gross_area as 'computeGrossArea',
                p.total_thickness     AS 'totalThickness',
                ifnull(p.thickness,'') as thickness,
@@ -268,7 +302,7 @@
         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 sd.product as p on od.product_id = p.id
                  left join (SELECT order_id,
                                    order_number,
                                    JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S01')) AS S01,
@@ -310,6 +344,13 @@
         from reporting_work as rw
         where rw.process_id = #{processId} and reviewed_state>=0
     </select>
+    <!--    鏌ヨ鎶ュ伐琛ㄥ唴鏄惁鏈夊搴旀祦绋嬪崱-->
+    <select id="reportingWorkCountByOrderId">
+        select COUNT(rw.process_id)
+        from pp.reporting_work as rw
+        where rw.order_id = #{orderId} and reviewed_state>=0
+    </select>
+
     <!--    鎻掑叆Flow_card琛�-->
     <insert id="addFlowCardMp">
         insert into flow_card (order_id,
@@ -445,7 +486,8 @@
                fc.founder,
                date(fc.splitFrame_time)                                             as splitFrame_time,
                ogd.process,
-               c.concatNumber
+               c.concatNumber,
+               ifnull(fc.termination_quantity,0) as termination_quantity
         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
@@ -466,6 +508,14 @@
         where process_id = #{processId}
     </delete>
 
+    <delete id="deleteReportingWorkByOrderId">
+        delete
+        from sd.order_process_detail
+        where order_id = #{orderId}
+    </delete>
+
+
+
     <select id="selectPrintFlowCardMp">
         select order_id,
                project,
@@ -479,20 +529,23 @@
         where date(create_time)>=#{selectTime1} and date(create_time) &lt;= #{selectTime2}
           and position(#{orderId} in order_id)
           and position(#{project} in project)
-          and processing_card >0
+          and if(#{state}=0,(order_review >0 and processing_card =0),processing_card >0)
         order by create_time desc
     </select>
 
     <select id="selectPrintFlowCard">
-        select project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum
-        from pp.optimize_project
-        where date(create_time)>=#{selectTime1} and date(create_time) &lt;= #{selectTime2}
-          and state >= 20
-        order by create_time desc
+        select op.project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum,glass_type,glass_thickness
+        from pp.optimize_project as op
+                 left join pp.flow_card as fc on op.project_no=fc.project_no
+                 left join sd.`order` as o on o.order_id=fc.order_id
+        where date(op.create_time)>=#{selectTime1} and date(op.create_time) &lt;= #{selectTime2}
+          and state >= 20 and (o.create_order>0   or o.create_order is null)
+        GROUP BY op.project_no
+        order by op.create_time desc
     </select>
 
     <select id="selectPrintMp">
-        select *
+        SELECT result.*,fcc.print_status from ( select *
         from ((select fc.id,
                       fc.order_id,
                       fc.process_id,
@@ -507,8 +560,8 @@
                       ogdss.concatenated_glass_child                                   as glass_child,
                       fc.founder,
                       date(fc.splitFrame_time)                                         as splitFrame_time,
-                      fc.print_status,
-                      processed_part                                                   as process
+                      processed_part                                                   as process,
+                      merge
 
                from flow_card as fc
                         left join sd.order_glass_detail as ogd
@@ -549,8 +602,8 @@
                       ogdss.concatenated_glass_child                                   as glass_child,
                       fc.founder,
                       date(fc.splitFrame_time)                                         as splitFrame_time,
-                      fc.print_status,
-                      processed_part                                                   as process
+                      processed_part                                                   as process,
+                      merge
 
                from flow_card as fc
                         left join sd.order_glass_detail as ogd
@@ -564,11 +617,12 @@
                                           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
+                                          SUBSTRING(process, LOCATE(bd.basic_name, process))       AS processed_part
                                    from sd.order_glass_detail as ogds
+                                   left join sd.basic_data as bd on bd.nickname='stepC'
                                    where ogds.order_id = #{orderId}
-                                     and LOCATE('澶硅兌', ogds.process) > 0
-                                   GROUP BY order_id, order_number, ogds.group) as ogdss
+                                     and LOCATE(bd.basic_name, ogds.process) > 0
+                                   GROUP BY order_id, order_number, ogds.group,bd.basic_name) 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
@@ -587,8 +641,8 @@
                       ogdss.concatenated_glass_child                                   as glass_child,
                       fc.founder,
                       date(fc.splitFrame_time)                                         as splitFrame_time,
-                      fc.print_status,
-                      processed_part                                                   as process
+                      processed_part                                                   as process,
+                      merge
 
                from flow_card as fc
                         left join sd.order_glass_detail as ogd
@@ -602,15 +656,16 @@
                                           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
+                                          SUBSTRING(ogds.process, LOCATE(bd.basic_name, ogds.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
+                                            left join sd.basic_data as bd on bd.nickname='stepD'
                                    where ogds.order_id = #{orderId}
-                                   GROUP BY order_id, order_number) as ogdss
+                                   GROUP BY order_id, order_number,bd.basic_name) 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
@@ -618,12 +673,15 @@
         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)
+        order by order_id, process_id, length(technology_number),technology_number) as result
+        LEFT JOIN (SELECT * from flow_card GROUP BY process_id,technology_number) as fcc
+        on result.process_id = fcc.process_id and result.technology_number = fcc.technology_number
     </select>
 
     <select id="getPrimaryList">
         select o.customer_name,
                o.project,
+               if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch,
                #{process}                                         process,
                od.edging_type,
                #{glassChild}                                   as glass_child,
@@ -636,7 +694,8 @@
                #{technologyNumber}                             as technologyNumber,
                concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
                concat('瀵瑰簲鎴戝徃鍗曞彿', o.batch)                 AS otherRemarks,
-               ''                                              as qrcode
+               ''                                              as qrcode,
+               ifnull(rack,"")                                  as rack
         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
@@ -663,6 +722,7 @@
     <select id="getPrimaryLists">
         select o.customer_name,
                o.project,
+               if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch,
                #{process}                                         process,
                od.edging_type,
                #{glassChild}                                   as glass_child,
@@ -705,7 +765,7 @@
                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,
+        if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) as bend_radius,
                concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
                od.other_columns,
                round(ogd.child_width)                                         as width,
@@ -728,7 +788,32 @@
         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)
+        <choose>
+            <!-- 褰� landingSequence != 1 涓� flashback != 1 鏃讹紝鎸� landing_sequence 鍊掑簭 -->
+            <when test="landingSequence != 1 and flashback != 1">
+                ORDER BY landing_sequence,fc.id desc
+            </when>
+            <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+            <when test="landingSequence != 1">
+                ORDER BY landing_sequence DESC
+            </when>
+            <!-- flashback = 1 鏃舵搴� -->
+            <when test="flashback == 1">
+                ORDER BY
+                CASE
+                WHEN fcs.sort IS NOT NULL AND fcs.sort &lt;&gt;  '' THEN fcs.sort
+                ELSE fc.order_number
+                END ASC
+            </when>
+            <!-- flashback != 1 鏃跺�掑簭 -->
+            <otherwise>
+                ORDER BY
+                CASE
+                WHEN fcs.sort IS NOT NULL AND fcs.sort &lt;&gt;  '' THEN fcs.sort
+                ELSE fc.order_number
+                END DESC
+            </otherwise>
+        </choose>
     </select>
 
     <select id="getDetailLists">
@@ -737,7 +822,7 @@
                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,
+               if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) as bend_radius,
                concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
                od.other_columns,
                round(ogd.child_width)                                         as width,
@@ -787,23 +872,33 @@
         where fc.process_id = #{processId}
     </update>
 
+    <!--    澶嶉�夋淇敼娴佺▼鍗″悎鏋�-->
+    <update id="updateProcessCardRack">
+        update flow_card as fc
+        set fc.rack=#{rack}
+        where fc.process_id = #{processId} and fc.technology_number=#{technologyNumber}
+    </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,
+               opd.o_width         as width,
+               opd.o_height        as height,
                ogd.glass_child,
                ogd.process,
                e.type_name,
                opd.stock_id,
-               od.quantity,
+               opd.polys_id,
+               IFNULL(od.quantity,1) as quantity,
                od.other_columns,
                od.bend_radius,
-               od.order_number as heat_layout_id,
-               a.id as heat_layout_sort
+               ifnull(od.order_number,0) as heat_layout_id,
+               ifnull(a.id,0) as heat_layout_sort,
+               od.product_name,
+               opd.process_id
         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
@@ -832,11 +927,15 @@
                ogd.glass_child,
                ogd.process,
                e.type_name,
+               opd.stock_id,
+               opd.polys_id,
                od.quantity,
                od.other_columns,
                od.bend_radius,
                opd.heat_layout_id,
-               opd.heat_layout_sort
+               opd.heat_layout_sort,
+               od.product_name,
+               opd.process_id
         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
@@ -847,7 +946,7 @@
                  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}
+        where opd.project_no = #{projectNo} and o.order_id is not null
         order by opd.heat_layout_id, opd.heat_layout_sort desc
     </select>
 
@@ -927,13 +1026,13 @@
                ogd.glass_address,
                ogd.child_width,
                ogd.child_height,
-               fc.quantity,
+               sum(fc.quantity) as 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
+               if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) as 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
@@ -1019,6 +1118,91 @@
                od.processing_note                                    as processingNote,
                width,
                height,
+               #{printQuantity}  as quantity,
+               CONCAT(
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+                       ' = ',#{printQuantity} )      as size,
+
+               CONCAT(
+                   od.order_number,')      ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+                       ' = ',#{printQuantity} )      as numberSize,
+            CONCAT(
+            od.order_number,')','   ',
+            TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+            ' X ',
+            TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))))      as numberSizeQuantity,
+               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,
+               SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
+               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
+        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="getPrintCustomData2">
+        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,
@@ -1029,6 +1213,7 @@
                c.customer_abbreviation                               as customerAbbreviation,
                p.product_abbreviation                                as productAbbreviation,
                fc.process_id                                         as processId,
+               SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
                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,
@@ -1056,8 +1241,7 @@
                            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
+        group by od.order_number
         order by fc.process_id
     </select>
 
@@ -1067,9 +1251,12 @@
                fc.process_id,
                o.customer_name,
                o.project,
+               o.batch,
                fc.order_number,
                ogd.technology_number,
                ogd.glass_address,
+               ogd.child_width,
+               ogd.child_height,
                pl.patch_num,
                pl.patch_area,
                pl.responsible_team,
@@ -1083,7 +1270,8 @@
                fc.print_status,
                pl.reporting_work_id,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                AS glassNumber,
-               pl.patch_id
+               pl.patch_id,
+               date(pl.create_time) as create_time
 
         from flow_card as fc
                  left join sd.order_glass_detail as ogd
@@ -1130,6 +1318,7 @@
                c.customer_abbreviation                               as customerAbbreviation,
                p.product_abbreviation                                as productAbbreviation,
                fc.process_id                                         as processId,
+               SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
                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,
@@ -1140,7 +1329,28 @@
                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.bend_radius                                        as bendRadius,
+               CONCAT(
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+                       ' = ',pl.patch_num )      as size,
+               CONCAT(
+                       od.order_number,')      ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height    AS CHAR))),
+                       ' = ',pl.patch_num )      as numberSize,
+               CONCAT(
+                       od.order_number,')','   ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height    AS CHAR))))      as numberSizeQuantity,
+               '鏂囨湰' as custom1,
+               '鏂囨湰' as custom2,
+               '鏂囨湰' as custom3,
+               '鏂囨湰' as custom4,
+               '鏂囨湰' as custom5
         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
@@ -1151,6 +1361,7 @@
                  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.order_sort=#{orderNumber}
           and pl.technology_number = #{technologyNumber}
           and pl.reporting_work_id = #{reportingWorkId}
         group by od.order_number, width, height
@@ -1206,6 +1417,7 @@
     <select id="getPrimaryListMerge">
         select o.customer_name,
                o.project,
+               if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch,
                ogd.process,
                od.edging_type,
                ogdc.concatenated_glass_child                   as glass_child,
@@ -1279,7 +1491,8 @@
                                            pl.order_sort = fc.order_number and
                                            pl.technology_number = fc.technology_number
         where  date(pl.create_time)>=#{selectTime1} and date(pl.create_time) &lt;= #{selectTime2}
-        GROUP BY fc.process_id,fc.order_number, ogd.technology_number, pl.reporting_work_id
+        GROUP BY fc.process_id,fc.order_number, ogd.technology_number, pl.reporting_work_id,pl.rework_type,
+            pl.rework_reason
         order by pl.id desc, fc.process_id, ogd.technology_number
     </select>
 
@@ -1289,7 +1502,7 @@
                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,
+        if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) as bend_radius,
                concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
                od.other_columns,
                round(ogd.child_width)                                         as width,
@@ -1312,7 +1525,87 @@
         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)
+        <choose>
+            <when test="landingSequence != 1 and flashback != 1">
+                ORDER BY landing_sequence,fc.id desc
+            </when>
+            <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+            <when test="landingSequence != 1">
+                ORDER BY landing_sequence DESC
+            </when>
+            <!-- flashback = 1 鏃舵搴� -->
+            <when test="flashback == 1">
+                ORDER BY
+                CASE
+                WHEN fcs.sort IS NOT NULL AND fcs.sort &lt;&gt;  '' THEN fcs.sort
+                ELSE fc.order_number
+                END ASC
+            </when>
+            <!-- flashback != 1 鏃跺�掑簭 -->
+            <otherwise>
+                ORDER BY
+                CASE
+                WHEN fcs.sort IS NOT NULL AND fcs.sort &lt;&gt;  '' THEN fcs.sort
+                ELSE fc.order_number
+                END DESC
+            </otherwise>
+        </choose>
+    </select>
+
+    <select id="getDetailListMerge">
+        select fc.order_number,
+               concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1)))   as child_width,
+               sum(fc.quantity) as quantity,
+               round(ogd.total_area, 2)                                       as total_area,
+               od.perimeter,
+        if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) 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,
+               IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
+               od.building_number,
+               fc.merge                                                         as merge
+        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 fc.`merge`=1
+        group by fc.process_id, fc.order_number
+        <choose>
+            <when test="landingSequence != 1 and flashback != 1">
+                ORDER BY landing_sequence,fc.id desc
+            </when>
+            <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+            <when test="landingSequence != 1">
+                ORDER BY landing_sequence DESC
+            </when>
+            <!-- flashback = 1 鏃舵搴� -->
+            <when test="flashback == 1">
+                ORDER BY
+                CASE
+                WHEN fcs.sort IS NOT NULL AND fcs.sort &lt;&gt;  '' THEN fcs.sort
+                ELSE fc.order_number
+                END ASC
+            </when>
+            <!-- flashback != 1 鏃跺�掑簭 -->
+            <otherwise>
+                ORDER BY
+                CASE
+                WHEN fcs.sort IS NOT NULL AND fcs.sort &lt;&gt;  '' THEN fcs.sort
+                ELSE fc.order_number
+                END DESC
+            </otherwise>
+        </choose>
     </select>
 
     <select id="getDetailListLikes">
@@ -1321,7 +1614,7 @@
                count(*) as quantity,
                round(ogd.child_width*ogd.child_height*count(*)/1000000, 2)                                       as total_area,
                round((ogd.child_width+ogd.child_height)*2*count(*)/1000, 2)    as perimeter,
-               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) as bend_radius,
+               if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) as bend_radius,
                concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
                od.other_columns,
                round(ogd.child_width)                                         as width,
@@ -1392,11 +1685,11 @@
 
     <select id="getDetailListRefund">
         select fc.order_number,
-               concat(round(ogd.child_width), "*", round(ogd.child_height))   as child_width,
+               concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1)))   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,
+               if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) as bend_radius,
                concat(IFNULL(od.processing_note, ''), IFNULL(od.remarks, '')) as remarks,
                od.other_columns,
                round(ogd.child_width)                                         as width,
@@ -1429,6 +1722,7 @@
     <select id="getPrimaryListRefund">
         select o.customer_name,
                o.project,
+               if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch,
                ogd.process,
                od.edging_type,
                ogd.glass_child,
@@ -1483,7 +1777,7 @@
 
     <select id="getDetailListLikeRefund">
         select fc.order_number,
-               concat(round(ogd.child_width), "*", round(ogd.child_height))   as child_width,
+               concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1)))   as child_width,
                pl.patch_num                                                   as quantity,
                round(ogd.total_area, 2)                                       as total_area,
                od.perimeter,
@@ -1514,6 +1808,7 @@
     <select id="getPrimaryListRework">
         select o.customer_name,
                o.project,
+               if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch,
                ogd.process,
                od.edging_type,
                ogd.glass_child,
@@ -1570,7 +1865,7 @@
                (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,
+               if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) as bend_radius,
                concat(od.processing_note, od.remarks)                       as remarks,
                od.other_columns,
                round(ogd.child_width)                                       as width,
@@ -1690,10 +1985,10 @@
                contacts,
                delivery_address                                      as deliveryAddress,
                od.processing_note                                    as processingNote,
-               round(ogd.child_width)                                as width,
-               round(ogd.child_height)                               as height,
-               fc.quantity,
-               CONCAT(round(ogd.child_width)  , ' X ', round(ogd.child_height)   ,' = ',fc.quantity )           as size,
+              ogd.child_width                                as width,
+               ogd.child_height                              as height,
+                #{printQuantity} as quantity,
+               CONCAT(ogd.child_width  , ' X ', ogd.child_height   ,' = ',fc.quantity )           as size,
                od.order_number                                       as orderNumber,
                fc.technology_number                                  as technologyNumber,
                od.building_number                                    as buildingNumber,
@@ -1703,6 +1998,7 @@
                c.customer_abbreviation                               as customerAbbreviation,
                p.product_abbreviation                                as productAbbreviation,
                CONCAT(fc.process_id, '/', fc.technology_number)      as processId,
+               SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
                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,
@@ -1716,7 +2012,28 @@
                od.bend_radius                                        as bendRadius,
                ogd.glass_child                                       as glassChild,
                ogd.glass_address                                     as glassAddress,
-               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color
+               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color,
+               CONCAT(
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR))),
+                       ' = ',fc.quantity )      as size,
+               CONCAT(
+                       od.order_number,')      ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height    AS CHAR))),
+                       ' = ',fc.quantity )      as numberSize,
+               CONCAT(
+                       od.order_number,')','   ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height    AS CHAR))))      as numberSizeQuantity,
+        '鏂囨湰' as custom1,
+               '鏂囨湰' as custom2,
+               '鏂囨湰' as custom3,
+               '鏂囨湰' as custom4,
+               '鏂囨湰' as custom5
         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
@@ -1732,6 +2049,7 @@
                               fcs.technology_number = fc.technology_number
                                and fcs.process = #{process}
         where fc.process_id = #{processId}
+          and fc.order_number = #{orderNumber}
           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)
@@ -1754,7 +2072,8 @@
                date(fc.splitFrame_time) as splitFrame_time,
             /* if(fc.print_status=0,'鏈墦鍗�','宸叉墦鍗�') as  print_status*/
                fc.print_status,
-               ogd.process
+               ogd.process,
+               merge
         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
@@ -1900,8 +2219,8 @@
                contacts,
                o.delivery_address                                    as deliveryAddress,
                od.processing_note                                    as processingNote,
-               round(ogd.child_width)                                as width,
-               round(ogd.child_height)                               as height,
+               ogd.child_width                                as width,
+               ogd.child_height                              as height,
                pl.patch_num                                          as quantity,
                pl.order_sort                                         as orderNumber,
                pl.technology_number                                  as technologyNumber,
@@ -1912,6 +2231,7 @@
                c.customer_abbreviation                               as customerAbbreviation,
                p.product_abbreviation                                as productAbbreviation,
                CONCAT(fc.process_id, '/', fc.technology_number)      as processId,
+               SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
                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,
@@ -1925,7 +2245,28 @@
                od.bend_radius                                        as bendRadius,
                ogd.glass_child                                       as glassChild,
                ogd.glass_address                                     as glassAddress,
-               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color
+               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color,
+               CONCAT(
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR))),
+                       ' = ',pl.patch_num )      as size,
+               CONCAT(
+                       od.order_number,')      ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height    AS CHAR))),
+                       ' = ',pl.patch_num )      as numberSize,
+               CONCAT(
+                       od.order_number,')','   ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height    AS CHAR))))      as numberSizeQuantity,
+               '鏂囨湰' as custom1,
+               '鏂囨湰' as custom2,
+               '鏂囨湰' as custom3,
+               '鏂囨湰' as custom4,
+               '鏂囨湰' as custom5
         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
@@ -1939,6 +2280,7 @@
                            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.order_sort=#{orderNumber}
           and pl.technology_number = #{technologyNumber}
           and pl.reporting_work_id = #{reportingWorkId}
         group by od.order_number, width, height
@@ -1962,7 +2304,8 @@
                       date(fc.splitFrame_time)                                                  as splitFrame_time,
                    /* if(fc.print_status=0,'鏈墦鍗�','宸叉墦鍗�') as  print_status*/
                       fc.print_status,
-                      ogd.process
+                      ogd.process,
+                      merge
                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
@@ -1991,7 +2334,8 @@
                       fc.founder,
                       date(fc.splitFrame_time)                                         as splitFrame_time,
                       fc.print_status,
-                      processed_part                                                   as process
+                      processed_part                                                   as process,
+                      merge
 
                from flow_card as fc
                         left join sd.order_glass_detail as ogd
@@ -2005,10 +2349,11 @@
                                           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
+                                          SUBSTRING(process, LOCATE(bd.basic_name, process))       AS processed_part
                                    from sd.order_glass_detail as ogds
+                                  left join sd.basic_data as bd on bd.nickname='stepC'
                                    where ogds.order_id = #{orderId}
-                                     and LOCATE('澶硅兌', ogds.process) > 0
+                                     and LOCATE(bd.basic_name, 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}
@@ -2029,7 +2374,8 @@
                       fc.founder,
                       date(fc.splitFrame_time)                                         as splitFrame_time,
                       fc.print_status,
-                      processed_part                                                   as process
+                      processed_part                                                   as process,
+                      merge
 
                from flow_card as fc
                         left join sd.order_glass_detail as ogd
@@ -2043,13 +2389,14 @@
                                           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
+                                          SUBSTRING(pds.process, LOCATE(bd.basic_name, 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
+                                            left join sd.basic_data as bd on bd.nickname='stepD'
                                    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
@@ -2085,6 +2432,7 @@
 
     <select id="getPrimaryListLimt">
         select o.customer_name,
+               if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch,
                o.project,
                #{process}                                         process,
                od.edging_type,
@@ -2139,10 +2487,13 @@
                fc.founder,
                date(fc.splitFrame_time)                                               as splitFrame_time,
             /* if(fc.print_status=0,'鏈墦鍗�','宸叉墦鍗�') as  print_status*/
-               fc.print_status,
+               ifnull(fc.print_number,0) as  print_status,
                ogd.process,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                  AS glassNumber,
-               od.order_number
+               od.order_number,
+               od.width,
+               od.height,
+               od.building_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
@@ -2170,10 +2521,19 @@
                fc.founder,
                date(fc.splitFrame_time)                                               as splitFrame_time,
             /* if(fc.print_status=0,'鏈墦鍗�','宸叉墦鍗�') as  print_status*/
-               fc.print_status,
+               ifnull(fc.print_number,0) as  print_status,
                ogd.process,
                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                  AS glassNumber,
-               od.order_number
+               od.order_number,
+               ogd.child_width as width,
+               ogd.child_height as height,
+                ifnull(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')),'') AS glassNumber,
+                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS S01,
+                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS S02,
+                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS S03,
+                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS S04,
+                JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS S05,
+                od.building_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
@@ -2213,11 +2573,16 @@
                    ' = ',#{printQuantity} )      as size,
 
                CONCAT(
-                   od.order_number,')  ',
+                   od.order_number,')      ',
                        TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                        ' X ',
                        TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
                        ' = ',#{printQuantity} )      as numberSize,
+               CONCAT(
+                       od.order_number,')','   ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))))      as numberSizeQuantity,
                od.order_number                                       as orderNumber,
                fc.technology_number                                  as technologyNumber,
                od.building_number                                    as buildingNumber,
@@ -2227,6 +2592,7 @@
                c.customer_abbreviation                               as customerAbbreviation,
                p.product_abbreviation                                as productAbbreviation,
                fc.process_id                                         as processId,
+               SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
                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,
@@ -2261,7 +2627,7 @@
                               ogd.technology_number = fc.technology_number
         where fc.process_id = #{processId}
           and fc.order_number = #{orderNumber}
-        group by od.order_number, width, height
+        group by fc.process_id,od.order_number, width, height
         order by fc.process_id
     </select>
 
@@ -2296,6 +2662,7 @@
             c.customer_abbreviation                               as customerAbbreviation,
             p.product_abbreviation                                as productAbbreviation,
             fc.process_id                                 as processId,
+            SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
             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,
@@ -2409,6 +2776,15 @@
         delete from flow_card_sort where process_id = #{processId}
     </delete>
 
+    <delete id="deleteflowCardSortByOrderId">
+        delete from pp.flow_card_sort
+               where process_id =(
+                                  select process_id from pp.flow_card
+                                  where order_id=#{orderId}
+                                  group by process_id
+                )
+    </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}
@@ -2447,6 +2823,7 @@
             c.customer_abbreviation                               as customerAbbreviation,
             p.product_abbreviation                                as productAbbreviation,
             fc.process_id                                 as processId,
+            SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
             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,
@@ -2509,6 +2886,7 @@
             c.customer_abbreviation                               as customerAbbreviation,
             p.product_abbreviation                                as productAbbreviation,
             fc.process_id                                 as processId,
+            SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
             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,
@@ -2570,6 +2948,7 @@
                ogd.process,
                e.type_name,
                opd.stock_id,
+               opd.polys_id,
                od.quantity,
                od.other_columns,
                od.bend_radius,
@@ -2588,7 +2967,7 @@
                  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}
+        where opd.project_no = #{projectNo} and o.order_id is not null
         group by  order_id,od.order_number
         order by ogd.child_width desc,ogd.child_height desc
     </select>
@@ -2636,14 +3015,16 @@
             od.product_name,
             ogd.glass_child,
             fc.patch_state,
-            ogd.process
+            ogd.process,
+            fcd.merge
         from  (select process_id,count(*) as quantity,order_sort,project_no,layer,patch_state from pp.optimize_detail where project_no = #{printProject} group by process_id,layer) as fc
                   left join sd.order_glass_detail as ogd
                             on ogd.order_id = SUBSTRING(fc.process_id,1,10)  and ogd.order_number = fc.order_sort and
                                ogd.technology_number = fc.layer
                   left join sd.order_detail as od on od.order_id = SUBSTRING(fc.process_id,1,10)  and od.order_number = fc.order_sort
                   left join sd.`order` as o on o.order_id = SUBSTRING(fc.process_id,1,10)
-        where fc.project_no = #{printProject}
+                  left join pp.`flow_card` as fcd on fcd.process_id=fc.process_id and fcd.technology_number=ogd.technology_number and fcd.order_number=od.order_number
+        where fc.project_no = #{printProject} and fc.process_id is not null and fc.process_id!=""
         GROUP BY fc.process_id, ogd.technology_number
         order by fc.process_id, ogd.technology_number
     </select>
@@ -2664,5 +3045,521 @@
         select processPrintNum from optimize_project where project_no=#{projectNo}
     </select>
 
+    <select id="flowCardToOptimizeCount">
+        select count(*) from pp.flow_card where order_id = #{orderId} and project_no is not null
+    </select>
 
+    <select id="getFlowCardDetail" >
+        select
+        a.order_id,
+        a.process_id,
+        a.technology_number,
+        a.order_number,
+        c.product_id,
+        c.product_name,
+        b.project,
+        sum(a.quantity) as quantity,
+        sum(c.compute_gross_area) as compute_gross_area,
+        a.founder,
+        c.processing_note,
+        b.customer_name,
+        a.merge,
+        a.rack
+        from  pp.flow_card 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.process_id regexp #{processId}
+        group by a.process_id,a.technology_number
+
+    </select>
+    
+    <select id="getGlassThicknessByProdutionId">
+        select total_thickness as 'totalThickness',thickness as 'thickness' from sd.product
+        where id = (
+            select distinct b.product_id from sd.order_glass_detail as a
+                    left join sd.order_detail as b
+                    on a.order_id = b.order_id and a.order_number = b.order_number
+                    where a.order_id = #{orderId}
+                    and a.production_id = #{productionId}
+            )
+    </select>
+    
+    <select id="getOrderDetailByProductionId">
+        select * from (select a.*,
+                              a.quantity as 'baiscQuantity',
+                              #{glassThickness} as 'thickness',
+        IF(a.height >= a.width, a.height, a.width) as 'long',
+        IF(a.height &lt; a.width, a.height, a.width) as 'short'
+        from sd.order_detail as a
+        left join sd.order_glass_detail as b
+        on a.order_id = b.order_id and a.order_number = b.order_number
+        where a.order_id = #{orderId} and b.production_id = #{productionId}
+
+        group by a.order_number) as c
+        <if test="type=='scope'">
+            where  c.`long` &lt;= #{inLenMax}
+                and c.`long` >= #{inLenMin}
+                and c.`short` >= #{inShortMin}
+                and c.`short` &lt;= #{inShortMax}
+        </if>
+        <if test="type=='notScope'">
+            where  !(c.`long` &lt;= #{inLenMax}
+            and c.`long` >= #{inLenMin}
+            and c.`short` >= #{inShortMin}
+            and c.`short` &lt;= #{inShortMax})
+        </if>
+        order by c.`long` desc
+    </select>
+
+    <!--    澶嶉�夋淇敼鎺掔増鐘舵��-->
+    <update id="revokeComposing">
+        update flow_card as fc
+        set fc.layout_status=0
+        where fc.process_id = #{processId}
+    </update>
+
+    <select id="selectProjectNo">
+        SELECT COUNT(*)
+        FROM flow_card
+        WHERE process_id= #{processId} and project_no IS not NULL;
+    </select>
+
+    <select id="selectPrintDetailsMp2">
+        select ogd.id,
+               ogd.order_id,
+               o.customer_name,
+               o.project,
+               ogd.technology_number,
+               ogd.glass_address,
+               (od.quantity)                                                          as quantity,
+               (od.quantity)                                                          as printQuantity,
+               round((ogd.child_width * ogd.child_height * od.quantity / 1000000), 2) as total_area,
+               od.product_name,
+               ogd.glass_child,
+               ogd.process,
+               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                  AS glassNumber,
+               od.order_number,
+               ogd.child_width as width,
+               ogd.child_height as height
+        from sd.order_glass_detail as ogd
+                 left join sd.order_detail as od on od.order_id = ogd.order_id and od.order_number = ogd.order_number
+                 left join sd.`order` as o on o.order_id = ogd.order_id
+        where ogd.order_id = #{orderId}
+        GROUP BY od.order_number
+        order by od.order_number
+    </select>
+
+    <select id="getPrintOrderDataDetails">
+        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,
+               #{printQuantity}                                      as quantity,
+               CONCAT(
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+                       ' = ',#{printQuantity} )      as size,
+
+               CONCAT(
+                       od.order_number,')      ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height    AS CHAR))),
+                       ' = ',#{printQuantity} )      as numberSize,
+               CONCAT(
+                       od.order_number,')','   ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height    AS CHAR))))      as numberSizeQuantity,
+            od.order_number                                       as orderNumber,
+            ogd.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,
+            ''                                         as processId,
+            SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
+            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 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.order_glass_detail as ogd
+            on ogd.order_id = od.order_id and ogd.order_number = od.order_number
+            left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
+            pd.glass_sort = ogd.technology_number
+
+        where od.order_id = #{orderId}
+          and od.order_number = #{orderNumber}
+        group by od.order_number, width, height
+        order by od.order_id
+    </select>
+
+    <select id="updatePrintNumberMp">
+        update pp.flow_card
+        set print_number = ifnull(print_number,0) + 1
+        where process_id = #{processId}
+          and order_number = #{orderNumber}
+    </select>
+
+    <select id="getOrderIdByProcessId">
+        select order_id from pp.flow_card  where process_id = #{processId} limit 1;
+    </select>
+
+    <select id="flowCardDetailMergeMp">
+        select merge from pp.flow_card where process_id = #{processId}  group by id ORDER BY merge desc LIMIT 1
+    </select>
+
+    <update id="updateFlowCardIsMerge">
+        update  pp.flow_card fc set fc.merge=0
+        where fc.process_id = #{processId}
+    </update>
+
+    <select id="getProcessName">
+        select IFNULL(nickname,'') from sd.basic_data where basic_category='process' and basic_name=#{processSub}
+    </select>
+
+    <select id="getProcessNameList">
+        SELECT id,basic_name,IFNULL(nickname,"") as nickname FROM sd.`basic_data` where basic_category='process'
+    </select>
+
+    <select id="exportDateProcessMp">
+        select
+        a.order_Id,
+        a.process_Id,
+        c.product_id,
+        c.product_name,
+        b.project,
+        sum(a.quantity) as quantity,
+        sum(a.quantity) * c.area as compute_gross_area,
+        a.founder,
+        c.processing_note,
+        b.customer_name,
+        layout_status as layout_status,
+        a.merge,
+        a.rack,
+        b.batch
+        from (select id,order_id,process_id,order_number, quantity,founder,max(layout_status) as layout_status,create_time,max(merge) as merge,rack 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 date(a.create_time) >= #{date[0]}
+          and date(a.create_time) &lt;= #{date[1]}
+        and b.create_order>0
+        group by a.process_Id
+        ORDER BY a.id desc
+    </select>
+
+    <select id="getSumQuantity">
+        select quantity from  sd.`order` where order_id=#{orderId}
+    </select>
+
+    <select id="getDetailCompoundList">
+        select fc.order_number,
+        concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1)))   as child_width,
+        SUM(fc.quantity) as quantity,
+        round(SUM(ogd.total_area), 2)                                       as total_area,
+        SUM(od.perimeter) as perimeter,
+        if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04'))) 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,
+        #{compound} as technology_number,
+        IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
+        od.building_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 #{compound})
+        group by fc.process_id, fc.order_number
+        <choose>
+            <when test="landingSequence != 1 and flashback != 1">
+                ORDER BY landing_sequence,fc.id desc
+            </when>
+            <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+            <when test="landingSequence != 1">
+                ORDER BY landing_sequence DESC
+            </when>
+            <!-- flashback = 1 鏃舵搴� -->
+            <when test="flashback == 1">
+                ORDER BY
+                CASE
+                WHEN fcs.sort IS NOT NULL AND fcs.sort &lt;&gt;  '' THEN fcs.sort
+                ELSE fc.order_number
+                END ASC
+            </when>
+            <!-- flashback != 1 鏃跺�掑簭 -->
+            <otherwise>
+                ORDER BY
+                CASE
+                WHEN fcs.sort IS NOT NULL AND fcs.sort &lt;&gt;  '' THEN fcs.sort
+                ELSE fc.order_number
+                END DESC
+            </otherwise>
+        </choose>
+    </select>
+
+    <select id="getDetailListLikeCompound">
+        select fc.order_number,
+        concat(IF(ROUND(ogd.child_width, 1) = FLOOR(ogd.child_width), FLOOR(ogd.child_width), ROUND(ogd.child_width, 1)), "*", IF(ROUND(child_height, 1) = FLOOR(child_height), FLOOR(child_height), ROUND(child_height, 1)))   as child_width,
+        sum(fc.quantity) as quantity,
+        round(sum(ogd.total_area), 2)                                       as total_area,
+        sum(od.perimeter) as perimeter,
+        if(od.bend_radius!=null || od.bend_radius!='',od.bend_radius,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) 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,
+        #{compound} as technology_number,
+        IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
+        od.building_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 #{compound})
+        group by fc.process_id, fc.order_number
+        <choose>
+            <when test="landingSequence != 1 and flashback != 1">
+                ORDER BY landing_sequence,fc.id desc
+            </when>
+            <!-- landingSequence != 1 鏃讹紝浼樺厛鎸� landing_sequence 鍊掑簭 -->
+            <when test="landingSequence != 1">
+                ORDER BY landing_sequence DESC
+            </when>
+            <!-- flashback = 1 鏃舵搴� -->
+            <when test="flashback == 1">
+                ORDER BY
+                CASE
+                WHEN fcs.sort IS NOT NULL AND fcs.sort &lt;&gt;  '' THEN fcs.sort
+                ELSE fc.order_number
+                END ASC
+            </when>
+            <!-- flashback != 1 鏃跺�掑簭 -->
+            <otherwise>
+                ORDER BY
+                CASE
+                WHEN fcs.sort IS NOT NULL AND fcs.sort &lt;&gt;  '' THEN fcs.sort
+                ELSE fc.order_number
+                END DESC
+            </otherwise>
+        </choose>
+    </select>
+
+    <select id="getPrintCustomDataSemiTj">
+        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,
+               ogd.child_width                                as width,
+               ogd.child_height                              as height,
+               fc.quantity,
+               CONCAT(ogd.child_width  , ' X ', ogd.child_height   ,' = ',fc.quantity )           as size,
+               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,
+               SUBSTRING(fc.process_id,12  )                                        as processIdAD ,/*-娴佺▼鍗$畝鍐�-*/
+               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,
+               CONCAT(
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(height AS CHAR))),
+                       ' = ',fc.quantity )      as size,
+               CONCAT(
+                       od.order_number,')      ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height    AS CHAR))),
+                       ' = ',fc.quantity )      as numberSize,
+               CONCAT(
+                       od.order_number,')','   ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width   AS CHAR))),
+                       ' X ',
+                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height    AS CHAR))))      as numberSizeQuantity,
+                       '鏂囨湰' as custom1,
+                       '鏂囨湰' as custom2,
+                       '鏂囨湰' as custom3,
+                       '鏂囨湰' as custom4,
+                       '鏂囨湰' as custom5
+        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="getLayoutStatus">
+        select max(layout_status) from flow_card where process_id= #{processId}
+    </select>
+
+    <select id="selectSortingCardMp">
+        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)/fc.layers_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,
+               od.building_number
+        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_id = p.id
+                 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
+        <if test="optionVal == 0 and flashback == 1">
+            ORDER BY od.width ASC, od.height ASC
+        </if>
+        <if test="optionVal == 0 and flashback == 0">
+            ORDER BY od.width DESC, od.height DESC
+        </if>
+        <if test="optionVal == 1 and flashback == 1">
+            ORDER BY od.height ASC, od.width ASC
+        </if>
+        <if test="optionVal == 1 and flashback == 0">
+            ORDER BY od.height DESC, od.width DESC
+        </if>
+    </select>
+
+    <update id="updateTerminationMp">
+        update  pp.flow_card fc set fc.termination_quantity=#{value}
+        where fc.process_id = #{processId} and fc.order_number=#{orderNumber}
+    </update>
+
+    <select id="selectCompletedMp">
+        SELECT max(reporting_work_num) FROM  sd.`order_process_detail`
+        where process_id=#{processId} and order_number=#{orderNumber} and process=#{interceptProcess}
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0