chenlu
2025-08-11 8bcd0cc77b0c7aa2c00ffd926ee87f1f09a3a3b5
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
@@ -1679,7 +1682,7 @@
    <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,
@@ -1771,7 +1774,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,
@@ -1981,7 +1984,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,
@@ -3483,4 +3486,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>