From 8223485b2f6c909de81924e107b1e268aa04bd41 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期日, 30 六月 2024 22:59:26 +0800
Subject: [PATCH] 1、大理片笼进片逻辑调整:a、将扫描id后进生成任务信息,不执行卧转立进片命令;                      b、进片车空闲扫描,如果存在卧转立有满片的直接启动, 2、下片任务新增任务向plc发送任务信息 3、对外提供手工生成人工下片任务

---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml |   92 ++++++++++++++++++++++++++++++---------------
 1 files changed, 61 insertions(+), 31 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
index 1f64557..f104fc3 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -6,39 +6,69 @@
         <result column="engineer_id" property="engineerId"/>
         <result column="tempering_layout_id" property="temperingLayoutId"/>
         <result column="count" property="count"/>
+        <result column="slot_count" property="slotCount"/>
     </resultMap>
-    <!--    <select id="listAllTemperingCount" resultMap="temperingLayoutDTO">-->
-    <!--        select tempering_layout_id,-->
-    <!--               count(tempering_layout_id) as count-->
-    <!--        from big_storage_cage_details-->
-    <!--        where state = 100-->
-    <!--        group by tempering_layout_id-->
-    <!--    </select>-->
+
+    <resultMap id="slotSequenceDTO" type="com.mes.bigstorage.entity.dto.SlotSequenceDTO">
+        <result column="engineer_id" property="engineerId"/>
+        <result column="tempering_layout_id" property="temperingLayoutId"/>
+        <result column="slot" property="slot"/>
+        <result column="max_sequence" property="maxSequence"/>
+        <result column="min_sequence" property="minSequence"/>
+        <result column="remain_width" property="remainWidth"/>
+    </resultMap>
+
     <select id="temperingIsAll" resultMap="temperingLayoutDTO">
-        SELECT T.ENGINEER_ID,
-               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
-            LEFT JOIN BIG_STORAGE_CAGE_DETAILS T2 ON T.ENGINEER_ID = T2.ENGINEER_ID
-            AND T.GLASS_ID = T2.GLASS_ID
-        WHERE
-            T1.GLASS_ID IS NULL
-          AND T2.GLASS_ID IS NULL
-          AND ( T.ENGINEER_ID
-            , T.TEMPERING_LAYOUT_ID ) IN ( SELECT DISTINCT ENGINEER_ID
-            , TEMPERING_LAYOUT_ID FROM BIG_STORAGE_CAGE_DETAILS WHERE STATE = 100 )
-        GROUP BY
-            T.ENGINEER_ID,
-            T.TEMPERING_LAYOUT_ID
-        HAVING
-            COUNT = 0
-        ORDER BY
-            T.TEMPERING_LAYOUT_ID
-            LIMIT 1
+        SELECT T2.*
+        FROM (
+                 SELECT T.ENGINEER_ID,
+                        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
+                 WHERE
+                     T1.GLASS_ID IS NULL
+                 GROUP BY
+                     T.ENGINEER_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
+                             WHERE STATE = 100
+                             GROUP BY ENGINEER_ID, TEMPERING_LAYOUT_ID) T3 ON T2.ENGINEER_ID = T3.ENGINEER_ID
+            AND T2.TEMPERING_LAYOUT_ID = T3.TEMPERING_LAYOUT_ID
+            AND T2.COUNT = T3.COUNT LIMIT 1
     </select>
 
+    <select id="queryTemperingOccupySlot" resultMap="temperingLayoutDTO">
+        SELECT TEMPERING_LAYOUT_ID,
+               COUNT(DISTINCT SLOT) as SLOT_COUNT
+        FROM BIG_STORAGE_CAGE_DETAILS
+        WHERE STATE = 100
+        GROUP BY ENGINEER_ID,
+                 TEMPERING_LAYOUT_ID
+        HAVING SLOT_COUNT &gt;= #{count} LIMIT 1
+    </select>
+    <select id="queryGlassMaxAndMin" resultMap="slotSequenceDTO">
+        SELECT T.*,
+               T1.REMAIN_WIDTH
+        FROM (
+                 SELECT ENGINEER_ID,
+                        TEMPERING_LAYOUT_ID,
+                        SLOT,
+                        MAX(TEMPERING_FEED_SEQUENCE) AS MAX_SEQUENCE,
+                        MIN(TEMPERING_FEED_SEQUENCE) AS MIN_SEQUENCE
+                 FROM BIG_STORAGE_CAGE_DETAILS
+                 WHERE ENGINEER_ID = #{engineerId}
+                   AND TEMPERING_LAYOUT_ID = #{temperingLayoutId}
+                 GROUP BY ENGINEER_ID,
+                          TEMPERING_LAYOUT_ID,
+                          SLOT
+             ) T
+                 INNER JOIN BIG_STORAGE_CAGE T1 ON T.SLOT = T1.SLOT
+        ORDER BY T.MAX_SEQUENCE DESC
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0