chenlu
2025-03-07 3ab330b8aefb3cd781c9b8730b4ab7ac65e7e9d7
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"/>
@@ -66,11 +67,14 @@
        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
        a.merge,
        a.rack
        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 +103,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 +122,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>
@@ -224,18 +232,31 @@
    <!--    更新分架状态-->
    <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>
    <!--    分架新增明细查询-->
@@ -310,6 +331,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,
@@ -466,6 +494,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 +515,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
        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
        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 +546,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 +588,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
@@ -587,8 +626,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,7 +641,7 @@
                                          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('中空', 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
@@ -618,7 +657,9 @@
        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)) 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">
@@ -632,6 +673,46 @@
               fc.process_id,
               SUM(od.quantity)                                as quantity,
               round(SUM(ogd.total_area), 2)                   as gross_area,
               sum(od.weight)                                  as weight,
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
               concat('对应我司单号', o.batch)                 AS otherRemarks,
               ''                                              as qrcode,
               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
                              fc.technology_number = ogd.technology_number
                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
                 left join sd.`order` as o on o.order_id = fc.order_id
                 left join sd.product as p on p.id = od.product_id
                 left join (select ogd.order_id,
                                   ogd.order_number,
                                   ogd.technology_number,
                                   ogd.glass_child,
                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
                            from sd.order_glass_detail as ogd
                            where ogd.order_id = #{orderId}
                              and position(ogd.technology_number in #{technologyNumber})
                            GROUP BY order_id, order_number) as ogdc
                           on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
                              ogdc.technology_number = ogd.technology_number
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id
    </select>
    <select id="getPrimaryLists">
        select o.customer_name,
               o.project,
               #{process}                                         process,
               od.edging_type,
               #{glassChild}                                   as glass_child,
               od.product_name,
               o.processing_note,
               fc.process_id,
               #{quantity}                                                      as quantity,
               round(od.width*od.height*#{quantity}/1000000, 2)                   as gross_area,
               sum(od.weight)                                  as weight,
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
@@ -662,6 +743,38 @@
    <select id="getDetailList">
        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,
               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,
               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
        from flow_card as fc
                 left join sd.order_glass_detail as ogd
                           on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
                              fc.technology_number = ogd.technology_number
                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
                 left join sd.product_detail as pd
                           on pd.prod_id = od.product_id and pd.glass_sort = ogd.technology_number
                 left join flow_card_sort as fcs
                           on fcs.process_id = fc.process_id and fcs.order_number = fc.order_number and
                              fcs.technology_number = fc.technology_number
                               and fcs.process = #{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id, fc.order_number
        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <select id="getDetailLists">
        select fc.order_number,
               concat(round(ogd.child_width), "*", round(ogd.child_height))   as child_width,
               fc.quantity,
               round(ogd.total_area, 2)                                       as total_area,
@@ -688,6 +801,7 @@
                               and fcs.process = #{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        and fc.order_sort = #{orderNumber}
        group by fc.process_id, fc.order_number
        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
@@ -715,6 +829,13 @@
        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,
@@ -727,11 +848,13 @@
               ogd.process,
               e.type_name,
               opd.stock_id,
               opd.polys_id,
               od.quantity,
               od.other_columns,
               od.bend_radius,
               od.order_number as heat_layout_id,
               a.id as heat_layout_sort
               a.id as heat_layout_sort,
               od.product_name
        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
@@ -760,11 +883,14 @@
               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
        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
@@ -861,7 +987,7 @@
               ogd.glass_child,
               #{process}                                                           as process,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                AS glassNumber,
               od.bend_radius
               if(od.shape=2,JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')),od.bend_radius) 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
@@ -984,8 +1110,69 @@
                           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}
          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,
               od.building_number                                    as buildingNumber,
               od.product_name                                       as productName,
               od.edging_type                                        as edgingType,
               od.remarks,
               c.customer_abbreviation                               as customerAbbreviation,
               p.product_abbreviation                                as productAbbreviation,
               fc.process_id                                         as processId,
               o.create_time                                         as createTime,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01')) AS glassNumber,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')) AS figureNumber,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S03')) AS colourCeramicGlaze,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S04')) AS remarks1,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S05')) AS remarks2,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S06')) AS remarks3,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S07')) AS remarks4,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S08')) AS remarks5,
               p.remarks                                             as filmNumber,
               od.bend_radius                                        as bendRadius,
               od.other_columns,
               ogd.glass_child                                       as glassChild,
               ogd.glass_address                                     as glassAddress,
               JSON_UNQUOTE(JSON_EXTRACT(pd.separation, '$.color'))  AS color
        from sd.order as o
                 left join sd.order_detail as od on o.order_id = od.order_id
                 left join flow_card as fc on o.order_id = fc.order_id and
                                              od.order_number = fc.order_number
                 left join sd.product as p on p.id = od.product_id
                 left join sd.customer as c on c.id = o.customer_id
                 left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
                                                      pd.glass_sort = fc.technology_number
                 left join sd.order_glass_detail as ogd
                           on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
                              ogd.technology_number = fc.technology_number
        where fc.process_id = #{processId}
        group by od.order_number
        order by fc.process_id
    </select>
@@ -1068,7 +1255,19 @@
               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
        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
@@ -1079,6 +1278,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
@@ -1213,11 +1413,11 @@
    <select id="getDetailListLike">
        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,
               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,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,
@@ -1238,6 +1438,71 @@
                              fcs.technology_number = fc.technology_number
                               and fcs.process = #{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
        group by fc.process_id, fc.order_number, fc.technology_number
        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <select id="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,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,
               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
        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <select id="getDetailListLikes">
        select fc.order_number,
               concat(round(ogd.child_width), "*", round(ogd.child_height))   as child_width,
               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,
               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
        from optimize_detail opt left join flow_card as fc on opt.process_id = fc.process_id and opt.order_sort = fc.order_number and
                                                              opt.layer = fc.technology_number
                                 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 opt.process_id = #{processId} and opt.project_no=#{printProject}
          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)
@@ -1291,7 +1556,7 @@
               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,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,
@@ -1649,7 +1914,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
@@ -1820,7 +2086,19 @@
               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
        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
@@ -1834,6 +2112,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
@@ -1857,7 +2136,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
@@ -1886,7 +2166,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
@@ -1924,7 +2205,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
@@ -2034,10 +2316,12 @@
               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
        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
@@ -2065,10 +2349,12 @@
               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
        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
@@ -2106,6 +2392,13 @@
                   ' 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,
               od.order_number                                       as orderNumber,
               fc.technology_number                                  as technologyNumber,
               od.building_number                                    as buildingNumber,
@@ -2297,6 +2590,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}
@@ -2458,6 +2760,7 @@
               ogd.process,
               e.type_name,
               opd.stock_id,
               opd.polys_id,
               od.quantity,
               od.other_columns,
               od.bend_radius,
@@ -2511,31 +2814,236 @@
    </update>
    <select id="getFlowCardListPrintProject">
        select fc.id,
               fc.order_id,
               fc.process_id,
               o.customer_name,
               o.project,
               fc.order_number,
               ogd.technology_number,
               ogd.glass_address,
               sum(fc.quantity)                                                          as quantity,
               round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
               od.product_name,
               ogd.glass_child,
               fc.founder,
               date(fc.splitFrame_time) as splitFrame_time,
            /* if(fc.print_status=0,'未打印','已打印') as  print_status*/
               fc.print_status,
               ogd.process
        from pp.flow_card as fc
                 left join sd.order_glass_detail as ogd
                           on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
                              ogd.technology_number = fc.technology_number
                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
                 left join sd.`order` as o on o.order_id = fc.order_id
        select
            od.order_id,
            fc.process_id,
            o.customer_name,
            o.project,
            od.order_number,
            ogd.technology_number,
            ogd.glass_address,
            fc.quantity ,
            round(sum(ogd.child_width * ogd.child_height * fc.quantity / 1000000), 2) as total_area,
            od.product_name,
            ogd.glass_child,
            fc.patch_state,
            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)
                  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}
        GROUP BY fc.process_id, ogd.technology_number
        order by fc.process_id, ogd.technology_number
    </select>
    <update id="updateProjectLabelPrintCount">
       update optimize_project set labelPrintNum=labelPrintNum+1 where project_no=#{projectNo}
    </update>
    <select id="selectProjectLabelPrintCount">
        select labelPrintNum from optimize_project where project_no=#{projectNo}
    </select>
    <update id="updateProjectProcessPrintCount">
        update optimize_project set processPrintNum=processPrintNum+1 where project_no=#{projectNo}
    </update>
    <select id="selectProjectProcessPrintCount">
        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,
            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,
            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>
</mapper>