chenlu
6 天以前 d5055b7870d0406f9b00d429cb47d2bfb79b902c
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -12,6 +12,7 @@
        <result column="layout_status" property="layoutStatus"/>
        <result column="merge" property="merge"/>
        <result column="rack" property="rack"/>
        <result column="compute_gross_area" property="computeGrossArea"/>
        <!--接收其他外键实体类数据-->
        <association property="order" javaType="com.example.erp.entity.sd.Order">
            <result column="project" property="project"/>
@@ -24,6 +25,8 @@
            <result column="salesman" property="salesman"/>
            <result column="processing_note" property="processingNote"/>
            <result column="delivery_address" property="deliveryAddress"/>
            <result column="create_time" property="createTime"/>
            <result column="update_time" property="updateTime"/>
        </association>
        <association property="orderDetail" javaType="com.example.erp.entity.sd.OrderDetail">
            <result column="product_id" property="productId"/>
@@ -31,7 +34,6 @@
            <result column="compute_gross_area" property="computeGrossArea"/>
            <result column="processing_note" property="processingNote"/>
            <result column="quantity" property="quantity"/>
            <result column="compute_gross_area" property="computeGrossArea"/>
            <result column="perimeter" property="perimeter"/>
            <result column="order_number" property="orderNumber"/>
            <result column="width" property="width"/>
@@ -55,6 +57,78 @@
    <!--    流程卡管理查询-->
    <select id="selectFlowCard" resultMap="flowCardMap">
        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,
        b.create_time,
        b.update_time
        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>
        <if test="flowCard.processId != null and flowCard.processId != ''">
            and a.process_Id regexp #{flowCard.processId}
        </if>
        <if test="flowCard.order.batch != null and flowCard.order.batch != ''">
            and b.batch regexp #{flowCard.order.batch}
        </if>
        <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
            and c.product_id regexp #{flowCard.orderDetail.productId}
        </if>
        <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
            and c.product_name regexp #{flowCard.orderDetail.productName}
        </if>
        <if test="flowCard.order.project != null and flowCard.order.project!= ''">
            and b.project regexp #{flowCard.order.project}
        </if>
        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '不可排版'">
            and a.layout_status regexp 0
        </if>
        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '可排版'">
            and a.layout_status regexp 1
        </if>
        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '已排版'">
            and a.layout_status regexp 2
        </if>
        <if test="flowCard.merge != null">
            and a.merge regexp #{flowCard.merge}
        </if>
        <if test="flowCard.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>
        group by a.process_Id
        ORDER BY a.id desc
        limit #{offset},#{pageSize};
    </select>
    <select id="getPageTotal">
        SELECT SUM(quantity) as quantity,
               SUM(compute_gross_area) as computeGrossArea,
               CEILING(count(fcd.process_Id)/100) as 'pageTotal',
               count(distinct fcd.process_Id) as 'total'
        from (
        select
        a.order_Id,
        a.process_Id,
@@ -112,49 +186,7 @@
        </if>
        group by a.process_Id
        ORDER BY a.id desc
        limit #{offset},#{pageSize};
    </select>
    <select id="getPageTotal">
        select
        CEILING(count(a.process_Id)/#{pageSize}) as 'pageTotal',
        count(distinct a.process_Id) as 'total'
        from flow_card as a left join sd.`order` as b on a.order_Id=b.order_id
        left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
        where 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>
        <if test="flowCard.processId != null and flowCard.processId != ''">
            and a.process_Id regexp #{flowCard.processId}
        </if>
        <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
            and c.product_id regexp #{flowCard.orderDetail.productId}
        </if>
        <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
            and c.product_name regexp #{flowCard.orderDetail.productName}
        </if>
        <if test="flowCard.order.project != null and flowCard.order.project!= ''">
            and b.project regexp #{flowCard.order.project}
        </if>
        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '不可排版'">
            and a.layout_status regexp 0
        </if>
        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '可排版'">
            and a.layout_status regexp 1
        </if>
        <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and  flowCard.layoutStatus == '已排版'">
            and a.layout_status regexp 2
        </if>
        <if test="flowCard.merge != null">
            and a.merge regexp #{flowCard.merge}
        </if>
        ORDER BY a.id desc
        limit #{offset},#{pageSize};
        ) as fcd
    </select>
    <!--分架查询-->
@@ -298,7 +330,7 @@
               ods.S03,
               ods.S04,
               ods.S05,
               od.building_number
               od.building_number as 'buildingNumber'
        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
@@ -534,7 +566,8 @@
    </select>
    <select id="selectPrintFlowCard">
        select op.project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum,glass_type,glass_thickness
        select op.project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum,glass_type,glass_thickness,
               GROUP_CONCAT(DISTINCT o.order_id SEPARATOR '~') as order_id
        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
@@ -695,7 +728,10 @@
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
               concat('对应我司单号', o.batch)                 AS otherRemarks,
               ''                                              as qrcode,
               ifnull(rack,"")                                  as rack
               ifnull(rack,"")                                  as rack,
               o.quantity as orderQuantity,
               o.area as orderArea,
               o.order_type
        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
@@ -735,7 +771,8 @@
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
               concat('对应我司单号', o.batch)                 AS otherRemarks,
               ''                                              as qrcode
               ''                                              as qrcode,
               o.order_type
        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
@@ -773,7 +810,8 @@
               pd.separation,
               fc.technology_number,
               IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
               od.building_number
               od.building_number,
               od.weight
        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
@@ -786,7 +824,7 @@
                              fcs.technology_number = fc.technology_number
                               and fcs.process = #{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
          and FIND_IN_SET(fc.technology_number , #{technologyNumber})
        group by fc.process_id, fc.order_number
        <choose>
            <!-- 当 landingSequence != 1 且 flashback != 1 时,按 landing_sequence 倒序 -->
@@ -1246,7 +1284,7 @@
    </select>
    <select id="selectReplenishPrintMp">
        select fc.id,
        select pl.id,
               fc.order_id,
               fc.process_id,
               o.customer_name,
@@ -1271,7 +1309,8 @@
               pl.reporting_work_id,
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                AS glassNumber,
               pl.patch_id,
               date(pl.create_time) as create_time
               date(pl.create_time) as create_time,
               pl.print_num
        from flow_card as fc
                 left join sd.order_glass_detail as ogd
@@ -1368,12 +1407,93 @@
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
    </select>
    <select id="getReworkPrintCustomData">
        select o.order_id                                            as orderId,
               o.project,
               o.customer_id                                         as customerId,
               o.customer_name                                       as customerName,
               o.order_type                                          as orderType,
               o.order_classify                                      as orderClassify,
               o.batch,
               o.icon,
               o.pack_type                                           as packType,
               o.delivery_date                                       as deliveryDate,
               o.al_type                                             as alType,
               o.money,
               contract_id                                           as contractId,
               customer_batch                                           customerBatch,
               contacts,
               o.delivery_address                                    as deliveryAddress,
               od.processing_note                                    as processingNote,
               od.width,
               od.height,
               pl.rework_num                                          as quantity,
               pl.order_sort                                         as orderNumber,
               pl.technology_number                                  as technologyNumber,
               od.building_number                                    as buildingNumber,
               od.product_name                                       as productName,
               od.edging_type                                        as edgingType,
               p.remarks,
               c.customer_abbreviation                               as customerAbbreviation,
               p.product_abbreviation                                as productAbbreviation,
               fc.process_id                                         as processId,
               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,
               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.rework_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.rework_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
            od.order_number = fc.order_number
            left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
            pl.technology_number = fc.technology_number
            left join sd.product as p on p.id = od.product_id
            left join sd.customer as c on c.id = o.customer_id
            left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number
        where pl.process_id = #{processId}
          and pl.order_sort=#{orderNumber}
          and pl.technology_number = #{technologyNumber}
          and pl.reporting_work_id = #{reportingWorkId}
        group by od.order_number, width, height
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
    </select>
    <select id="getGlassNumber">
        select other_columns
        from sd.order_detail as od
                 left join flow_card as fc on od.order_id = fc.order_id and od.order_number = fc.order_number
        where fc.process_id = #{processId}
          and POSITION(fc.technology_number in #{technologyNumber})
          and  FIND_IN_SET(fc.technology_number , #{technologyNumber})
        GROUP BY other_columns
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, fc.order_number)
    </select>
@@ -1523,7 +1643,7 @@
                              fcs.technology_number = fc.technology_number
                               and fcs.process = #{process}
        where fc.process_id = #{processId}
          and position(fc.technology_number in #{technologyNumber})
          and  FIND_IN_SET(fc.technology_number , #{technologyNumber})
        group by fc.process_id, fc.order_number, fc.technology_number
        <choose>
            <when test="landingSequence != 1 and flashback != 1">
@@ -1654,7 +1774,8 @@
               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(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
               o.order_type
        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
@@ -1700,7 +1821,8 @@
               pl.patch_reason,
               pl.patch_processes,
               pl.responsible_team,
               pl.responsible_personnel
               pl.responsible_personnel,
               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
@@ -1741,7 +1863,8 @@
               concat('对应我司单号', o.batch)                 AS otherRemarks,
               dd.responsible_personnel,
               #{mergeTechnologyNumber} as  mergeTechnologyNumber,
               pl.patch_id
               pl.patch_id,
               o.order_type
        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
@@ -2050,9 +2173,20 @@
                               and fcs.process = #{process}
        where fc.process_id = #{processId}
          and fc.order_number = #{orderNumber}
          and position(fc.technology_number in #{technologyNumber})
        <if test="technologyNumber != null and technologyNumber != ''">
            AND position(fc.technology_number in #{technologyNumber})
        </if>
        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="getgetPrintCustomDataSemiSp">
        select * from pp.optimize_detail opd
                 where opd.process_id= #{processId} and opd.order_sort = #{orderNumber}
        <if test="technologyNumber != null and technologyNumber != ''">
          and opd.layer = #{technologyNumber}
        </if>
    </select>
    <select id="selectPrintNotMp">
@@ -2287,6 +2421,92 @@
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
    </select>
    <select id="getReworkPrintCustomDataSemi">
        select o.order_id                                            as orderId,
               o.project,
               o.customer_id                                         as customerId,
               o.customer_name                                       as customerName,
               o.order_type                                          as orderType,
               o.order_classify                                      as orderClassify,
               o.batch,
               o.icon,
               o.pack_type                                           as packType,
               o.delivery_date                                       as deliveryDate,
               o.al_type                                             as alType,
               o.money,
               contract_id                                           as contractId,
               customer_batch                                           customerBatch,
               contacts,
               o.delivery_address                                    as deliveryAddress,
               od.processing_note                                    as processingNote,
               ogd.child_width                                as width,
               ogd.child_height                              as height,
               pl.rework_num                                          as quantity,
               pl.order_sort                                         as orderNumber,
               pl.technology_number                                  as technologyNumber,
               od.building_number                                    as buildingNumber,
               od.product_name                                       as productName,
               od.edging_type                                        as edgingType,
               p.remarks,
               c.customer_abbreviation                               as customerAbbreviation,
               p.product_abbreviation                                as productAbbreviation,
               CONCAT(fc.process_id, '/', fc.technology_number)      as processId,
               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(ogd.child_width AS CHAR))),
                       ' X ',
                       TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(ogd.child_height AS CHAR))),
                       ' = ',pl.rework_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.rework_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
            od.order_number = fc.order_number
            left join rework as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
            pl.technology_number = fc.technology_number
            left join sd.product as p on p.id = od.product_id
            left join sd.customer as c on c.id = o.customer_id
            left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number
            left join sd.order_glass_detail ogd
            on ogd.order_id = o.order_id and ogd.order_number = od.order_number and
            ogd.technology_number = fc.technology_number
        where pl.process_id = #{processId}
          and pl.order_sort=#{orderNumber}
          and pl.technology_number = #{technologyNumber}
          and pl.reporting_work_id = #{reportingWorkId}
        group by od.order_number, width, height
        order by IF(fc.sort != NULL or fc.sort != '', fc.sort, pl.order_sort)
    </select>
    <select id="selectPrintAllMp">
        select *
        from ((select fc.id,
@@ -2446,7 +2666,11 @@
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
               concat('对应我司单号', o.batch)                 AS otherRemarks,
               fc.technology_number                            as qrcode
               fc.technology_number                            as qrcode,
               o.other_remarks,
               o.quantity as orderQuantity,
               o.area as orderArea,
               o.order_type
        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
@@ -2625,6 +2849,7 @@
                 left join sd.order_glass_detail as ogd
                           on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
                              ogd.technology_number = fc.technology_number
        where fc.process_id = #{processId}
          and fc.order_number = #{orderNumber}
        group by fc.process_id,od.order_number, width, height
@@ -2792,8 +3017,19 @@
        ORDER BY opd.stock_id
    </select>
    <select id="getPrintProjectDetailsMpSp">
        SELECT opd.project_no,opd.stock_id,opd.polys_id,o_width,o_height,p_width,p_height,opd.glass_id
        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} and opd.stock_id in
        <foreach item="item" index="index" collection="stockId" open="(" separator="," close=")">
            #{item}
        </foreach>
        order BY opd.stock_id
    </select>
    <select id="getPrintCustomDataProjectDetail">
        select
            opt.glass_id                                          as heat_layout_sort ,
            o.order_id                                            as orderId,
            project,
            customer_id                                           as customerId,
@@ -2811,9 +3047,25 @@
            contacts,
            delivery_address                                      as deliveryAddress,
            od.processing_note                                    as processingNote,
            od.width,
            od.height,
            fc.quantity as flowQuantity,
            opt.o_width,
            opt.o_height,
            opl.glass_count as flowQuantity,
            CONCAT(
                    opt.o_width,
                    ' X ',
                    opt.o_height,
                    ' = ',opl.glass_count )      as size,
               CONCAT(
                       od.order_number,')      ',
                       opt.o_width,
                       ' X ',
                       opt.o_height,
                       ' = ',opl.glass_count )      as numberSize,
               CONCAT(
                       od.order_number,')','   ',
                        opt.o_width,
                       ' X ',
                       opt.o_height)      as numberSizeQuantity,
            od.order_number                                       as orderNumber,
            fc.technology_number                                  as technologyNumber,
            od.building_number                                    as buildingNumber,
@@ -2842,8 +3094,10 @@
            '文本' as custom3,
            '文本' as custom4,
            '文本' as custom5,
            od.quantity
            od.quantity,
         CONCAT(opt.stock_id,"/",opt.polys_id) as stockPolysId
        from optimize_detail as opt
            left join optimize_layout as opl on opl.project_no=opt.project_no and opl.stock_id=opt.stock_id
                 left join flow_card as fc on opt.project_no=fc.project_no and opt.process_id=fc.process_id and opt.layer=fc.technology_number and opt.order_sort=fc.order_number
                 left join sd.order as o on o.order_id=fc.order_id
                 left join sd.order_detail as od on fc.order_id = od.order_id and od.order_number = fc.order_number
@@ -2852,6 +3106,9 @@
                 left join sd.product_detail as pd on pd.prod_id = p.id and pd.sort_num = od.order_number and
                                                      pd.glass_sort = fc.technology_number
        where opt.project_no=#{projectNo} and opt.stock_id=#{stockId}
        <if test="polysId != null">
           and opt.polys_id=#{polysId}
        </if>
        order by opt.stock_id,opt.polys_id
    </select>
@@ -3309,7 +3566,8 @@
        pd.separation,
        #{compound} as technology_number,
        IFNULL(JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S02')),'') as mapNumber,
        od.building_number
        od.building_number,
        od.weight
        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
@@ -3322,7 +3580,8 @@
        fcs.technology_number = fc.technology_number
        and fcs.process = #{process}
        where fc.process_id = #{processId}
        and position(fc.technology_number in #{compound})
        and
        FIND_IN_SET(fc.technology_number , #{compound})
        group by fc.process_id, fc.order_number
        <choose>
            <when test="landingSequence != 1 and flashback != 1">
@@ -3378,7 +3637,7 @@
        fcs.technology_number = fc.technology_number
        and fcs.process = #{process}
        where fc.process_id = #{processId}
        and position(fc.technology_number in #{compound})
        and FIND_IN_SET(fc.technology_number , #{compound})
        group by fc.process_id, fc.order_number
        <choose>
            <when test="landingSequence != 1 and flashback != 1">
@@ -3564,4 +3823,113 @@
        SELECT max(reporting_work_num) FROM  sd.`order_process_detail`
        where process_id=#{processId} and order_number=#{orderNumber} and process=#{interceptProcess}
    </select>
    <select id="getProcessOk">
        SELECT
            GROUP_CONCAT(process ORDER BY id SEPARATOR '->') AS processes
        FROM sd.order_process_detail
        WHERE process_id = #{processId}
          AND order_number = #{orderNumber}
          AND technology_number = #{technologyNumber}
          AND reporting_work_num_count > 0;
    </select>
    <select id="getProcessDetail">
        SELECT *
        FROM sd.order_process_detail
        WHERE process_id = #{processId}
          AND order_number = #{orderNumber}
          AND technology_number = #{technologyNumber}
          AND reporting_work_num_count > 0
          AND process = #{process}
    </select>
    <update id="updateOrderProcessDetail">
        UPDATE sd.order_process_detail
        set reporting_work_num_count = #{reportingWorkNumCount},
            reporting_work_num = #{reportingWorkNum},
            broken_num = #{brokenNum}
        where process_id = #{processId} and order_number = #{orderNumber} and
              technology_number = #{technologyNumber} and process = #{process}
    </update>
    <select id="getPrimaryListRefundHB">
        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,
               od.product_name,
               o.processing_note,
               fc.process_id,
               pl.patch_num                                    as quantity,
               round(SUM(ogd.total_area), 2)                   as gross_area,
               sum(od.weight)                                  as weight,
               #{technologyNumber}                             as technologyNumber,
               concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber,
               dd.breakage_type,
               dd.breakage_reason,
               dd.responsible_process,
               dd.responsible_team,
               concat('对应我司单号', o.batch)                 AS otherRemarks,
               dd.responsible_personnel,
               #{mergeTechnologyNumber} as  mergeTechnologyNumber,
               pl.patch_id
        from flow_card as fc
                 left join sd.order_glass_detail as ogd
                           on fc.order_id = ogd.order_id and fc.order_number = ogd.order_number and
                              fc.technology_number = ogd.technology_number
                 left join sd.order_detail as od on od.order_id = fc.order_id and od.order_number = fc.order_number
                 left join sd.`order` as o on o.order_id = fc.order_id
                 left join sd.product as p on p.id = od.product_id
                 left join (select ogd.order_id,
                                   ogd.order_number,
                                   ogd.technology_number,
                                   ogd.glass_child,
                                   GROUP_CONCAT(glass_child SEPARATOR ' ') AS concatenated_glass_child
                            from sd.order_glass_detail as ogd
                            where ogd.order_id = #{orderId}
                              and ogd.order_number = #{orderNumber}
                              and position(ogd.technology_number in #{technologyNumber})
                            GROUP BY order_id, order_number) as ogdc
                           on ogdc.order_id = ogd.order_id and ogdc.order_number = ogd.order_number and
                              ogdc.technology_number = ogd.technology_number
                 left join patch_log as pl on pl.process_id = fc.process_id and pl.order_sort = fc.order_number and
                                              pl.technology_number = fc.technology_number
                 left join pp.reporting_work as rw on rw.order_id = fc.order_id and rw.process_id = fc.process_id
                 left join pp.damage_details as dd
                           on rw.reporting_work_id = dd.reporting_work_id and dd.order_number = fc.order_number and
                              dd.technology_number = fc.technology_number
        where fc.process_id = #{processId}
          and fc.order_number = #{orderNumber}
          and fc.technology_number = #{technologyNumber}
          and pl.reporting_work_id = #{reportingWorkId}
          and dd.breakage_reason = #{patchReason}
        group by fc.process_id
    </select>
    <select id="getTerminationQuantity">
        SELECT order_number,quantity,termination_quantity FROM flow_card where process_id = #{processId} and order_number = #{orderNumber} GROUP BY order_number
    </select>
    <update id="updateTerminationStatus">
        update pp.flow_card set termination_status=1 where process_id = #{processId} and order_number = #{orderNumber}
    </update>
    <update id="updateTerminationNoMp">
        update pp.flow_card set termination_status=0 , termination_quantity=0 where process_id = #{processId} and order_number = #{orderNumber}
    </update>
    <select id="getNewProcessMp">
        select opd.process,bd.sort  from sd.order_process_detail as opd
            left join sd.basic_data as bd on bd.basic_name = opd.process and bd.basic_category='process'
        where opd.process_id=#{processId} and opd.order_number=#{orderNumber}
          and opd.technology_number = #{technologyNumber} and reporting_work_num_count>0 ORDER BY opd.id DESC LIMIT 1
    </select>
    <select id="getProcessInfo">
        select basic_name as process,sort FROM sd.basic_data as bd
        where bd.basic_category='process' and bd.basic_name = #{processName}
    </select>
</mapper>