From 4d3286b758594acab704d92159b4e4df3deaf7bb Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期五, 17 一月 2025 11:32:14 +0800
Subject: [PATCH] 增加暂停的工程号到选择工程的数据列里,更变engineering表的实现层到公共里

---
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml |  206 +++++++++++++++++++++++++++++++++++----------------
 1 files changed, 141 insertions(+), 65 deletions(-)

diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml
index c8d05a5..38803e6 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml
+++ b/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"/>
@@ -14,6 +16,7 @@
     </resultMap>
     <resultMap id="virtualSlotSequenceDTO" type="com.mes.hollow.entity.dto.FlowCardVirtualSlotDTO">
         <result column="flow_card_id" property="flowCardId"/>
+        <result column="layer" property="layer"/>
         <result column="virtual_slot" property="virtualSlot"/>
     </resultMap>
     <resultMap id="baseSlotSequenceDTO" type="com.mes.hollow.entity.dto.BigStorageSequenceDTO">
@@ -36,54 +39,38 @@
             and state !=101
         </where>
     </update>
+    <update id="updateDeviceIdBySlot">
+        update big_storage_cage_details t inner join big_storage_cage t1 on t.slot = t1.slot
+        set t.device_id = t1.device_id
+        where t.slot in (
+        <foreach collection="list" item="item" separator=",">
+            #{item}
+        </foreach>
+        )
+    </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
@@ -93,33 +80,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,43 +120,131 @@
         </if>
     </select>
 
-
     <select id="queryIsAllNeedDispatchVirtualSlot" resultMap="virtualSlotSequenceDTO">
         with relation_temp as (
-            select flow_card_id, virtual_slot, count(1) as slot_count
+            select flow_card_id, layer, virtual_slot, count(1) as slot_count
             from hollow_glass_relation_info
-            group by flow_card_id, virtual_slot
+            group by flow_card_id, layer, virtual_slot
         ),
              details_temp as (
-                 select flow_card_id, virtual_slot, count(1) as slot_count
+                 select flow_card_id, layer, virtual_slot, count(1) as slot_count
                  from hollow_big_storage_cage_details
                  where state = 100
-                 group by flow_card_id, virtual_slot
+                 group by flow_card_id, layer, virtual_slot
              ),
              result_one as (
                  select t.*, t1.slot_count as tslot_count
                  from relation_temp t
                           INNER JOIN details_temp t1 on t.flow_card_id = t1.flow_card_id and
+                                                        t.layer = t1.layer and
                                                         t.virtual_slot = t1.virtual_slot
                  where t.slot_count = t1.slot_count
              )
-        select flow_card_id, virtual_slot
+        select flow_card_id, layer, virtual_slot
         from result_one
-        order by flow_card_id, virtual_slot
+        order by flow_card_id, layer, virtual_slot
     </select>
 
     <select id="queryNeedDispatchSlot" resultMap="baseSlotSequenceDTO">
-        with glass_id_temp as (
-            select glass_id
-            from big_storage_glass_relation_info
-            where (flow_card_id, virtual_slot) =
-                  (#{flowCardId}, #{virtualSlot})
-        )
         select slot, max(sequence) as max_sequence, min(sequence) as min_sequence
-        from big_storage_cage_details
-        where glass_id in (select * from glass_id_temp)
-          and state = 100
+        from hollow_big_storage_cage_details
+        where (flow_card_id, layer, virtual_slot) = (#{flowCardId}, #{layer}, #{virtualSlot})
         group by slot
         order by max_sequence
     </select>
+    <select id="queryOutGlassList" resultType="com.mes.hollow.entity.HollowBigStorageCageDetails">
+        with flow_card_id_layer as (
+        select flow_card_id, max(total_layer) as total_layer
+        FROM hollow_big_storage_cage_details
+        group by flow_card_id
+        ),
+        details_sequence_count_temp as (
+        SELECT flow_card_id, hollow_sequence, count(1) as max_count
+        FROM hollow_big_storage_cage_details
+        where state = 100
+        group by flow_card_id, hollow_sequence
+        ),
+        glass_out_temp as (
+        select t1.*, case when t.total_layer = t1.max_count then 1 else 0 end is_pair
+        from flow_card_id_layer t
+        inner join details_sequence_count_temp t1 on t.flow_card_id = t1.flow_card_id
+        ),
+        result_detail as (
+        select t.id,
+        t.device_id,
+        t.virtual_slot,
+        t.slot,
+        t.glass_id,
+        t.sequence,
+        t.flow_card_id,
+        t.glass_type,
+        t.width,
+        t.height,
+        t.thickness,
+        t.tempering_layout_id,
+        t.tempering_feed_sequence,
+        t.state,
+        t.gap,
+        t.engineer_id,
+        t.total_layer,
+        t.layer,
+        t.create_time,
+        t.update_time,
+        t.hollow_sequence,
+        t.films_id,
+        t1.is_pair
+        from hollow_big_storage_cage_details t
+        INNER JOIN glass_out_temp t1
+        on t.flow_card_id = t1.flow_card_id and t.hollow_sequence = t1.hollow_sequence
+        where t.state = 100
+        and t.flow_card_id = #{flowCardId}
+        )
+        select *
+        from result_detail
+        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>
+    <select id="queryPairGlassList" resultType="com.mes.hollow.entity.HollowBigStorageCageDetails">
+        with hollow_sequence_temp as (
+        SELECT hollow_sequence, count(distinct layer) as count
+        FROM hollow_big_storage_cage_details
+        WHERE flow_card_id = #{flowCardId}
+        <if test="isOut == 0">
+            AND STATE = 100
+        </if>
+
+        GROUP BY hollow_sequence
+        having count = #{totalLayer}
+        limit #{totalPairQuantity}
+        ),
+        hollow_details as (select *
+        from hollow_big_storage_cage_details
+        WHERE flow_card_id = #{flowCardId}
+        <if test="isOut == 0">
+            AND STATE = 100
+        </if>
+        )
+        select *
+        from hollow_details t
+        inner join hollow_sequence_temp t1 on t.hollow_sequence = t1.hollow_sequence
+        ORDER BY t.hollow_sequence
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0