From 3e76332bf67de55be83a8ef4cd893a2b7b72b7d9 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期三, 08 一月 2025 14:48:50 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java | 35 ++++++++++++----------------------- 1 files changed, 12 insertions(+), 23 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java index 0451ee4..1b6d1d4 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java @@ -1,19 +1,16 @@ package com.zy.acs.manager.core.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.zy.acs.common.constant.RedisConstant; import com.zy.acs.common.utils.RedisSupport; import com.zy.acs.common.utils.Utils; import com.zy.acs.framework.common.Cools; import com.zy.acs.manager.common.utils.MapDataUtils; import com.zy.acs.manager.core.constant.MapDataConstant; -import com.zy.acs.manager.core.domain.Lane; import com.zy.acs.manager.core.service.astart.*; import com.zy.acs.manager.core.service.astart.domain.DynamicNode; import com.zy.acs.manager.core.utils.RouteGenerator; import com.zy.acs.manager.manager.entity.Code; import com.zy.acs.manager.manager.entity.Jam; -import com.zy.acs.manager.manager.entity.Route; import com.zy.acs.manager.manager.entity.Segment; import com.zy.acs.manager.manager.enums.JamStateType; import com.zy.acs.manager.manager.service.*; @@ -39,8 +36,6 @@ @Autowired private CodeService codeService; - @Autowired - private RouteService routeService; @Autowired private MapDataDispatcher mapDataDispatcher; @Autowired @@ -113,7 +108,7 @@ if (!Cools.isEmpty(blackList) && blackList.contains(otherWave)) { continue label; } - if (1 < mapDataDispatcher.queryCodeListFromDynamicNode(lev, otherWave).size()) { + if (1 < mapService.queryCodeListFromDynamicNode(lev, otherWave).size()) { phaseSecond = false; // there is a running way continue label; } else { @@ -124,29 +119,26 @@ // lane if (pointOfTurn) { - Lane lane = laneService.search(node.getCodeData()); - if (null != lane) { + List<int[]> laneCodeIdxList = laneService.getLaneCodeIdxList(node.getCodeData()); + if (!Cools.isEmpty(laneCodeIdxList)) { Set<String> lanVehicleSet = new HashSet<>(); - for (String laneCodeData : lane.getCodes()) { + for (int[] codeMatrixIdx : laneCodeIdxList) { // overlap with sponsor + String laneCodeData = codeMatrix[codeMatrixIdx[0]][codeMatrixIdx[1]]; if (avoidPathList.contains(laneCodeData)) { lanVehicleSet.add(sponsor); } - int[] laneCodeMatrixIdx = mapDataDispatcher.getCodeMatrixIdx(null, laneCodeData); - // scan dynamicMatrix or WaveMatrix - DynamicNode laneDynamicNode = dynamicMatrix[laneCodeMatrixIdx[0]][laneCodeMatrixIdx[1]]; + DynamicNode laneDynamicNode = dynamicMatrix[codeMatrixIdx[0]][codeMatrixIdx[1]]; String laneVehicle = laneDynamicNode.getVehicle(); assert !laneVehicle.equals(DynamicNodeType.BLOCK.val); if (!laneVehicle.equals(DynamicNodeType.ACCESS.val)) { if (!laneVehicle.equals(agvNo)) { lanVehicleSet.add(laneVehicle); -// redis.setObject(RedisConstant.AGV_TO_STANDBY_FLAG, laneVehicle, true, 30); } } } - if (lanVehicleSet.size() + 1 > maxAgvCountInLane) { phaseSecond = false; // there is a running way continue; @@ -155,6 +147,7 @@ weight += WEIGHT_CALC_FACTOR * 2; } } + } Code code = codeService.selectByData(node.getCodeData()); @@ -224,24 +217,20 @@ for (RetreatNavigateNode node : neighborNodes) { // lane - Lane lane = laneService.search(node.getCodeData()); - if (null != lane) { + List<int[]> laneCodeIdxList = laneService.getLaneCodeIdxList(node.getCodeData()); + if (!Cools.isEmpty(laneCodeIdxList)) { Set<String> lanVehicleSet = new HashSet<>(); - for (String laneCodeData : lane.getCodes()) { - int[] laneCodeMatrixIdx = mapDataDispatcher.getCodeMatrixIdx(null, laneCodeData); - // scan dynamicMatrix or WaveMatrix - DynamicNode laneDynamicNode = dynamicMatrix[laneCodeMatrixIdx[0]][laneCodeMatrixIdx[1]]; + for (int[] codeMatrixIdx : laneCodeIdxList) { + DynamicNode laneDynamicNode = dynamicMatrix[codeMatrixIdx[0]][codeMatrixIdx[1]]; String laneVehicle = laneDynamicNode.getVehicle(); assert !laneVehicle.equals(DynamicNodeType.BLOCK.val); if (!laneVehicle.equals(DynamicNodeType.ACCESS.val)) { if (!laneVehicle.equals(agvNo)) { lanVehicleSet.add(laneVehicle); -// redis.setObject(RedisConstant.AGV_TO_STANDBY_FLAG, laneVehicle, true, 30); } } } - if (lanVehicleSet.size() + 1 > maxAgvCountInLane) { continue; } @@ -275,7 +264,7 @@ if (!Cools.isEmpty(blackList) && blackList.contains(otherWave)) { continue; } - if (1 < mapDataDispatcher.queryCodeListFromDynamicNode(lev, otherWave).size()) { + if (1 < mapService.queryCodeListFromDynamicNode(lev, otherWave).size()) { if (null != availablePointOfTurn && actualLanesOfTurn > 0) { actualLanesOfTurn --; -- Gitblit v1.9.1