廖井涛
2025-08-11 b499a7e1dbcc4b9dbcdcaa46bbf5c24271bf6698
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
@@ -619,7 +622,7 @@
                                   left join sd.basic_data as bd on bd.nickname='stepC'
                                   where ogds.order_id = #{orderId}
                                     and LOCATE(bd.basic_name, ogds.process) > 0
                                   GROUP BY order_id, order_number, ogds.group) as ogdss
                                   GROUP BY order_id, order_number, ogds.group,bd.basic_name) as ogdss
                                  on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
               where fc.order_id = #{orderId}
               GROUP BY fc.process_id, ogdss.technology_number
@@ -662,7 +665,7 @@
                                                                                  ogds.technology_number
                                            left join sd.basic_data as bd on bd.nickname='stepD'
                                   where ogds.order_id = #{orderId}
                                   GROUP BY order_id, order_number) as ogdss
                                   GROUP BY order_id, order_number,bd.basic_name) as ogdss
                                  on fc.order_id = ogdss.order_id and ogdss.order_number = fc.order_number
               where fc.order_id = #{orderId}
               GROUP BY fc.process_id
@@ -670,7 +673,7 @@
        where process is not null
          and process != ""
        GROUP BY order_id, process_id, technology_number, process
        order by order_id, process_id, length(technology_number)) as result
        order by order_id, process_id, length(technology_number),technology_number) as result
        LEFT JOIN (SELECT * from flow_card GROUP BY process_id,technology_number) as fcc
        on result.process_id = fcc.process_id and result.technology_number = fcc.technology_number
    </select>
@@ -678,6 +681,7 @@
    <select id="getPrimaryList">
        select o.customer_name,
               o.project,
               if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch,
               #{process}                                         process,
               od.edging_type,
               #{glassChild}                                   as glass_child,
@@ -718,6 +722,7 @@
    <select id="getPrimaryLists">
        select o.customer_name,
               o.project,
               if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch,
               #{process}                                         process,
               od.edging_type,
               #{glassChild}                                   as glass_child,
@@ -760,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,
@@ -817,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,
@@ -1027,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
@@ -1246,9 +1251,12 @@
               fc.process_id,
               o.customer_name,
               o.project,
               o.batch,
               fc.order_number,
               ogd.technology_number,
               ogd.glass_address,
               ogd.child_width,
               ogd.child_height,
               pl.patch_num,
               pl.patch_area,
               pl.responsible_team,
@@ -1262,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
@@ -1408,6 +1417,7 @@
    <select id="getPrimaryListMerge">
        select o.customer_name,
               o.project,
               if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch,
               ogd.process,
               od.edging_type,
               ogdc.concatenated_glass_child                   as glass_child,
@@ -1481,7 +1491,8 @@
                                           pl.order_sort = fc.order_number and
                                           pl.technology_number = fc.technology_number
        where  date(pl.create_time)>=#{selectTime1} and date(pl.create_time) &lt;= #{selectTime2}
        GROUP BY fc.process_id,fc.order_number, ogd.technology_number, pl.reporting_work_id
        GROUP BY fc.process_id,fc.order_number, ogd.technology_number, pl.reporting_work_id,pl.rework_type,
            pl.rework_reason
        order by pl.id desc, fc.process_id, ogd.technology_number
    </select>
@@ -1491,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,
@@ -1547,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,
@@ -1603,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,
@@ -1674,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,
@@ -1711,6 +1722,7 @@
    <select id="getPrimaryListRefund">
        select o.customer_name,
               o.project,
               if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch,
               ogd.process,
               od.edging_type,
               ogd.glass_child,
@@ -1765,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,
@@ -1796,6 +1808,7 @@
    <select id="getPrimaryListRework">
        select o.customer_name,
               o.project,
               if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch,
               ogd.process,
               od.edging_type,
               ogd.glass_child,
@@ -1852,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,
@@ -1974,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,
@@ -2419,6 +2432,7 @@
    <select id="getPrimaryListLimt">
        select o.customer_name,
               if(o.batch!="",CONCAT(o.project,'(',o.batch,')'),o.project) as projectBatch,
               o.project,
               #{process}                                         process,
               od.edging_type,
@@ -2478,7 +2492,8 @@
               JSON_UNQUOTE(JSON_EXTRACT(od.other_columns, '$.S01'))                  AS glassNumber,
               od.order_number,
               od.width,
               od.height
               od.height,
               od.building_number
        from flow_card as fc
                 left join sd.order_glass_detail as ogd
                           on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
@@ -2517,7 +2532,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
@@ -3283,7 +3299,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,
@@ -3475,4 +3491,75 @@
        group by fc.process_id,od.order_number, ogd.technology_number, ogd.child_width, ogd.child_height
        order by IF(fcs.sort != NULL or fcs.sort != '', fcs.sort, fc.order_number)
    </select>
    <select id="getLayoutStatus">
        select max(layout_status) from flow_card where process_id= #{processId}
    </select>
    <select id="selectSortingCardMp">
        select od.order_number,
               od.order_number       AS 'orderNumber',
                od.width,
               od.height,
               od.shape,
               od.quantity,
               od.compute_gross_area,
               p.total_thickness,
               ROUND(od.quantity-IFNULL(sum(fc.quantity)/fc.layers_number,0))           as baiscQuantity,
               od.compute_gross_area as 'computeGrossArea',
                p.total_thickness     AS 'totalThickness',
                ifnull(p.thickness,'') as thickness,
               od.weight,
               od.remarks,
               od.processing_note,
               ifnull(od.bend_radius,'') as bend_radius,
               ods.S01,
               ods.S02,
               ods.S03,
               ods.S04,
               ods.S05,
               od.building_number
        from sd.order_detail as od
                 left join sd.order_glass_detail as ogd
                           on od.order_id = ogd.order_id and od.order_number = ogd.order_number
                 left join sd.product as p on od.product_id = p.id
                 left join (SELECT order_id,
                                   order_number,
                                   JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S01')) AS S01,
                                   JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S02')) AS S02,
                                   JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S03')) AS S03,
                                   JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S04')) AS S04,
                                   JSON_UNQUOTE(JSON_EXTRACT(other_columns, '$.S05')) AS S05
                            FROM sd.order_detail
                            WHERE order_id = #{orderId}) as ods
                           on ods.order_id = od.order_id and ods.order_number = od.order_number
                 left join flow_card as fc on fc.order_id = od.order_id and fc.order_number = od.order_number
            and fc.technology_number=ogd.technology_number
        where od.order_id = #{orderId}
          and ogd.production_id = #{productionId}
          and ogd.splitting_status = 0
        GROUP BY od.order_number
        <if test="optionVal == 0 and flashback == 1">
            ORDER BY od.width ASC, od.height ASC
        </if>
        <if test="optionVal == 0 and flashback == 0">
            ORDER BY od.width DESC, od.height DESC
        </if>
        <if test="optionVal == 1 and flashback == 1">
            ORDER BY od.height ASC, od.width ASC
        </if>
        <if test="optionVal == 1 and flashback == 0">
            ORDER BY od.height DESC, od.width DESC
        </if>
    </select>
    <update id="updateTerminationMp">
        update  pp.flow_card fc set fc.termination_quantity=#{value}
        where fc.process_id = #{processId} and fc.order_number=#{orderNumber}
    </update>
    <select id="selectCompletedMp">
        SELECT max(reporting_work_num) FROM  sd.`order_process_detail`
        where process_id=#{processId} and order_number=#{orderNumber} and process=#{interceptProcess}
    </select>
</mapper>