hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml
@@ -6,6 +6,8 @@
        <result column="engineer_id" property="engineerId"/>
        <result column="flow_card_id" property="flowCardId"/>
        <result column="layer" property="layer"/>
        <result column="films_id" property="filmsId"/>
        <result column="thickness" property="thickness"/>
        <result column="sum_count" property="sumCount"/>
        <result column="pair_count" property="pairCount"/>
        <result column="real_count" property="realCount"/>
@@ -39,52 +41,27 @@
    </update>
    <select id="hollowIsAll" resultMap="baseMap">
        WITH sum_flow_layer_count AS (
        SELECT
        flow_card_id,
        layer,
        min( films_id ) AS films_id,
        count(*) AS sum_count
        FROM
        hollow_glass_relation_info
        GROUP BY
        flow_card_id,
        layer
        ),
        real_flow_layer_count AS (
        SELECT
        flow_card_id,
        layer,
        count(*) AS real_count
        FROM
        hollow_glass_relation_info
        WHERE
        tempering_layout_id IS NOT NULL
        AND tempering_feed_sequence IS NOT NULL
        GROUP BY
        flow_card_id,
        layer
        ),
        damage_flow_layer_count AS ( SELECT process_id AS flow_card_id, technology_number AS layer, count(*)
        damage_count FROM damage GROUP BY process_id, technology_number ),
        WITH sum_flow_layer_count AS ( SELECT flow_card_id, layer, min( films_id ) AS films_id, min(thickness) as
        thickness,count(*) AS sum_count FROM hollow_glass_relation_info GROUP BY flow_card_id, layer ),
        real_flow_layer_count AS ( SELECT flow_card_id, layer, count(*) AS real_count FROM
        hollow_big_storage_cage_details t WHERE state = 100 GROUP BY flow_card_id, layer ),
        damage_flow_layer_count AS ( SELECT process_id AS flow_card_id, technology_number AS layer, count(*) as
        damage_count FROM damage where type in(8,9) GROUP BY process_id, technology_number ),
        lack_flow_layer_count AS (
        SELECT
        t.flow_card_id,
        t.layer,
        ( sum_count - real_count - damage_count ) AS lack_count
        ifnull((sum_count - real_count - ifnull(damage_count,0)),0) AS lack_count
        FROM
        sum_flow_layer_count t
        INNER JOIN real_flow_layer_count t1 ON t.flow_card_id = t1.flow_card_id
        left JOIN real_flow_layer_count t1 ON t.flow_card_id = t1.flow_card_id
        AND t.layer = t1.layer
        INNER JOIN damage_flow_layer_count t2 ON t1.flow_card_id = t2.flow_card_id
        left JOIN damage_flow_layer_count t2 ON t1.flow_card_id = t2.flow_card_id
        AND t1.layer = t2.layer
        ),
        layer_one AS ( SELECT * FROM hollow_glass_relation_info WHERE layer = 1 AND tempering_layout_id IS NOT NULL AND
        tempering_feed_sequence IS NOT NULL ),
        layer_two AS ( SELECT * FROM hollow_glass_relation_info WHERE layer = 2 AND tempering_layout_id IS NOT NULL AND
        tempering_feed_sequence IS NOT NULL ),
        layer_three AS ( SELECT * FROM hollow_glass_relation_info WHERE layer = 3 AND tempering_layout_id IS NOT NULL
        AND tempering_feed_sequence IS NOT NULL )
        layer_one AS ( SELECT * FROM hollow_big_storage_cage_details WHERE layer = 1 AND state = 100 ),
        layer_two AS ( SELECT * FROM hollow_big_storage_cage_details WHERE layer = 2 AND state = 100),
        layer_three AS ( SELECT * FROM hollow_big_storage_cage_details WHERE layer = 3 AND state = 100 )
        ,
        pair_flow_layer_count AS (
        SELECT
@@ -94,33 +71,34 @@
        layer_one t
        INNER JOIN layer_two t1 ON t.flow_card_id = t1.flow_card_id
        AND t.virtual_slot = t1.virtual_slot
        AND t.slot_sequence = t1.slot_sequence
        AND t.sequence = t1.sequence
        <if test="totalLayer == 3">
            inner join layer_three t2
            on t.flow_card_id = t2.flow_card_id and
            t.virtual_slot = t2.virtual_slot and t.slot_sequence = t2.slot_sequence
            t.virtual_slot = t2.virtual_slot and t.sequence = t2.sequence
        </if>
        GROUP BY
        t.flow_card_id
        )
        ,result_flow_layer_count AS (
        ),
        result_flow_layer_count AS (
        SELECT
        t.flow_card_id,
        t.layer,
        t.films_id,
        t.thickness,
        sum_count,
        t3.pair_count,
        IFNULL(real_count,0) as real_count,
        IFNULL(damage_count,0) as damage_count,
        IFNULL(lack_count,0) as lack_count
        IFNULL( t3.pair_count, 0 ) AS pair_count,
        IFNULL( real_count, 0 ) AS real_count,
        IFNULL( damage_count, 0 ) AS damage_count,
        IFNULL( lack_count, 0 ) AS lack_count
        FROM
        sum_flow_layer_count t
        left JOIN real_flow_layer_count t1 ON t.flow_card_id = t1.flow_card_id
        LEFT JOIN real_flow_layer_count t1 ON t.flow_card_id = t1.flow_card_id
        AND t.layer = t1.layer
        left JOIN lack_flow_layer_count t2 ON t.flow_card_id = t2.flow_card_id
        LEFT JOIN lack_flow_layer_count t2 ON t.flow_card_id = t2.flow_card_id
        AND t.layer = t2.layer
        left JOIN pair_flow_layer_count t3 ON t.flow_card_id = t3.flow_card_id
        left JOIN damage_flow_layer_count t4 ON t.flow_card_id = t4.flow_card_id
        LEFT JOIN pair_flow_layer_count t3 ON t.flow_card_id = t3.flow_card_id
        LEFT JOIN damage_flow_layer_count t4 ON t.flow_card_id = t4.flow_card_id
        AND t.layer = t4.layer
        ) SELECT
        *
@@ -132,7 +110,6 @@
            and sum_count = pair_count
        </if>
    </select>
    <select id="queryIsAllNeedDispatchVirtualSlot" resultMap="virtualSlotSequenceDTO">
        with relation_temp as (
@@ -175,7 +152,7 @@
        details_sequence_count_temp as (
        SELECT flow_card_id, hollow_sequence, count(1) as max_count
        FROM hollow_big_storage_cage_details
        and state = 100
        where state = 100
        group by flow_card_id, hollow_sequence
        ),
        glass_out_temp as (
@@ -215,9 +192,25 @@
        )
        select *
        from result_detail
        order by flow_card_id, hollow_sequence
        order by flow_card_id, hollow_sequence,layer
        <if test="cell != 931">
            desc
        </if>
    </select>
    <select id="queryHollowbigStorageCageDetail" resultType="com.mes.base.entity.vo.BigStorageVO">
        SELECT SLOT, COUNT(1) AS COUNT
        FROM HOLLOW_BIG_STORAGE_CAGE_DETAILS
        where state in (100, 102, 103, 104)
        group by SLOT
        ORDER BY SLOT
    </select>
    <select id="querySlotMaxSequence" resultType="com.mes.hollow.entity.HollowBigStorageCageDetails">
        select max(sequence) as sequence, device_id, slot
        from hollow_big_storage_cage_details
        where (flow_card_id, total_layer, layer, virtual_slot) =
              (#{flowCardId}, #{totalLayer}, #{layer}, #{virtualSlot})
          and state in (0, 100, 102, 103, 104)
        group by device_id, slot
        order by sequence
    </select>
</mapper>