From af7f09e7965887b034c9add213bf68c816f22338 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期五, 19 九月 2025 18:02:36 +0800
Subject: [PATCH] 中空理片笼缺片详情改造,中空一线二线三线页面改造

---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 51 insertions(+), 6 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
index 15dcb15..996634b 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -59,6 +59,29 @@
         <result column="is_damage" property="isDamage"/>
     </resultMap>
 
+    <select id="temperingIsAllByTemperingLayoutId" resultMap="temperingLayoutDTO">
+        SELECT T.*
+        FROM (
+                 SELECT ENGINEER_ID, TEMPERING_LAYOUT_ID, COUNT(distinct TEMPERING_FEED_SEQUENCE) AS COUNT
+                 FROM BIG_STORAGE_CAGE_DETAILS
+                 WHERE STATE = 100
+                   and ENGINEER_ID = #{engineerId}
+                   AND TEMPERING_LAYOUT_ID = #{temperingLayoutId}
+                 GROUP BY ENGINEER_ID, TEMPERING_LAYOUT_ID
+             ) T
+                 INNER JOIN (SELECT ENGINEER_ID,
+                                    TEMPERING_LAYOUT_ID,
+                                    COUNT(distinct TEMPERING_FEED_SEQUENCE) AS COUNT
+                             FROM GLASS_INFO
+                             WHERE ENGINEER_ID = #{engineerId}
+                               AND TEMPERING_LAYOUT_ID = #{temperingLayoutId}
+                             GROUP BY ENGINEER_ID,
+                                      TEMPERING_LAYOUT_ID) T1
+                            ON T.ENGINEER_ID = T1.ENGINEER_ID
+                                AND T.TEMPERING_LAYOUT_ID = T1.TEMPERING_LAYOUT_ID
+                                AND T.COUNT = T1.COUNT
+    </select>
+
     <select id="temperingIsAll" resultMap="temperingLayoutDTO">
         SELECT T2.*
         FROM (
@@ -131,6 +154,15 @@
             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="selectTemperingGlassCount" resultMap="temperingGlassCount">
         with glass_info_temp as (
@@ -165,8 +197,8 @@
         total_count,
         real_count,
         ifnull(damage_count, 0) as damage_count,
-        total_count - real_count - ifnull(damage_count, 0) as lack_count
-
+        case when total_count - real_count - ifnull(damage_count, 0) &lt; 0 then 0 else
+        total_count - real_count - ifnull(damage_count, 0) end as lack_count
         from big_details_temp t
         inner join glass_info_temp t1 on t.engineer_id = t1.engineer_id and
         t.tempering_layout_id = t1.tempering_layout_id
@@ -175,7 +207,7 @@
         )
         select *
         from result
-        order by engineer_id
+        order by engineer_id,tempering_layout_id
     </select>
 
     <select id="queryIsAllNeedDispatchVirtualSlot" resultMap="virtualSlotSequenceDTO">
@@ -227,13 +259,18 @@
     <select id="queryLackGlassInfo" resultMap="glassInfoLackDTO">
         WITH glass_info_temp AS (SELECT *
                                  FROM glass_info
-                                 WHERE engineer_id = #{engineerId} AND tempering_layout_id = #{temperingLayoutId}),
+                                 WHERE engineer_id = #{engineerId}
+                                   AND tempering_layout_id = #{temperingLayoutId}),
              big_details_temp AS (SELECT *
                                   FROM big_storage_cage_details
-                                  WHERE state = 100 AND engineer_id = #{engineerId} AND tempering_layout_id =  #{temperingLayoutId}),
+                                  WHERE state = 100
+                                    AND engineer_id = #{engineerId}
+                                    AND tempering_layout_id = #{temperingLayoutId}),
              damage_temp AS (SELECT *
                              FROM damage
-                             WHERE type IN (8, 9) AND engineer_id = #{engineerId} AND tempering_layout_id =  #{temperingLayoutId}),
+                             WHERE type IN (8, 9)
+                               AND engineer_id = #{engineerId}
+                               AND tempering_layout_id = #{temperingLayoutId}),
              result_lack AS (SELECT t.*
                              FROM glass_info_temp t
                                       LEFT JOIN big_details_temp t1 ON t.glass_id = t1.glass_id
@@ -252,4 +289,12 @@
         SELECT *
         FROM result
     </select>
+    <select id="querybigStorageCageDetail" resultType="com.mes.base.entity.vo.BigStorageVO">
+        select bsc.device_id, bsc.slot, count(bscd.glass_id) as count
+        from big_storage_cage bsc
+                 left join big_storage_cage_details bscd
+                           on bsc.slot = bscd.slot and bscd.state in (100, 102, 103, 104)
+        group by bsc.device_id, bsc.slot
+        order by bsc.device_id, bsc.slot
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0