From 9b3f76e38ea10241625cee9ea6e9fa69e792d38b Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 24 七月 2024 15:46:18 +0800
Subject: [PATCH] 下片任务:fixbug 解决被禁用情况下仍有玻璃走禁用的线路
---
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java | 4 +-
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml | 25 ++++++++----
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java | 55 +++++++++++++--------------
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java | 5 ++
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java | 2
5 files changed, 50 insertions(+), 41 deletions(-)
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java
index 50991e4..72b4043 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java
@@ -2,6 +2,9 @@
import com.github.yulichang.base.MPJBaseMapper;
import com.mes.downstorage.entity.DownStorageCageDetails;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* <p>
@@ -14,5 +17,5 @@
public interface DownStorageCageDetailsMapper extends MPJBaseMapper<DownStorageCageDetails> {
- DownStorageCageDetails getGlassInfoMaxCount();
+ DownStorageCageDetails getGlassInfoMaxCount(@Param(value = "workList") List<Integer> workList);
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
index a5a3a3c..54966ee 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
@@ -71,7 +71,7 @@
*/
boolean DirectConnection(GlassInfo glassInfo);
- String getGlassInfoMaxCount(String glassId);
+ String getGlassInfoMaxCount(String glassId, List<Integer> workList);
/**
* @param glassId
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
index 027a0a0..0ea5be2 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
@@ -193,8 +193,8 @@
}
@Override
- public String getGlassInfoMaxCount(String glassId) {
- DownStorageCageDetails glassInfoMaxCount = baseMapper.getGlassInfoMaxCount();
+ public String getGlassInfoMaxCount(String glassId, List<Integer> workList) {
+ DownStorageCageDetails glassInfoMaxCount = baseMapper.getGlassInfoMaxCount(workList);
return null == glassInfoMaxCount ? glassId : glassInfoMaxCount.getGlassId();
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
index 13d4b6e..88d6363 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
@@ -375,7 +375,7 @@
List<String> downGlassFlowList = downGlassInfoDTOList.stream().map(item -> item.getFlowCardId() + ":" + item.getLayer()).collect(Collectors.toList());
if (CollectionUtils.isEmpty(downGlassFlowList)) {
//鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃� 鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖
- tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId);
+ tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId, workList);
isBind = Boolean.TRUE;
break loop;
}
@@ -388,7 +388,7 @@
// .isNull(DownWorkstation::getFlowCardId));
if (isEmptyShelf) {
//鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃� 鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖
- tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId);
+ tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId, workList);
isBind = Boolean.TRUE;
break loop;
}
@@ -455,44 +455,24 @@
return Boolean.FALSE;
} else {
//鎸夌収鍑虹墖鐨勭幓鐠僫d鏇存柊绗煎唴鐨勭幓鐠冪姸鎬佷负宸插嚭鐗�
- return generateDownGlassOutTask(tempGlassId, Const.GLASS_CACHE_TYPE_OUT, isBind, cageDetails);
+ return generateDownGlassOutTask(tempGlassId, Const.GLASS_CACHE_TYPE_OUT, isBind, cageDetails, workList);
}
}
public Boolean generateDownGlassOutTask(String glassId, Integer taskType, Boolean
- isBind, DownStorageCageDetails cageDetails) {
+ isBind, DownStorageCageDetails cageDetails, List<Integer> workList) {
//鎸夌幓鐠僫d鑾峰彇鐜荤拑淇℃伅
DownStorageCageDetails downStorageCageDetails = null;
if (glassId.equals(cageDetails.getGlassId())) {
downStorageCageDetails = cageDetails;
taskType = 3;
+ //灏嗕笅鐗囩幓鐠冨瓨鍏ョ瀛愯鎯呬俊鎭〃涓�
+ //灏嗕换鍔℃彃鍏ョ悊鐗囩璇︽儏琛�
+ downStorageCageDetails.setState(Const.GLASS_STATE_OUT);
+ downStorageCageDetailsService.save(downStorageCageDetails);
} else {
downStorageCageDetails = downStorageCageDetailsService.getOne(new LambdaQueryWrapper<DownStorageCageDetails>()
.eq(DownStorageCageDetails::getGlassId, glassId).eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN));
- }
-
- Integer endCell = null;
- if (isBind) {
- //鑾峰彇绌烘灦瀛愪俊鎭紝灏嗙┖鏋跺瓙淇℃伅缁戝畾娴佺▼鍗�
- DownWorkstation emptyDownWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>()
- .isNull(DownWorkstation::getFlowCardId).orderByDesc(DownWorkstation::getWorkstationId).last("limit 1"));
- if (null != emptyDownWorkstation) {
- log.info("鑾峰彇鍒扮┖鏋跺瓙淇℃伅锛岀粦瀹氭祦绋嬪崱");
- downWorkstationService.updateFlowCardIdAndCount(downStorageCageDetails.getFlowCardId(), emptyDownWorkstation.getWorkstationId(), downStorageCageDetails.getLayer());
- endCell = emptyDownWorkstation.getWorkstationId();
- //灏嗕笅鐗囩幓鐠冨瓨鍏ョ瀛愯鎯呬俊鎭〃涓�
- //灏嗕换鍔℃彃鍏ョ悊鐗囩璇︽儏琛�
- downStorageCageDetails.setState(Const.GLASS_STATE_OUT);
- downStorageCageDetailsService.save(downStorageCageDetails);
- } else {
- log.info("娌℃湁绌烘灦瀛愪俊鎭紝鏃犳硶缁戝畾娴佺▼鍗�");
- return Boolean.FALSE;
- }
- } else {
- DownWorkstation workstation = downWorkstationService.getOne(new LambdaUpdateWrapper<DownWorkstation>()
- .eq(DownWorkstation::getFlowCardId, downStorageCageDetails.getFlowCardId()).eq(DownWorkstation::getLayer, downStorageCageDetails.getLayer()));
- endCell = workstation.getWorkstationId();
-
if (downStorageCageDetailsService.update(new LambdaUpdateWrapper<DownStorageCageDetails>()
.set(DownStorageCageDetails::getState, Const.GLASS_STATE_OUT).eq(DownStorageCageDetails::getGlassId, glassId))) {
log.info("鏇存柊璇︽儏琛ㄥ唴鐨勭姸鎬佹垚鍔�");
@@ -502,6 +482,25 @@
return Boolean.FALSE;
}
}
+
+ Integer endCell = null;
+ if (isBind) {
+ //鑾峰彇绌烘灦瀛愪俊鎭紝灏嗙┖鏋跺瓙淇℃伅缁戝畾娴佺▼鍗�
+ DownWorkstation emptyDownWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>()
+ .isNull(DownWorkstation::getFlowCardId).in(DownWorkstation::getWorkstationId, workList).orderByDesc(DownWorkstation::getWorkstationId).last("limit 1"));
+ if (null != emptyDownWorkstation) {
+ log.info("鑾峰彇鍒扮┖鏋跺瓙淇℃伅锛岀粦瀹氭祦绋嬪崱");
+ downWorkstationService.updateFlowCardIdAndCount(downStorageCageDetails.getFlowCardId(), emptyDownWorkstation.getWorkstationId(), downStorageCageDetails.getLayer());
+ endCell = emptyDownWorkstation.getWorkstationId();
+ } else {
+ log.info("娌℃湁绌烘灦瀛愪俊鎭紝鏃犳硶缁戝畾娴佺▼鍗�");
+ return Boolean.FALSE;
+ }
+ } else {
+ DownWorkstation workstation = downWorkstationService.getOne(new LambdaUpdateWrapper<DownWorkstation>()
+ .eq(DownWorkstation::getFlowCardId, downStorageCageDetails.getFlowCardId()).eq(DownWorkstation::getLayer, downStorageCageDetails.getLayer()));
+ endCell = workstation.getWorkstationId();
+ }
//鏇存柊钀芥灦鐜荤拑鏁伴噺
if (endCell == 7) {
downWorkstationService.update(new UpdateWrapper<DownWorkstation>().eq("flow_card_id", downStorageCageDetails.getFlowCardId())
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml
index c506462..10024bb 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml
@@ -25,16 +25,23 @@
SELECT *
FROM DOWN_STORAGE_CAGE_DETAILS
WHERE (FLOW_CARD_ID, LAYER) = (SELECT FLOW_CARD_ID, LAYER
- FROM DOWN_STORAGE_CAGE_DETAILS
- WHERE STATE = 100
- GROUP BY FLOW_CARD_ID, LAYER
- ORDER BY COUNT(FLOW_CARD_ID) DESC
- LIMIT 1 )
- AND STATE = 100
+ FROM DOWN_STORAGE_CAGE_DETAILS
+ WHERE STATE = 100
+ and (FLOW_CARD_ID, LAYER) not in (
+ select FLOW_CARD_ID, LAYER from down_workstation where workstation_id in
+ <foreach collection="workList" item="item" open='(' close=')' separator=','>
+ #{item}
+ </foreach>
+ )
+
+ GROUP BY FLOW_CARD_ID, LAYER
+ ORDER BY COUNT(FLOW_CARD_ID) DESC
+ LIMIT 1 )
+ AND STATE = 100
ORDER BY
- WIDTH DESC,
- HEIGHT DESC
- LIMIT 1
+ WIDTH DESC,
+ HEIGHT DESC
+ LIMIT 1
</select>
--
Gitblit v1.8.0