廖井涛
2025-09-12 fc28d01cfa022d0f91ec719490342d726db2e105
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -279,6 +279,8 @@
               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,
@@ -484,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
@@ -762,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,
@@ -819,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,
@@ -1029,7 +1032,7 @@
               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
@@ -1252,6 +1255,8 @@
               fc.order_number,
               ogd.technology_number,
               ogd.glass_address,
               ogd.child_width,
               ogd.child_height,
               pl.patch_num,
               pl.patch_area,
               pl.responsible_team,
@@ -1265,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
@@ -1496,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,
@@ -1552,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,
@@ -1608,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,
@@ -1679,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,
@@ -1771,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,
@@ -1859,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,
@@ -1981,7 +1987,7 @@
               od.processing_note                                    as processingNote,
              ogd.child_width                                as width,
               ogd.child_height                              as height,
               fc.quantity,
                #{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,
@@ -2440,7 +2446,8 @@
               #{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
        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
@@ -2486,7 +2493,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
@@ -2525,7 +2533,8 @@
                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
                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
@@ -3082,7 +3091,9 @@
                              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'
        IF(a.height &lt; a.width, a.height, a.width) as 'short',
        IF(a.height >= a.width, a.height, a.width) as 'longSide',
        IF(a.height &lt; a.width, a.height, a.width) as 'shortSide'
        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
@@ -3291,7 +3302,7 @@
        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,
        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,
@@ -3483,4 +3494,160 @@
        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>
    <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>
</mapper>