From 57fd04268409779c868b38d0507cca34f0641625 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期一, 26 五月 2025 16:21:32 +0800
Subject: [PATCH] fixbug:在同一工程执行调度任务过程中领取任务造成大理片笼出片缺片的情况
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 35 ++++++++++++++++++++++++++---------
1 files changed, 26 insertions(+), 9 deletions(-)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
index b0aa717..d53d7a5 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -77,8 +77,6 @@
@Resource
private SysConfigService sysConfigService;
-// @Resource
-// private PlcStorageCageTask plcStorageCageTask;
@Resource
private DamageService damageService;
@@ -407,16 +405,26 @@
.eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW);
List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoMapper.selectList(temperingGlassInfoLambdaQueryWrapper);
+ int dispatchCount = bigStorageCageHistoryTaskService.count(new LambdaQueryWrapper<BigStorageCageHistoryTask>()
+ .eq(BigStorageCageHistoryTask::getTaskState, Const.GLASS_STATE_NEW)
+ .eq(BigStorageCageHistoryTask::getTaskType, Const.BIG_STORAGE_BEFORE_DISPATCH));
+
if (temperingGlassInfoList.size() == 0) {
- List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+ MPJLambdaWrapper<GlassInfo> wrapper = JoinWrappers.lambda(GlassInfo.class)
.select("-1 as state,t.filmsid as films_id,t.glass_id,t.flow_card_id,t.glass_type,t.width,t.height" +
",t.thickness,t.ishorizontal,t.tempering_layout_id,t.tempering_feed_sequence,t.x_coordinate,t.y_coordinate," +
"t.angle,t1.slot,t.engineer_id")
.innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
.eq(GlassInfo::getTemperingLayoutId, temperingLayoutId)
.eq(GlassInfo::getEngineerId, engineerId)
- .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
- .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence));
+
+ .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence);
+ if (dispatchCount > 0) {
+ wrapper.in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL);
+ } else {
+ wrapper.in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN);
+ }
+ List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, wrapper);
if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
if ("0".equals(temperingFeedSequence)) {
if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
@@ -504,18 +512,27 @@
.eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW);
List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoMapper.selectList(temperingGlassInfoLambdaQueryWrapper);
+ int dispatchCount = bigStorageCageHistoryTaskService.count(new LambdaQueryWrapper<BigStorageCageHistoryTask>()
+ .eq(BigStorageCageHistoryTask::getTaskState, Const.GLASS_STATE_NEW)
+ .eq(BigStorageCageHistoryTask::getTaskType, Const.BIG_STORAGE_BEFORE_DISPATCH));
+
if (temperingGlassInfoList.size() == 0) {
- List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+ MPJLambdaWrapper<GlassInfo> wrapper = JoinWrappers.lambda(GlassInfo.class)
.select("-1 as state,t.filmsid as films_id,t.glass_id,t.flow_card_id,t.glass_type,t.width,t.height" +
",t.thickness,t.ishorizontal,t.tempering_layout_id,t.tempering_feed_sequence,t.x_coordinate,t.y_coordinate," +
"t.angle,t1.slot,t.engineer_id")
.innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
.eq(GlassInfo::getEngineerId, engineerId)
.ne(GlassInfo::getTemperingLayoutId, 0)
- .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
.orderByAsc(BigStorageCageDetails::getTemperingLayoutId)
- .orderByAsc(BigStorageCageDetails::getTemperingFeedSequence)
- );
+ .orderByAsc(BigStorageCageDetails::getTemperingFeedSequence);
+ if (dispatchCount > 0) {
+ wrapper.in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL);
+ } else {
+ wrapper.in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN);
+ }
+ List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, wrapper);
+
if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
//閬垮厤澶ч噺鏁版嵁鎻掑叆瀵艰嚧sqlserver鏁版嵁搴撳紓甯革紝鍒嗘壒娆℃瘡璋冨瓨鍌ㄤ緷娆�
List<List<TemperingGlassInfo>> temperingGlassInfoLists = Lists.partition(temperingGlassInfos, 50);
--
Gitblit v1.8.0