#
vincentlu
12 小时以前 d58a5160d46bd0f83fdd73e9e49061b33e1d241b
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -201,7 +201,7 @@
            //        ArrayList<List<TaskPosDto>> list = JSON.parseObject(travel.getTaskContent(), new TypeReference<ArrayList<List<TaskPosDto>>>() {});
            // * sync wave scope
            if (!avoidWaveCalculator.calcWaveScope()) {
            if (!avoidWaveCalculator.calcWaveScope(agvModelService.getByAgvId(agv.getId()))) {
                log.error("failed to calculate avoid wave matrix ...");
                return;
            }
@@ -247,7 +247,7 @@
                insertSeg.setPosType(TaskPosDto.PosType.MOVE.toString());
                insertSeg.setState(SegmentStateType.WAITING.toString());
                if (!segmentService.save(insertSeg)) {
                    log.error("Segment [{}] failed to save !!!", segment.getTravelId() + " - " + segment.getSerial());
                    log.error("Segment [{}] failed to save !!!", insertSeg.getTravelId() + " - " + insertSeg.getSerial());
                }
                segmentList.add(insertSeg);
@@ -287,6 +287,7 @@
            log.error("TrafficService.trigger", e);
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            throw new RuntimeException("trigger method caught an exception", e);
        }
    }
@@ -671,7 +672,7 @@
                            // the wave of first node
                            Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(
                                    agvModelService.getById(jamAgv.getAgvModel()).getDiameter(),
                                    agvModelService.getByAgvId(jamAgv.getId()).getDiameter(),
                                    MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR
                            );
                            List<String> waveCodeList = mapService.getWaveScopeByCode(lev, firstCodeNode, avoidDistance)
@@ -696,8 +697,13 @@
            if (!blockVehicleDto.isAvoidable()) {
                continue;
            }
            Long agvId = agvService.getAgvId(blockVehicleDto.getVehicle());
            // 当前vehicle正在进行避让作业
            if (!Cools.isEmpty(jamService.getUnfinishedAvoSegByAvo(blockVehicleDto.getVehicle(), null))) {
            if (!Cools.isEmpty(jamService.getUnfinishedAvoSegByAvo(agvId, null))) {
                continue;
            }
            // 当前vehicle正在进行滚筒输送线等待
            if (segmentService.isRollerWaiting(agvId)) {
                continue;
            }
            return blockVehicleDto.getVehicle();