#
luxiaotao1123
2024-11-14 819bef1aeacf77eaaac809f87971db1056d18ee5
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;