#
luxiaotao1123
2024-11-01 1cc1d0c34335555f1ee6c8f2e49ee76e5af74649
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -243,7 +243,6 @@
                    String jamAgvNo = jamVehicleList.get(0);
                    if (mapDataDispatcher.queryCodeListFromDynamicNode(null, jamAgvNo).size() > 1 && pathList.size() <= MIN_SLICE_PATH_LENGTH) {
                        pathList.clear();
//                        return pathList;
                    }
                }
@@ -479,35 +478,31 @@
     * avoidPathList include wave node and dynamic node
     */
    private boolean notifyVehicleAvoid(String agvNo, String agvPosCode, List<String> avoidPathList, String sponsor, Jam jam) {
        assert avoidPathList.size() >= 2;
        Agv agv = agvService.selectByUuid(agvNo);
        if (!Cools.isEmpty(segmentService.getByAgvAndState(agv.getId(), SegmentStateType.RUNNING.toString()))) {
            log.warn("{}号车辆避让失败,存在进行中任务!!!", agvNo);
            return false;
        }
        int[] startMapIdx = mapDataDispatcher.getCodeMatrixIdx(null, agvPosCode);
        RetreatNavigateNode startNode = new RetreatNavigateNode(startMapIdx[0], startMapIdx[1], agvPosCode);
        assert avoidPathList.size() >= 2;
        RetreatNavigateNode finalNode = retreatNavigateService.execute(agvNo, startNode, avoidPathList, sponsor, jam);
        if (null == finalNode) {
            log.warn("{}号车辆避让失败,检索避让点失败!!!", agvNo);
            return false;
        }
        Date now = new Date();
        String endCodeData = finalNode.getCodeData();
        Agv agv = agvService.selectByUuid(agvNo);
        Code endCode = codeService.selectByData(endCodeData);
        jam.setAvoCode(endCode.getId());
        if (!Cools.isEmpty(segmentService.getByAgvAndState(agv.getId(), SegmentStateType.RUNNING.toString()))) {
            log.warn("{}号车辆避让失败,存在进行中任务!!!", agvNo);
            return false;
        }
        List<Segment> waitingSegList = segmentService.getByAgvAndState(agv.getId(), SegmentStateType.WAITING.toString());
        if (!Cools.isEmpty(waitingSegList)) {
            // revert
            Date now = new Date();
            for (Segment seg : waitingSegList) {
                seg.setState(SegmentStateType.INIT.toString());
                seg.setUpdateTime(now);