ZengTao
2025-11-11 aa5d2f68e1d97f7a1b20fa15e1bde9195544bb3e
hangzhoumesParent/moduleService/hollowGlassModule/src/main/resources/mapper/HollowGlassRelationInfoMapper.xml
@@ -80,13 +80,11 @@
                     )
             ),
             damage_latest AS (
                 SELECT
                     dr.glass_id,
                 SELECT dr.glass_id,
                     dr.type,
                     dr.status
                 FROM (
                          SELECT
                              t1.glass_id,
                          SELECT t1.glass_id,
                              t1.type,
                              t1.status,
                              ROW_NUMBER() OVER(PARTITION BY t1.glass_id ORDER BY t1.id DESC) as rn
@@ -96,8 +94,7 @@
                 WHERE dr.rn = 1
             ),
             result_temp AS (
                 SELECT
                     t.flow_card_id,
                 SELECT t.flow_card_id,
                     t.layer,
                     t.glass_type,
                     t.thickness,
@@ -105,11 +102,11 @@
                     t.width,
                     t.height,
                     COUNT(DISTINCT t.glass_id) as lack_count,
                     COUNT(DISTINCT CASE WHEN t1.type IN (8,9) AND t1.status = 1 THEN t.glass_id END) as damage_count
                        COUNT(DISTINCT
                              CASE WHEN t1.type IN (8, 9) AND t1.status = 1 THEN t.glass_id END)          as damage_count
                 FROM detail_temp t
                          LEFT JOIN damage_latest t1 ON t.glass_id = t1.glass_id
                 GROUP BY
                     t.flow_card_id,
                 GROUP BY t.flow_card_id,
                     t.layer,
                     t.glass_type,
                     t.thickness,
@@ -164,6 +161,37 @@
        select *
        from damage_latest
    </select>
    <select id="queryLackByFlowCardByERP" resultType="com.mes.hollow.entity.dto.LackDetailsDTO">
        WITH RECURSIVE nums(n) AS (
        SELECT 1
        UNION ALL
        SELECT n + 1 FROM nums WHERE n &lt; (SELECT MAX(quantity) FROM (
        <foreach collection="flowCardIdList" item="item" separator="UNION ALL">
            SELECT #{item.lackQuantity} AS quantity
        </foreach>
        ) t)
        )
        <foreach collection="flowCardIdList" item="item" separator="UNION ALL">
            SELECT t1.*
            FROM (
            SELECT
            g.flow_card_id AS flowCardId,
            g.layer AS layer,
            g.glass_type AS glassType,
            g.filmsid AS filmsId,
            g.width AS width,
            g.height AS height,
            g.thickness AS thickness
            FROM glass_info g
            WHERE g.flow_card_id = #{item.processId}
            AND g.layer = #{item.technologyNumber}
            AND g.glass_type = #{item.orderNumber}
            LIMIT 1
            ) t1
            CROSS JOIN nums
            WHERE nums.n &lt;= #{item.lackQuantity}
        </foreach>
    </select>
    <update id="clearDirtyFlowCardData">