#
luxiaotao1123
2025-01-08 aa6f20d98b5d8e18ae56f9562a78d403a5417b48
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -135,7 +135,9 @@
            // checkout path
            Code startCode = codeService.getById(agvDetail.getRecentCode());
            Code endCode = codeService.getById(endNode);
            long startTime = System.currentTimeMillis();
            List<String> pathList = this.checkoutPath(agv, startCode, endCode, segment);
            System.out.println("checkoutPath: " + (System.currentTimeMillis() - startTime));
            if (Cools.isEmpty(pathList)) {
                return;
            }
@@ -146,7 +148,7 @@
            String lastCodeData = pathList.get(pathList.size() - 1);
            if (!endCode.getData().equals(lastCodeData)) {
                // slice
                Code lastCode = codeService.selectByData(lastCodeData);
                Code lastCode = codeService.getCacheByData(lastCodeData);
//                if (pathList.size() <= MIN_SLICE_PATH_LENGTH) {
//                    return;
@@ -200,7 +202,9 @@
            mapService.lockPath(null, pathList, agv.getUuid());
            startTime = System.currentTimeMillis();
            mainService.generateAction(segment.getAgvId(), segmentList, pathList, now);
            System.out.println("generateAction: " + (System.currentTimeMillis() - startTime));
        } catch (Exception e) {
            log.error("TrafficService.trigger", e);
@@ -325,7 +329,7 @@
                                    List<Segment> waitingSegList = segmentService.getJustWaitingSeg(blockAgvId);
                                    if (null != waitingSegList
                                            && waitingSegList.stream().anyMatch(
                                            waitingSeg -> waitingSeg.getEndNode().equals(codeService.selectByData(blockAgvCode).getId())
                                            waitingSeg -> waitingSeg.getEndNode().equals(codeService.getCacheByData(blockAgvCode).getId())
                                    )) {
                                        maxJamTimeoutFactor = 1;
                                        break;
@@ -355,7 +359,7 @@
                    // handle jam timeout
                    if (null != maxJamTimeoutFactor) {
                        if (System.currentTimeMillis() - jam.getStartTime().getTime() > MapDataConstant.MAX_JAM_TIMEOUT * maxJamTimeoutFactor) {
                        if (System.currentTimeMillis() - jam.getStartTime().getTime() > (long) MapDataConstant.MAX_JAM_TIMEOUT * maxJamTimeoutFactor) {
                            if (!Cools.isEmpty(lockPathList)) {
@@ -441,7 +445,7 @@
                List<String> otherWaveList = MapDataUtils.hasOtherWave(waveNodeList, agvNo);
                if (!Cools.isEmpty(otherWaveList)) {
                    for (String otherWave : otherWaveList) {
                        if (1 < mapDataDispatcher.queryCodeListFromDynamicNode(lev, otherWave).size()) {
                        if (mapService.isWalkingByVehicle(lev, otherWave)) {
                            blockVehicleList.add(new BlockVehicleDto(otherWave, false));
                        } else {
                            blockVehicleList.add(new BlockVehicleDto(otherWave, true));
@@ -490,7 +494,7 @@
        }
        String endCodeData = finalNode.getCodeData();
        Code endCode = codeService.selectByData(endCodeData);
        Code endCode = codeService.getCacheByData(endCodeData);
        List<Segment> waitingSegList = segmentService.getByAgvAndState(agv.getId(), SegmentStateType.WAITING.toString());
        if (!Cools.isEmpty(waitingSegList)) {
@@ -585,7 +589,7 @@
                    List<String> list = GsonUtils.fromJsonToList(jam.getJamPath(), String.class);
                    Agv jamAgv = agvService.getById(jam.getJamAgv());
                    List<String> jamDynamicNodes = mapDataDispatcher.queryCodeListFromDynamicNode(lev, jamAgv.getUuid());
                    List<String> jamDynamicNodes = mapService.queryCodeListFromDynamicNode(lev, jamAgv.getUuid());
                    // jamDynamicNodes has sorted
                    String firstCodeNode = jamDynamicNodes.stream().findFirst().orElse(null);