From 819bef1aeacf77eaaac809f87971db1056d18ee5 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期四, 14 十一月 2024 13:57:55 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java | 17 ++++++++++++++--- 1 files changed, 14 insertions(+), 3 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java index fe6f6da..428c9f0 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java @@ -55,6 +55,8 @@ @Autowired private MainService mainService; @Autowired + private MainLockWrapService mainLockWrapService; + @Autowired private MapService mapService; @Autowired private MapDataDispatcher mapDataDispatcher; @@ -91,6 +93,7 @@ if (!Cools.isEmpty(waitingSegList)) { for (Segment waitingSeg : waitingSegList) { if (!waitingSeg.getId().equals(segment.getId())) { + log.error("AGV[{}] 浠诲姟寮傚父锛屾湇鍔″櫒閿欒锛侊紒锛�", agv.getUuid()); return; } } @@ -150,7 +153,7 @@ insertSeg.setPosType(TaskPosDto.PosType.MOVE.toString()); insertSeg.setState(SegmentStateType.WAITING.toString()); if (!segmentService.save(insertSeg)) { - log.error("Segment [{}] 淇濆瓨澶辫触 锛侊紒锛�", segment.getTravelId() + " - " + segment.getSerial()); + log.error("Segment [{}] failed to save 锛侊紒锛�", segment.getTravelId() + " - " + segment.getSerial()); } segmentList.add(insertSeg); @@ -217,9 +220,17 @@ if (!pathList.get(pathList.size() - 1).equals(endCode.getData())) { assert !Cools.isEmpty(blockVehicleList); - boolean hasUnavoidableBlocks = blockVehicleList.stream().anyMatch(blockVehicleDto -> !blockVehicleDto.isAvoidable()); + boolean hasUnavoidableBlocks = blockVehicleList.stream().anyMatch(blockVehicleDto -> !blockVehicleDto.isAvoidable()); if (hasUnavoidableBlocks && pathList.size() <= MIN_SLICE_PATH_LENGTH) { log.info("AGV[{}] waiting in place, because the path list is too short...", agvNo); + pathList.clear(); + } + + boolean hasCycleJam = blockVehicleList.stream().anyMatch( + blockVehicleDto -> null != jamService.getCycleJam(agv.getId(), segment.getId(), blockVehicleDto.getVehicle()) + ); + if (hasCycleJam) { + log.info("AGV[{}] waiting in place, because has cycle jam...", agvNo); pathList.clear(); } } @@ -441,7 +452,7 @@ } else { - return mainService.buildMinorTask(agv, null, TaskTypeType.MOVE, endCodeData); + return mainLockWrapService.buildMinorTask(agv, null, TaskTypeType.MOVE, endCodeData); } return true; -- Gitblit v1.9.1