From 77f5af7a1cd1a57804a6391f5e2c73e8ae10a531 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期一, 03 三月 2025 23:32:37 +0800
Subject: [PATCH] 1、优化出片队列,避免930lisec出片玻璃顺序倒叙情况下,出片玻璃尺寸较大一车只能存放小于一对的数量造成玻璃顺序错乱问题

---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml |   41 +++++++++++++++++++++++++++++++----------
 1 files changed, 31 insertions(+), 10 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..d4f36fc 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -66,14 +66,14 @@
                         T.TEMPERING_LAYOUT_ID,
                         COUNT(T.TEMPERING_FEED_SEQUENCE) AS COUNT
                  FROM GLASS_INFO T
-                          LEFT JOIN DAMAGE T1
-                                    ON T.ENGINEER_ID = T1.ENGINEER_ID
-                                        AND T.GLASS_ID = T1.GLASS_ID
-                                        AND (T1.TYPE = 8
-                                            OR T1.TYPE = 9)
+                     LEFT JOIN DAMAGE T1
+                 ON T.ENGINEER_ID = T1.ENGINEER_ID
+                     AND T.GLASS_ID = T1.GLASS_ID
+                     AND (T1.TYPE = 8
+                     OR T1.TYPE = 9)
                  WHERE T1.GLASS_ID IS NULL
                  GROUP BY T.ENGINEER_ID,
-                          T.TEMPERING_LAYOUT_ID
+                     T.TEMPERING_LAYOUT_ID
              ) T2
                  INNER JOIN (SELECT ENGINEER_ID, TEMPERING_LAYOUT_ID, COUNT(TEMPERING_FEED_SEQUENCE) AS COUNT
                              FROM BIG_STORAGE_CAGE_DETAILS
@@ -131,6 +131,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 (
@@ -175,7 +184,7 @@
         )
         select *
         from result
-        order by engineer_id
+        order by engineer_id,tempering_layout_id
     </select>
 
     <select id="queryIsAllNeedDispatchVirtualSlot" resultMap="virtualSlotSequenceDTO">
@@ -227,13 +236,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 +266,11 @@
         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