From cf33278c73767f72e35a4898c23765f52a3bfd1d Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期二, 03 十二月 2024 09:06:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/ywMes'
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml | 110 ++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 89 insertions(+), 21 deletions(-)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
index 5ef3b71..003bd62 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -19,24 +19,32 @@
<result column="remain_width" property="remainWidth"/>
</resultMap>
+ <resultMap id="virtualSlotSequenceDTO" type="com.mes.bigstorage.entity.dto.BigStorageRelationDTO">
+ <result column="engineer_id" property="engineerId"/>
+ <result column="tempering_layout_id" property="temperingLayoutId"/>
+ <result column="virtual_slot" property="virtualSlot"/>
+ </resultMap>
+ <resultMap id="baseSlotSequenceDTO" type="com.mes.bigstorage.entity.dto.BigStorageSequenceDTO">
+ <result column="slot" property="slot"/>
+ <result column="max_sequence" property="maxSequence"/>
+ <result column="min_sequence" property="minSequence"/>
+ </resultMap>
+
<select id="temperingIsAll" resultMap="temperingLayoutDTO">
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
- AND (T1.TYPE = 8
- OR T1.TYPE = 9 )
- WHERE
- T1.GLASS_ID IS NULL
- GROUP BY
- T.ENGINEER_ID,
- T.TEMPERING_LAYOUT_ID
+ 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)
+ 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
@@ -44,7 +52,7 @@
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
- INNER JOIN ENGINEERING T4 ON T2.ENGINEER_ID=T4.ENGINEER_ID
+ INNER JOIN ENGINEERING T4 ON T2.ENGINEER_ID = T4.ENGINEER_ID
ORDER BY T4.ID, T2.TEMPERING_LAYOUT_ID
</select>
@@ -91,17 +99,77 @@
(#{item.glassId}, #{item.targetSlot})
</foreach>
)
+ and state !=101
</where>
</update>
<select id="selectTemperingGlassCount" resultType="java.util.Map">
- select a.engineer_id,a.tempering_layout_id,count2,count1,count2-count1 as count3,count(c.glass_id) as count4 from
- (select engineer_id,tempering_layout_id,count(*) as count1 from big_storage_cage_details where state=100 group by engineer_id,tempering_layout_id) as a
- left join
- (select engineer_id,tempering_layout_id,count(*) as count2 from glass_info group by engineer_id,tempering_layout_id) as b
- on a.engineer_id=b.engineer_id and a.tempering_layout_id=b.tempering_layout_id
- left join damage as c on a.engineer_id=c.engineer_id and a.tempering_layout_id=c.tempering_layout_id and (type = 8 or type = 9)
- group by a.engineer_id,a.tempering_layout_id
- order by a.engineer_id,a.tempering_layout_id
+ select a.engineer_id,
+ a.tempering_layout_id,
+ count2,
+ count1,
+ count2 - count1 as count3,
+ count(c.glass_id) as count4
+ from (select engineer_id, tempering_layout_id, count(*) as count1
+ from big_storage_cage_details
+ where state = 100
+ group by engineer_id, tempering_layout_id) as a
+ left join
+ (select engineer_id, tempering_layout_id, count(*) as count2
+ from glass_info
+ group by engineer_id, tempering_layout_id) as b
+ on a.engineer_id = b.engineer_id and a.tempering_layout_id = b.tempering_layout_id
+ left join damage as c
+ on a.engineer_id = c.engineer_id and a.tempering_layout_id = c.tempering_layout_id and
+ (type = 8 or type = 9)
+ group by a.engineer_id, a.tempering_layout_id
+ order by a.engineer_id, a.tempering_layout_id
+ </select>
+
+ <select id="queryIsAllNeedDispatchVirtualSlot" resultMap="virtualSlotSequenceDTO">
+ with relation_temp as (
+ select engineer_id, tempering_layout_id, virtual_slot, count(1) as slot_count
+ from big_storage_glass_relation_info
+ group by engineer_id, tempering_layout_id, virtual_slot
+ ),
+ details_temp as (
+ select t.engineer_id, t.tempering_layout_id, t.virtual_slot, count(1) as slot_count
+ from big_storage_glass_relation_info t
+ left join big_storage_cage_details t1 on
+ t.engineer_id = t1.engineer_id and t.tempering_layout_id = t1.tempering_layout_id and
+ t.tempering_feed_sequence = t1.tempering_feed_sequence
+ where t1.state = 100
+ group by t.engineer_id, t.tempering_layout_id, t.virtual_slot
+ ),
+ result_one as (
+ select t.*, t1.slot_count as tslot_count
+ from relation_temp t
+ INNER JOIN details_temp t1 on t.engineer_id = t1.engineer_id and
+ t.tempering_layout_id = t1.tempering_layout_id and
+ t.virtual_slot = t1.virtual_slot
+ where t.slot_count = t1.slot_count
+ )
+ select engineer_id, tempering_layout_id, virtual_slot
+ from result_one
+ order by engineer_id, tempering_layout_id
+ </select>
+
+ <select id="queryNeedDispatchSlot" resultMap="baseSlotSequenceDTO">
+ with glass_id_temp as (
+ select engineer_id, tempering_layout_id, tempering_feed_sequence
+ from big_storage_glass_relation_info
+ where (engineer_id, tempering_layout_id, virtual_slot) =
+ (#{engineerId}, #{temperingLayoutId}, #{virtualSlot})
+ )
+ select t.slot, max(t1.tempering_feed_sequence) as max_sequence, min(t1.tempering_feed_sequence) as min_sequence
+ from big_storage_cage_details t
+ inner join big_storage_glass_relation_info t1
+ on t.engineer_id = t1.engineer_id and t.tempering_layout_id = t1.tempering_layout_id and
+ t.tempering_feed_sequence = t1.tempering_feed_sequence
+ where (t.engineer_id, t.tempering_layout_id, t.tempering_feed_sequence) in
+ (select engineer_id, tempering_layout_id, tempering_feed_sequence from glass_id_temp)
+ and t.state = 100
+ group by t.slot
+ order by max_sequence
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0