From 87bf646a21a1664575110a85a132f486d8954293 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期一, 17 六月 2024 14:10:33 +0800
Subject: [PATCH] 大理片笼进出片任务逻辑初次提交:已完成进出片、调度功能,功能待调整优化

---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml |   71 ++++++++++++++++++++++++++++++++---
 1 files changed, 65 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 9d6527c..c016951 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -3,15 +3,74 @@
 <mapper namespace="com.mes.bigstorage.mapper.BigStorageCageDetailsMapper">
 
     <resultMap id="temperingLayoutDTO" type="com.mes.bigstorage.entity.dto.TemperingLayoutDTO">
+        <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
+
+    <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>
 
+    <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