From ea2fdc85d876c680e042034d1cbb7c1ca030b5b7 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期日, 12 十月 2025 11:14:25 +0800
Subject: [PATCH] 1、中空任务队列显示bug修复,缺片详情破损后再查询条件添加
---
hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java | 270 ++++++++++++++++++++++++++++-------------------------
1 files changed, 143 insertions(+), 127 deletions(-)
diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
index f98ca97..67c49d1 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -712,137 +712,144 @@
@Scheduled(fixedDelay = 1000)
public void finishOutBigStorageTask() throws Exception {
- S7DataZKDLPTwo s7DataZKDLPTwo = s7SerializerZKDLPTwo.read(S7DataZKDLPTwo.class);
- Boolean inkageEntity = s7DataZKDLPTwo.getMesControl();
- if (true != inkageEntity) {
- log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫瀹屾垚鍑虹墖浠诲姟");
- return;
- }
- //鑾峰彇鍑虹墖浠诲姟琛�
- List<BigStorageCageTask> outTaskList = getOutTaskList(s7DataZKDLPTwo);
- if (CollectionUtil.isEmpty(outTaskList)) {
- log.info("褰撳墠澶ц溅鏃犲嚭鐗囩幓鐠冿紝缁撴潫瀹屾垚鍑虹墖浠诲姟");
- return;
- }
- List<BigStorageCageTask> unFinishTaskList = outTaskList.stream().filter(e -> e.getTaskState() <= 1 || e.getStartSlot() == 0).collect(Collectors.toList());
- if (CollectionUtil.isNotEmpty(unFinishTaskList)) {
- log.info("瀛樺湪鏈畬鎴愮殑鐜荤拑淇℃伅,鐜荤拑锛歿}", unFinishTaskList);
- return;
- }
- Map<Integer, List<BigStorageCageTask>> taskMap = outTaskList.stream().collect(Collectors.groupingBy(BigStorageCageTask::getTaskState));
- int taskType = 0;
- if (Const.OUT_TARGET_POSITION_ALL.contains(outTaskList.get(0).getTargetSlot())) {
- taskType = Const.BIG_STORAGE_AFTER_OUT;
- } else {
- taskType = Const.BIG_STORAGE_AFTER_DISPATCH;
- }
- //鎸夌収浠诲姟鐘舵�佷慨鏀瑰ぇ鐞嗙墖绗煎唴鐨勭幓鐠冩暟鎹�
-// 閲嶆柊璁$畻澶х悊鐗囩鍐呯殑鍓╀綑灏哄
- Integer finalTaskType = taskType;
- taskMap.forEach((e1, v) -> {
- if (e1 == 2) {
- //杩涚墖瀹屾垚
- log.info("3銆佽幏鍙栧嚭鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", v);
- List<Integer> outSuccessGlassSlot = new ArrayList<>();
- if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
- outSuccessGlassSlot = v.stream().map(BigStorageCageTask::getStartSlot).collect(Collectors.toList());
- } else {
- List<Integer> targetSuccessGlassSlot = v.stream().map(BigStorageCageTask::getTargetSlot).collect(Collectors.toList());
- List<Integer> startoutSuccessGlassSlot = v.stream().map(BigStorageCageTask::getStartSlot).collect(Collectors.toList());
- outSuccessGlassSlot.addAll(targetSuccessGlassSlot);
- outSuccessGlassSlot.addAll(startoutSuccessGlassSlot);
- }
- List<UpdateHollowBigStorageCageDTO> storageCageDTOList = v.stream().map(e -> {
- UpdateHollowBigStorageCageDTO storageCageDTO = new UpdateHollowBigStorageCageDTO();
- storageCageDTO.setGlassId(e.getGlassId());
- if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
- storageCageDTO.setTargetSlot(e.getStartSlot());
- } else {
- storageCageDTO.setTargetSlot(e.getTargetSlot());
- }
- return storageCageDTO;
- }).collect(Collectors.toList());
- if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
- hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
- } else {
- hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
- //鎸夌収鏍煎瓙淇℃伅鏇存柊瀵瑰簲鐨勮澶噄d
- List<Integer> slotList = storageCageDTOList.stream().map(UpdateHollowBigStorageCageDTO::getTargetSlot).distinct().collect(Collectors.toList());
- hollowBigStorageCageDetailsService.updateDeviceIdBySlot(slotList);
- }
- log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", v);
- updateSlotRemainBySlots(outSuccessGlassSlot);
- } else if (e1 == 3) {
- //鐮存崯澶勭悊
- dealDamageOutTask(v);
- } else {
- //娓呯┖鐞嗙墖绗肩┖鏁版嵁
- noDealOutTask(v);
- }
- });
-
- for (BigStorageCageTask item : outTaskList) {
- //鏇存柊鍘嗗彶浠诲姟琛ㄤ腑鐨勪换鍔$姸鎬�
- hollowBigStorageCageHistoryTaskService.update(new LambdaUpdateWrapper<HollowBigStorageCageHistoryTask>()
- .set(HollowBigStorageCageHistoryTask::getTaskState, item.getTaskState())
- .eq(HollowBigStorageCageHistoryTask::getTaskType, taskType)
- .eq(HollowBigStorageCageHistoryTask::getGlassId, item.getGlassId()));
- //鏇存柊涓┖灏忕墖琛�
- Integer taskState = item.getTaskState();
- if (taskState == 2) {
- hollowGlassQueueInfoService.update(new LambdaUpdateWrapper<HollowGlassQueueInfo>()
- .set(HollowGlassQueueInfo::getState, Const.TEMPERING_OUT).eq(HollowGlassQueueInfo::getGlassId, item.getGlassId()));
- } else if (taskState == 3) {
-// temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().eq(TemperingGlassInfo::getGlassId, item.getGlassId()));
- hollowGlassQueueInfoService.update(new LambdaUpdateWrapper<HollowGlassQueueInfo>()
- .set(HollowGlassQueueInfo::getState, Const.TEMPERING_DAMAGE).eq(HollowGlassQueueInfo::getGlassId, item.getGlassId()));
-
- } else {
-// 绌烘墽琛�
- }
- }
try {
- //鏇存柊鏁伴噺
- //鎸夌収鐜荤拑id鑾峰彇闇�瑕佸嚭鐗囧鍒楄〃涓殑鏁版嵁
- if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
- HollowGlassQueueInfo hollowGlassQueueInfo = hollowGlassQueueInfoService.getOne(new LambdaQueryWrapper<HollowGlassQueueInfo>()
- .eq(HollowGlassQueueInfo::getGlassId, outTaskList.get(0).getGlassId())
- .orderByDesc(HollowGlassQueueInfo::getUpdateTime).last("limit 1"));
- List<HollowGlassQueueInfo> list = hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
- .eq(HollowGlassQueueInfo::getFlowCardId, hollowGlassQueueInfo.getFlowCardId())
- .eq(HollowGlassQueueInfo::getCell, hollowGlassQueueInfo.getCell())
-// .eq(HollowGlassQueueInfo::getIsPair, 1)
- .eq(HollowGlassQueueInfo::getState, Const.TEMPERING_NEW)
- );
- if (CollectionUtil.isEmpty(list)) {
-// 浠诲姟鏇存柊涓哄凡瀹屾垚
- hollowGlassOutRelationInfoService.update(new UpdateWrapper<HollowGlassOutRelationInfo>()
- .eq("flow_card_id", hollowGlassQueueInfo.getFlowCardId())
- .eq("cell", hollowGlassQueueInfo.getCell())
- .setSql("pair_quantity = total_pair_quantity")
- .set("state", Const.HOLLOW_FLOW_CARD_SUCCESS)
- );
+ S7DataZKDLPTwo s7DataZKDLPTwo = s7SerializerZKDLPTwo.read(S7DataZKDLPTwo.class);
+ Boolean inkageEntity = s7DataZKDLPTwo.getMesControl();
+ if (true != inkageEntity) {
+ log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫瀹屾垚鍑虹墖浠诲姟");
+ return;
+ }
+ //鑾峰彇鍑虹墖浠诲姟琛�
+ List<BigStorageCageTask> outTaskList = getOutTaskList(s7DataZKDLPTwo);
+ if (CollectionUtil.isEmpty(outTaskList)) {
+ log.info("褰撳墠澶ц溅鏃犲嚭鐗囩幓鐠冿紝缁撴潫瀹屾垚鍑虹墖浠诲姟");
+ return;
+ }
+ log.info("涓┖鐞嗙墖绗煎嚭鐗囧畬鎴愪换鍔�:{}", outTaskList);
+ log.info("涓┖鐞嗙墖绗煎嚭鐗囨眹鎶ユ儏鍐�:{}", s7DataZKDLPTwo);
+ List<BigStorageCageTask> unFinishTaskList = outTaskList.stream().filter(e -> e.getTaskState() <= 1 || e.getStartSlot() == 0).collect(Collectors.toList());
+ if (CollectionUtil.isNotEmpty(unFinishTaskList)) {
+ log.info("瀛樺湪鏈畬鎴愮殑鐜荤拑淇℃伅,鐜荤拑锛歿}", unFinishTaskList);
+ return;
+ }
+ Map<Integer, List<BigStorageCageTask>> taskMap = outTaskList.stream().collect(Collectors.groupingBy(BigStorageCageTask::getTaskState));
+ int taskType = 0;
+ if (Const.OUT_TARGET_POSITION_ALL.contains(outTaskList.get(0).getTargetSlot())) {
+ taskType = Const.BIG_STORAGE_AFTER_OUT;
+ } else {
+ taskType = Const.BIG_STORAGE_AFTER_DISPATCH;
+ }
+ //鎸夌収浠诲姟鐘舵�佷慨鏀瑰ぇ鐞嗙墖绗煎唴鐨勭幓鐠冩暟鎹�
+// 閲嶆柊璁$畻澶х悊鐗囩鍐呯殑鍓╀綑灏哄
+ Integer finalTaskType = taskType;
+ taskMap.forEach((e1, v) -> {
+ if (e1 == 2) {
+ //杩涚墖瀹屾垚
+ log.info("3銆佽幏鍙栧嚭鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", v);
+ List<Integer> outSuccessGlassSlot = new ArrayList<>();
+ if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
+ outSuccessGlassSlot = v.stream().map(BigStorageCageTask::getStartSlot).collect(Collectors.toList());
+ } else {
+ List<Integer> targetSuccessGlassSlot = v.stream().map(BigStorageCageTask::getTargetSlot).collect(Collectors.toList());
+ List<Integer> startoutSuccessGlassSlot = v.stream().map(BigStorageCageTask::getStartSlot).collect(Collectors.toList());
+ outSuccessGlassSlot.addAll(targetSuccessGlassSlot);
+ outSuccessGlassSlot.addAll(startoutSuccessGlassSlot);
+ }
+ List<UpdateHollowBigStorageCageDTO> storageCageDTOList = v.stream().map(e -> {
+ UpdateHollowBigStorageCageDTO storageCageDTO = new UpdateHollowBigStorageCageDTO();
+ storageCageDTO.setGlassId(e.getGlassId());
+ if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
+ storageCageDTO.setTargetSlot(e.getStartSlot());
+ } else {
+ storageCageDTO.setTargetSlot(e.getTargetSlot());
+ }
+ return storageCageDTO;
+ }).collect(Collectors.toList());
+ if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
+ hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
+ } else {
+ hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
+ //鎸夌収鏍煎瓙淇℃伅鏇存柊瀵瑰簲鐨勮澶噄d
+ List<Integer> slotList = storageCageDTOList.stream().map(UpdateHollowBigStorageCageDTO::getTargetSlot).distinct().collect(Collectors.toList());
+ hollowBigStorageCageDetailsService.updateDeviceIdBySlot(slotList);
+ }
+ log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", v);
+ updateSlotRemainBySlots(outSuccessGlassSlot);
+ } else if (e1 == 3) {
+ //鐮存崯澶勭悊
+ dealDamageOutTask(v);
} else {
-// 璁$畻鍓╀綑鐜荤拑瀵规暟锛岀敤浠诲姟鎬婚槦鏁板噺鍓╀綑瀵规暟
- int remainCount = list.size() / hollowGlassQueueInfo.getTotalLayer();
- hollowGlassOutRelationInfoService.update(new UpdateWrapper<HollowGlassOutRelationInfo>()
- .eq("flow_card_id", hollowGlassQueueInfo.getFlowCardId())
- .eq("cell", hollowGlassQueueInfo.getCell())
- .setSql("pair_quantity = total_pair_quantity -" + remainCount)
- );
+ //娓呯┖鐞嗙墖绗肩┖鏁版嵁
+ noDealOutTask(v);
+ }
+ });
+
+ for (BigStorageCageTask item : outTaskList) {
+ //鏇存柊鍘嗗彶浠诲姟琛ㄤ腑鐨勪换鍔$姸鎬�
+ hollowBigStorageCageHistoryTaskService.update(new LambdaUpdateWrapper<HollowBigStorageCageHistoryTask>()
+ .set(HollowBigStorageCageHistoryTask::getTaskState, item.getTaskState())
+ .eq(HollowBigStorageCageHistoryTask::getTaskType, taskType)
+ .eq(HollowBigStorageCageHistoryTask::getGlassId, item.getGlassId()));
+ //鏇存柊涓┖灏忕墖琛�
+ Integer taskState = item.getTaskState();
+ if (taskState == 2) {
+ hollowGlassQueueInfoService.update(new LambdaUpdateWrapper<HollowGlassQueueInfo>()
+ .set(HollowGlassQueueInfo::getState, Const.TEMPERING_OUT).eq(HollowGlassQueueInfo::getGlassId, item.getGlassId()));
+ } else if (taskState == 3) {
+// temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().eq(TemperingGlassInfo::getGlassId, item.getGlassId()));
+ hollowGlassQueueInfoService.update(new LambdaUpdateWrapper<HollowGlassQueueInfo>()
+ .set(HollowGlassQueueInfo::getState, Const.TEMPERING_DAMAGE).eq(HollowGlassQueueInfo::getGlassId, item.getGlassId()));
+
+ } else {
+// 绌烘墽琛�
}
}
- } catch (Exception e) {
- log.info("璁$畻鐜荤拑鏁伴噺杩囩▼涓嚭鐜伴敊璇紝閿欒淇℃伅{}", e.getMessage());
- }
+ try {
+ //鏇存柊鏁伴噺
+ //鎸夌収鐜荤拑id鑾峰彇闇�瑕佸嚭鐗囧鍒楄〃涓殑鏁版嵁
+ if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
+ HollowGlassQueueInfo hollowGlassQueueInfo = hollowGlassQueueInfoService.getOne(new LambdaQueryWrapper<HollowGlassQueueInfo>()
+ .eq(HollowGlassQueueInfo::getGlassId, outTaskList.get(0).getGlassId())
+ .orderByDesc(HollowGlassQueueInfo::getUpdateTime).last("limit 1"));
+ List<HollowGlassQueueInfo> list = hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
+ .eq(HollowGlassQueueInfo::getFlowCardId, hollowGlassQueueInfo.getFlowCardId())
+ .eq(HollowGlassQueueInfo::getCell, hollowGlassQueueInfo.getCell())
+// .eq(HollowGlassQueueInfo::getIsPair, 1)
+ .eq(HollowGlassQueueInfo::getState, Const.TEMPERING_NEW)
+ );
+ if (CollectionUtil.isEmpty(list)) {
+// 浠诲姟鏇存柊涓哄凡瀹屾垚
+ hollowGlassOutRelationInfoService.update(new UpdateWrapper<HollowGlassOutRelationInfo>()
+ .eq("flow_card_id", hollowGlassQueueInfo.getFlowCardId())
+ .eq("cell", hollowGlassQueueInfo.getCell())
+ .setSql("pair_quantity = total_pair_quantity")
+ .set("state", Const.HOLLOW_FLOW_CARD_SUCCESS)
+ );
+ } else {
+// 璁$畻鍓╀綑鐜荤拑瀵规暟锛岀敤浠诲姟鎬婚槦鏁板噺鍓╀綑瀵规暟
+ int remainCount = list.size() / hollowGlassQueueInfo.getTotalLayer();
+ hollowGlassOutRelationInfoService.update(new UpdateWrapper<HollowGlassOutRelationInfo>()
+ .eq("flow_card_id", hollowGlassQueueInfo.getFlowCardId())
+ .eq("cell", hollowGlassQueueInfo.getCell())
+ .setSql("pair_quantity = total_pair_quantity -" + remainCount)
+ );
+ }
+ }
+ } catch (Exception e) {
+ log.info("璁$畻鐜荤拑鏁伴噺杩囩▼涓嚭鐜伴敊璇紝閿欒淇℃伅{}", e.getMessage());
+ }
// 閲嶇疆浠诲姟琛ㄦ暟鎹�
- resetOutTask();
- //娓呯┖鍚姩鐘舵��
- //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
- s7DataZKDLPTwo = new S7DataZKDLPTwo();
- s7DataZKDLPTwo.setMesReply(0);
- s7SerializerZKDLPTwo.write(s7DataZKDLPTwo);
+ resetOutTask();
+ //娓呯┖鍚姩鐘舵��
+ //鍚憃pc鍙戦�佸惎鍔ㄤ俊鍙�
+ s7DataZKDLPTwo = new S7DataZKDLPTwo();
+ s7DataZKDLPTwo.setMesReply(0);
+ s7SerializerZKDLPTwo.write(s7DataZKDLPTwo);
+ } catch (Exception e) {
+ log.info("涓┖鐞嗙墖绗煎嚭鐗囨眹鎶ヤ换鍔″紓甯革細{}", e);
+ }
+
}
private void dealDamageInTask(List<BigStorageCageTask> damageTaskList) {
@@ -1041,10 +1048,19 @@
}
baseInfoList = resultList;
} else {
- //澶т簬鎬诲眰鏁板厛鍙杢otalLyaer鍊嶆暟鏁伴噺鐨勭幓鐠冿紝淇濊瘉澶ц溅涓婄殑鐜荤拑鎴愬浼�
+ //澶т簬鎬诲眰鏁板厛鍙杢otalLayer鍊嶆暟鏁伴噺鐨勭幓鐠冿紝淇濊瘉澶ц溅涓婄殑鐜荤拑鎴愬浼�
int remainCount = templist.size() % totalLayer;
if (targetSlot == 930) {
- baseInfoList = templist.subList(0, totalLayer);
+ int tempSequence = templist.get(0).getHollowSequence();
+ List<T> resultList = new ArrayList<>();
+ for (int i = 0; i < templist.size(); i++) {
+ if (tempSequence == list.get(i).getHollowSequence()) {
+ resultList.add(templist.get(i));
+ } else {
+ break;
+ }
+ }
+ baseInfoList = resultList;
} else {
baseInfoList = templist.subList(0, templist.size() - remainCount);
}
--
Gitblit v1.8.0