From b049e8f345c6725899fcfbe2da89548500515fba Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 22 十月 2025 17:05:57 +0800
Subject: [PATCH] 1、 钢化前理片笼进片/直通已开发,调度框架已搭建等待补充
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml | 4
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java | 2
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 4
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java | 262 +++++++++++++++++++++++++++++++++-------------------
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java | 2
5 files changed, 174 insertions(+), 100 deletions(-)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
index 09aeaaa..0d279e3 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
@@ -57,7 +57,7 @@
List<TemperingGlassCountDTO> selectTemperingGlassCount(int isTempering);
- List<BigStorageRelationDTO> queryIsAllNeedDispatchVirtualSlot();
+ List<BigStorageRelationDTO> queryIsAllNeedDispatchVirtualSlot(@Param("deviceIdList") List<Integer> deviceIdList);
List<BigStorageSequenceDTO> queryNeedDispatchSlot(BigStorageRelationDTO bigStorageRelationDTO);
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
index 87d5f60..b26b486 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
@@ -96,7 +96,7 @@
boolean appointTemperingEngineerId(String engineerId);
- List<BigStorageRelationDTO> queryIsAllNeedDispatchVirtualSlot();
+ List<BigStorageRelationDTO> queryIsAllNeedDispatchVirtualSlot(List<Integer> deviceIdList);
List<BigStorageSequenceDTO> dispatchBigStorageGlassInfo(BigStorageRelationDTO bigStorageRelationDTO);
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 2f0ae66..c4b4e04 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
@@ -548,8 +548,8 @@
}
@Override
- public List<BigStorageRelationDTO> queryIsAllNeedDispatchVirtualSlot() {
- return baseMapper.queryIsAllNeedDispatchVirtualSlot();
+ public List<BigStorageRelationDTO> queryIsAllNeedDispatchVirtualSlot(List<Integer> deviceIdList) {
+ return baseMapper.queryIsAllNeedDispatchVirtualSlot(deviceIdList);
}
@Override
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
index 8c21cb2..d4fa6fa 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
@@ -152,7 +152,7 @@
task.setStartSlot(Integer.parseInt(fromOpcUa));
inTaskList.add(task);
glassIdList.add(requestWord);
- continue;
+ break;
}
}
if (CollectionUtil.isEmpty(inTaskList)) {
@@ -219,15 +219,16 @@
return;
}
Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_GLASS_GAP);
- Integer slotMaxthickness = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_MAX_THICKNESS);
+ Integer slotMaxThickness = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_MAX_THICKNESS);
Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
Integer slotMaxHeight = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_MAX_HEIGHT);
//鎸夌収鐜荤拑鍘氬害鍒嗙粍锛屽垽鏂墿浣欐牸瀛愭槸鍚﹀彲浠ュ瓨鏀�
Map<Double, Long> thickCountMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getThickness, Collectors.counting()));
- if (glassInfoList.get(0).getThickness() < slotMaxthickness) {
+ if (glassInfoList.get(0).getThickness() < slotMaxThickness) {
for (Map.Entry<Double, Long> entry : thickCountMap.entrySet()) {
int count = bigStorageCageService.count(new LambdaQueryWrapper<BigStorageCage>()
.eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getRemainWidth, slotWidth)
+ .ge(BigStorageCage::getDeviceId, 4)
.le(BigStorageCage::getMinThickness, entry.getKey())
.ge(BigStorageCage::getMaxThickness, entry.getKey()));
if (count < entry.getValue()) {
@@ -242,7 +243,7 @@
}
}
//瓒呭ぇ灏哄
- if (slotMaxHeight < Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) || glassInfoList.get(0).getThickness() >= slotMaxthickness) {
+ if (slotMaxHeight < Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) || glassInfoList.get(0).getThickness() >= slotMaxThickness) {
int count = bigStorageCageDetailsService.count(new LambdaQueryWrapper<BigStorageCageDetails>()
.eq(BigStorageCageDetails::getSlot, THROUGH_SLOT)
.in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
@@ -262,14 +263,15 @@
.set(EdgGlassTaskInfo::getState, Const.EDG_GLASS_SUCCESS).in(EdgGlassTaskInfo::getGlassId, glassIdList));
//鎶ュ伐
for (String glass : glassIdList) {
- damageService.autoSubmitReport(glass, inTaskList.get(0).getStartSlot(), "纾ㄨ竟", "杩涘ぇ鐞嗙墖绗�", 1);
+ damageService.autoSubmitReport(glass, inTaskList.get(0).getStartSlot(),
+ "纾ㄨ竟", "杩涘ぇ鐞嗙墖绗�", 1);
}
Map<String, List<GlassInfo>> glassListMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getGlassId));
//璁$畻鐩爣鏍煎瓙
List<BigStorageCageHistoryTask> historyTasks = new ArrayList<>();
//瓒呭ぇ灏哄涓庢甯稿昂瀵哥幓鐠冭绠楁柟寮忎笉涓�鏍�
- if (slotMaxHeight > Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) && glassInfoList.get(0).getThickness() < slotMaxthickness) {
+ if (slotMaxHeight > Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) && glassInfoList.get(0).getThickness() < slotMaxThickness) {
for (BigStorageCageTask task : inTaskList) {
GlassInfo info = glassListMap.get(task.getGlassId()).get(0);
BigStorageDTO bigStorageDTO = bigStorageGlassInfoService.queryBigStorageTargetSlot(info.getEngineerId(), info.getTemperingLayoutId(), info.getTemperingFeedSequence());
@@ -301,27 +303,29 @@
bigStorageCageDetailsService.save(cageDetails);
}
} else {
- BigStorageCageTask task = inTaskList.get(0);
- task.setTargetSlot(THROUGH_SLOT);
- //瀛樻斁鍘嗗彶浠诲姟
- BigStorageCageHistoryTask historyTask = new BigStorageCageHistoryTask();
- BeanUtils.copyProperties(task, historyTask);
- historyTask.setTaskType(Const.BIG_STORAGE_BEFORE_IN);
- historyTask.setGlassCount(glassInfoList.size());
- historyTask.setTaskState(Const.ENGINEERING_NEW);
- historyTasks.add(historyTask);
- GlassInfo info = glassInfoList.get(0);
- BigStorageCageDetails cageDetails = new BigStorageCageDetails();
- BeanUtils.copyProperties(info, cageDetails);
- cageDetails.setSlot(THROUGH_SLOT);
- cageDetails.setState(Const.GLASS_STATE_NEW);
- cageDetails.setDeviceId(0);
- cageDetails.setSequence(0);
- cageDetails.setGap(glassGap);
- cageDetails.setAngle((int) info.getAngle());
- cageDetails.setFilmsId(info.getFilmsid());
- cageDetails.setId(null);
- bigStorageCageDetailsService.save(cageDetails);
+ for (BigStorageCageTask task : inTaskList) {
+ task.setTargetSlot(THROUGH_SLOT);
+ //瀛樻斁鍘嗗彶浠诲姟
+ BigStorageCageHistoryTask historyTask = new BigStorageCageHistoryTask();
+ BeanUtils.copyProperties(task, historyTask);
+ historyTask.setTaskType(Const.BIG_STORAGE_BEFORE_IN);
+ historyTask.setGlassCount(glassInfoList.size());
+ historyTask.setTaskState(Const.ENGINEERING_NEW);
+ historyTasks.add(historyTask);
+ GlassInfo info = glassListMap.get(task.getGlassId()).get(0);
+ BigStorageCageDetails cageDetails = new BigStorageCageDetails();
+ BeanUtils.copyProperties(info, cageDetails);
+ cageDetails.setSlot(THROUGH_SLOT);
+ cageDetails.setState(Const.GLASS_STATE_NEW);
+ cageDetails.setDeviceId(0);
+ cageDetails.setSequence(0);
+ cageDetails.setGap(glassGap);
+ cageDetails.setAngle((int) info.getAngle());
+ cageDetails.setFilmsId(info.getFilmsid());
+ cageDetails.setId(null);
+ bigStorageCageDetailsService.save(cageDetails);
+ }
+
}
//鍘嗗彶鏁版嵁鍏ュ簱
bigStorageCageHistoryTaskService.saveBatch(historyTasks);
@@ -377,6 +381,67 @@
log.info("鏈夋鍦ㄦ墽琛岀殑鍑虹墖浠诲姟锛岀粨鏉熸湰娆″嚭鐗囦换鍔�");
return;
}
+
+ List<BigStorageCageDetails> detailsList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+ .eq(BigStorageCageDetails::getSlot, THROUGH_SLOT)
+ .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL).orderByAsc(BigStorageCageDetails::getId));
+ if (CollectionUtil.isNotEmpty(detailsList)) {
+ List<BigStorageCageHistoryTask> historyTasks = new ArrayList<>();
+ List<BigStorageCageTask> taskList = new ArrayList<>();
+ Integer glassGap = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_GLASS_GAP);
+ Integer slotWidth = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_WIDTH);
+ Integer slotMaxThickness = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_MAX_THICKNESS);
+ Integer slotMaxHeight = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_SLOT_MAX_HEIGHT);
+ for (BigStorageCageDetails info : detailsList) {
+ BigStorageCageTask task = new BigStorageCageTask();
+ task.setGlassId(info.getGlassId());
+ task.setStartSlot(THROUGH_SLOT);
+ task.setTaskState(Const.ENGINEERING_NEW);
+
+ LambdaQueryWrapper<BigStorageCage> queryWrapper = new LambdaQueryWrapper<BigStorageCage>()
+ .eq(BigStorageCage::getRemainWidth, slotWidth).orderByAsc(BigStorageCage::getSlot)
+ .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+ .last("limit 1");
+
+ if (slotMaxHeight > Math.min(info.getWidth(), info.getHeight()) && info.getThickness() < slotMaxThickness) {
+ queryWrapper.in(BigStorageCage::getDeviceId, Arrays.asList(5, 6));
+ } else {
+ queryWrapper.eq(BigStorageCage::getDeviceId, 6);
+ }
+
+ BigStorageCage bigStorageCage = bigStorageCageService.getOne(queryWrapper);
+ //鑾峰彇鐩爣鏍煎瓙淇℃伅
+// 涓存椂鏇存柊鏍煎瓙鐨勫墿浣欏昂瀵革細闃叉鐩搁偦鐜荤拑杩涘悓涓�鏍煎瓙閫犳垚鍓╀綑灏哄涓嶈冻锛岀幓鐠冭秺鐣岀殑鎯呭喌锛屼换鍔″畬鎴愬悗鍐嶆鏇存柊澶х悊鐗囩琛ㄥ墿浣欏搴︼紙鎸夌収绗煎唴鐜荤拑鏁伴噺鏇存柊澶х悊鐗囩鍓╀綑灏哄锛�
+ bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>()
+ .set(BigStorageCage::getRemainWidth, bigStorageCage.getRemainWidth() - Math.max(info.getWidth(), info.getHeight()) - glassGap)
+ .eq(BigStorageCage::getSlot, bigStorageCage.getSlot()));
+ task.setTargetSlot(bigStorageCage.getSlot());
+ taskList.add(task);
+ //瀛樻斁鍘嗗彶浠诲姟
+ BigStorageCageHistoryTask historyTask = new BigStorageCageHistoryTask();
+ BeanUtils.copyProperties(task, historyTask);
+ historyTask.setTaskType(Const.BIG_STORAGE_BEFORE_DISPATCH);
+ historyTask.setGlassCount(detailsList.size());
+ historyTask.setTaskState(Const.ENGINEERING_NEW);
+ historyTasks.add(historyTask);
+ BigStorageCageDetails cageDetails = new BigStorageCageDetails();
+ BeanUtils.copyProperties(info, cageDetails);
+ cageDetails.setSlot(bigStorageCage.getSlot());
+ cageDetails.setState(Const.GLASS_STATE_NEW);
+ cageDetails.setDeviceId(bigStorageCage.getDeviceId());
+ cageDetails.setSequence(0);
+ cageDetails.setAngle((int) info.getAngle());
+ cageDetails.setGap(glassGap);
+ cageDetails.setFilmsId(info.getFilmsId());
+ cageDetails.setId(null);
+ bigStorageCageDetailsService.save(cageDetails);
+ }
+ //鍘嗗彶鏁版嵁鍏ュ簱
+ bigStorageCageHistoryTaskService.saveBatch(historyTasks);
+ extracted(taskList);
+ return;
+ }
+
Integer temperingOutTargetPosition = sysConfigService.queryConfigValue(ConstSysConfig.VERTICAL_TEMPERING_OUT_TARGET_POSITION);
if (redisUtil.getCacheObject("temperingSwitch")) {
//鏄惁鍏佽閽㈠寲
@@ -392,17 +457,6 @@
return;
}
- BigStorageCageDetails details = bigStorageCageDetailsService.getOne(new LambdaQueryWrapper<BigStorageCageDetails>()
- .eq(BigStorageCageDetails::getSlot, THROUGH_SLOT)
- .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL).last("limit 1"));
- if (details != null) {
- TemperingGlassInfo temperingGlassInfo = new TemperingGlassInfo();
- BeanUtils.copyProperties(details, temperingGlassInfo);
- temperingGlassInfo.setState(-1);
- temperingGlassInfoService.save(temperingGlassInfo);
- computeOutGlassInfoByVirtualSlot(Arrays.asList(temperingGlassInfo), "big_storage_cage_out_one_task", temperingOutTargetPosition, Const.GLASS_STATE_OUT_ING, Const.BIG_STORAGE_BEFORE_OUT);
- return;
- }
String temperingEngineerId = redisUtil.getCacheObject("temperingEngineerId");
if (StringUtils.isNotBlank(temperingEngineerId)) {
TemperingGlassInfo temperingGlassInfo = temperingGlassInfoService.getOne(new QueryWrapper<TemperingGlassInfo>()
@@ -469,42 +523,44 @@
log.info("鏈夋鍦ㄦ墽琛岀殑杩涚墖浠诲姟锛岀粨鏉熻皟搴︿换鍔�");
return;
}
- //todo:鑾峰彇绗煎唴鍗曟牸宸茬粡鍒伴綈鐨勭幓鐠冩牸瀛愪俊鎭�
- List<BigStorageRelationDTO> virtualList = bigStorageCageDetailsService.queryIsAllNeedDispatchVirtualSlot();
- if (CollectionUtil.isEmpty(virtualList)) {
- log.info("娌℃湁闇�瑕佽皟搴︾殑鏍煎瓙");
+//todo:4鍙疯幏鍙栫鍐呭崟鏍煎凡缁忓埌榻愮殑鐜荤拑鏍煎瓙淇℃伅
+ List<BigStorageRelationDTO> virtualList = bigStorageCageDetailsService.queryIsAllNeedDispatchVirtualSlot(Arrays.asList(4));
+ //鏈夛細缁熶竴寰�5鍙风瀛愰��
+// todo:鏃� 4鍙风瀛愪娇鐢ㄦ暟閲忔槸鍚﹁秴杩囬槇鍊� 鏈� 鐢熸垚璋冨害浠诲姟鎸夌収缁勫彿缁勫簭鐢�1寮�濮嬩緷娆″線5鍙风瀛愰�佸皬鐗�
+ //1-3鍙疯幏鍙栫鍐呭崟鏍煎凡缁忓埌榻愮殑鐜荤拑鏍煎瓙淇℃伅
+ virtualList = bigStorageCageDetailsService.queryIsAllNeedDispatchVirtualSlot(Arrays.asList(1, 2, 3));
+ if (CollectionUtil.isNotEmpty(virtualList)) {
+ List<BigStorageCageDetails> list = new ArrayList<>();
+ loop:
+ for (BigStorageRelationDTO dto : virtualList) {
+ List<BigStorageSequenceDTO> sequenceDTOList = bigStorageCageDetailsService.dispatchBigStorageGlassInfo(dto);
+ if (CollectionUtil.isEmpty(sequenceDTOList) || sequenceDTOList.size() == 1) {
+ continue;
+ }
+ int sequence = -1;
+ int targetSlot = -1;
+ for (BigStorageSequenceDTO item : sequenceDTOList) {
+ if (item.getMaxSequence() == sequence - 1) {
+ //鐢熸垚璋冨害浠诲姟
+ int startSlot = item.getSlot();
+ list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+ .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN).eq(BigStorageCageDetails::getSlot, startSlot));
+ computeOutGlassInfoByVirtualSlot(list, "big_storage_cage_out_one_task",
+ targetSlot, Const.GLASS_STATE_SCHEDULE_ING, Const.BIG_STORAGE_BEFORE_DISPATCH);
+ List<Integer> slotList = new ArrayList<>();
+ slotList.add(targetSlot);
+ updateSlotRemainBySlots(slotList);
+ break loop;
+ }
+ sequence = item.getMinSequence();
+ targetSlot = item.getSlot();
+ }
+ }
+ Date endDate = new Date();
+ log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
return;
}
- List<BigStorageCageDetails> list = new ArrayList<>();
- loop:
- for (BigStorageRelationDTO dto : virtualList) {
- List<BigStorageSequenceDTO> sequenceDTOList = bigStorageCageDetailsService.dispatchBigStorageGlassInfo(dto);
- if (CollectionUtil.isEmpty(sequenceDTOList) || sequenceDTOList.size() == 1) {
- continue;
- }
- int sequence = -1;
- int targetSlot = -1;
- for (BigStorageSequenceDTO item : sequenceDTOList) {
- if (item.getMaxSequence() == sequence - 1) {
- //鐢熸垚璋冨害浠诲姟
- int startSlot = item.getSlot();
- list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
- .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN).eq(BigStorageCageDetails::getSlot, startSlot));
- computeOutGlassInfoByVirtualSlot(list, "big_storage_cage_out_one_task",
- targetSlot, Const.GLASS_STATE_SCHEDULE_ING, Const.BIG_STORAGE_BEFORE_DISPATCH);
- List<Integer> slotList = new ArrayList<>();
- slotList.add(targetSlot);
- updateSlotRemainBySlots(slotList);
- break loop;
- }
- sequence = item.getMinSequence();
- targetSlot = item.getSlot();
- }
- }
}
- Date endDate = new Date();
- log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
- return;
}
@Scheduled(fixedDelay = 1000)
@@ -844,7 +900,8 @@
* @param <T>
* @return
*/
- private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfoByVirtualSlot(List<T> list, String tableName, int targetSlot, int state, int taskType) {
+ private <T extends BigStorageCageBaseInfo> Boolean
+ computeOutGlassInfoByVirtualSlot(List<T> list, String tableName, int targetSlot, int state, int taskType) {
//浠诲姟鏁版嵁:鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�,鐜荤拑闂撮殧
List<T> outGlassList = list;
if (!THROUGH_SLOT.equals(list.get(0).getSlot())) {
@@ -870,6 +927,41 @@
// bigStorageCageTaskList.add(new BigStorageCageTask("", 0, 0, 0));
// }
//娓呯┖浠诲姟琛ㄦ暟鎹�
+ extracted(bigStorageCageTaskList);
+ S7DataDLPTwo s7DataDLPTwo;
+ List<BigStorageCageHistoryTask> historyList = bigStorageCageTaskList.stream().filter(e -> StringUtils.isNotBlank(e.getGlassId())).map(e -> {
+ BigStorageCageHistoryTask history = new BigStorageCageHistoryTask();
+ BeanUtils.copyProperties(e, history);
+ history.setGlassCount(glassCount);
+ history.setTaskType(taskType);
+ return history;
+ }).collect(Collectors.toList());
+ bigStorageCageHistoryTaskService.saveBatch(historyList);
+
+ log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄嚭鐗囦腑", glassIds);
+ bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+ .set(BigStorageCageDetails::getState, state)
+ .set(Const.BIG_STORAGE_BEFORE_DISPATCH.equals(taskType), BigStorageCageBaseInfo::getSlot, targetSlot)
+ .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+ .in(BigStorageCageDetails::getGlassId, glassIds));
+ try {
+// miloService.writeToOpcWord(generateReadWriteEntity("DLP1B.DLP1B.MesReply", 1));
+ s7DataDLPTwo = new S7DataDLPTwo();
+ s7DataDLPTwo.setMesReply(1);
+ s7SerializerDLPTwo.write(s7DataDLPTwo);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return Boolean.TRUE;
+ }
+
+ /**
+ * 鎸夌収浠诲姟鐢熸垚鍑虹墖浠诲姟
+ *
+ * @param bigStorageCageTaskList
+ * @return
+ */
+ private Boolean extracted(List<BigStorageCageTask> bigStorageCageTaskList) {
resetOutTask();
S7DataDLPTwo s7DataDLPTwo = new S7DataDLPTwo();
for (int i = 0; i < bigStorageCageTaskList.size() && i < 6; i++) {
@@ -912,29 +1004,6 @@
}
}
s7SerializerDLPTwo.write(s7DataDLPTwo);
- List<BigStorageCageHistoryTask> historyList = bigStorageCageTaskList.stream().filter(e -> StringUtils.isNotBlank(e.getGlassId())).map(e -> {
- BigStorageCageHistoryTask history = new BigStorageCageHistoryTask();
- BeanUtils.copyProperties(e, history);
- history.setGlassCount(glassCount);
- history.setTaskType(taskType);
- return history;
- }).collect(Collectors.toList());
- bigStorageCageHistoryTaskService.saveBatch(historyList);
-
- log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄嚭鐗囦腑", glassIds);
- bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
- .set(BigStorageCageDetails::getState, state)
- .set(Const.BIG_STORAGE_BEFORE_DISPATCH.equals(taskType), BigStorageCageBaseInfo::getSlot, targetSlot)
- .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
- .in(BigStorageCageDetails::getGlassId, glassIds));
- try {
-// miloService.writeToOpcWord(generateReadWriteEntity("DLP1B.DLP1B.MesReply", 1));
- s7DataDLPTwo = new S7DataDLPTwo();
- s7DataDLPTwo.setMesReply(1);
- s7SerializerDLPTwo.write(s7DataDLPTwo);
- } catch (Exception e) {
- e.printStackTrace();
- }
return Boolean.TRUE;
}
@@ -945,7 +1014,8 @@
// * @param <T>
// * @return
// */
- private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, String tableName, int targetSlot, int state, int taskType) {
+ private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, String tableName,
+ int targetSlot, int state, int taskType) {
//浠诲姟鏁版嵁:鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�,鐜荤拑闂撮殧
List<BigStorageCageTask> bigStorageCageTaskList = new ArrayList<>();
//鎵撹溅鍓╀綑灏哄
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
index 7851615..bff98cb 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -223,6 +223,10 @@
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
+ AND T1.DEVICE_ID IN
+ <foreach collection="deviceIdList" item="item" open='(' close=')' separator=','>
+ #{item}
+ </foreach>
group by t.engineer_id, t.tempering_layout_id, t.virtual_slot
),
result_one as (
--
Gitblit v1.8.0