廖井涛
2025-08-11 b499a7e1dbcc4b9dbcdcaa46bbf5c24271bf6698
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -62,13 +62,14 @@
        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,
        layout_status as layout_status,
        a.merge,
        a.rack
        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
@@ -207,26 +208,36 @@
    <!--    分架明细查询-->
    <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>
    <!--    更新分架状态-->
@@ -268,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,
@@ -289,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,
@@ -473,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
@@ -520,7 +534,7 @@
    </select>
    <select id="selectPrintFlowCard">
        select op.project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum
        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
@@ -603,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
@@ -641,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(ogds.process, LOCATE('中空', ogds.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
@@ -657,7 +673,7 @@
        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)) as result
        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>
@@ -665,6 +681,7 @@
    <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,
@@ -705,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,
@@ -747,7 +765,7 @@
               fc.quantity,
               round(ogd.total_area, 2)                                       as total_area,
               od.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,
        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,
@@ -770,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">
@@ -779,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,
@@ -842,19 +885,20 @@
               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,
               opd.polys_id,
               od.quantity,
               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,
               od.product_name
               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
@@ -890,7 +934,8 @@
               od.bend_radius,
               opd.heat_layout_id,
               opd.heat_layout_sort,
               od.product_name
               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
@@ -901,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>
@@ -981,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,
               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
        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
@@ -1073,7 +1118,24 @@
               od.processing_note                                    as processingNote,
               width,
               height,
               fc.quantity,
               #{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,
@@ -1083,6 +1145,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,
@@ -1097,7 +1160,12 @@
               od.other_columns,
               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,
                '文本' 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
@@ -1145,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,
@@ -1182,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,
@@ -1198,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
@@ -1245,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,
@@ -1260,14 +1334,23 @@
                       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,
                       ' = ',pl.patch_num )      as size,
               CONCAT(
                       od.order_number,')  ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                       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
                       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
@@ -1334,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,
@@ -1407,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>
@@ -1417,7 +1502,7 @@
               fc.quantity,
               round(ogd.total_area, 2)                                       as total_area,
               od.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,
        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,
@@ -1440,7 +1525,31 @@
        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">
@@ -1449,7 +1558,7 @@
               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,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) 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,
@@ -1472,7 +1581,31 @@
                               and fcs.process = #{process}
        where fc.process_id = #{processId} and fc.`merge`=1
        group by fc.process_id, fc.order_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="getDetailListLikes">
@@ -1481,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,
@@ -1552,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.bend_radius!=null || od.bend_radius!='',od.bend_radius,if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),'')) 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,
@@ -1589,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,
@@ -1643,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,
@@ -1674,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,
@@ -1730,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,
@@ -1850,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,
@@ -1863,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,
@@ -1876,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
@@ -1892,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)
@@ -2061,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,
@@ -2073,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,
@@ -2091,14 +2250,23 @@
                       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,
                       ' = ',pl.patch_num )      as size,
               CONCAT(
                       od.order_number,')  ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_width AS CHAR))),
                       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
                       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
@@ -2181,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}
@@ -2220,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
@@ -2262,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,
@@ -2321,7 +2492,8 @@
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                  AS glassNumber,
               od.order_number,
               od.width,
               od.height
               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
@@ -2354,7 +2526,14 @@
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                  AS glassNumber,
               od.order_number,
               ogd.child_width as width,
               ogd.child_height as height
               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
@@ -2394,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,
@@ -2408,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,
@@ -2442,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>
@@ -2477,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,
@@ -2637,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,
@@ -2699,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,
@@ -2779,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>
@@ -2836,7 +3024,7 @@
                  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)
                  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}
        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>
@@ -2899,13 +3087,28 @@
    
    <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>
@@ -2975,11 +3178,16 @@
                       ' = ',#{printQuantity} )      as size,
               CONCAT(
                   od.order_number,')  ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(width AS CHAR))),
                       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))),
                       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,
@@ -2989,6 +3197,7 @@
            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,
@@ -3031,4 +3240,326 @@
        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>