From 02b49844456ea3e650edcf03d8d6a5bad6ba9aed Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 08 一月 2025 14:15:05 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/MapDataDispatcher.java | 41 --------------------
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java | 9 +---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java | 4 +-
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java | 6 +-
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java | 41 ++++++++++++++++++++
5 files changed, 48 insertions(+), 53 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java
index 5b5f82b..9d502e1 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MapDataWsScheduler.java
@@ -5,7 +5,7 @@
import com.zy.acs.manager.core.domain.BackpackDto;
import com.zy.acs.manager.core.domain.MapWsAgvVo;
import com.zy.acs.manager.core.domain.MapWsVo;
-import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
+import com.zy.acs.manager.core.service.MapService;
import com.zy.acs.manager.manager.entity.Agv;
import com.zy.acs.manager.manager.entity.AgvDetail;
import com.zy.acs.manager.manager.entity.AgvModel;
@@ -46,7 +46,7 @@
@Autowired
private CodeService codeService;
@Autowired
- private MapDataDispatcher mapDataDispatcher;
+ private MapService mapService;
@PostConstruct
public void init() {
@@ -90,7 +90,7 @@
vo.setBattery(agvDetail.getSoc());
vo.setError(agvDetail.realError());
- vo.setDynamicRoute(mapDataDispatcher.queryCodeListFromDynamicNode(null, agv.getUuid()));
+ vo.setDynamicRoute(mapService.queryCodeListFromDynamicNode(null, agv.getUuid()));
agvVos.add(vo);
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
index 976c8e0..cb34cda 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java
@@ -5,9 +5,11 @@
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.SortCodeDto;
import com.zy.acs.manager.core.domain.UnlockPathTask;
import com.zy.acs.manager.core.service.astart.*;
import com.zy.acs.manager.core.service.astart.domain.AStarNavigateNode;
+import com.zy.acs.manager.core.service.astart.domain.DynamicNode;
import com.zy.acs.manager.core.service.floyd.FloydNavigateService;
import com.zy.acs.manager.manager.entity.Code;
import com.zy.acs.manager.manager.entity.Loc;
@@ -21,9 +23,11 @@
import org.springframework.stereotype.Component;
import java.util.*;
+import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
+import java.util.stream.IntStream;
/**
* Created by vincent on 2023/6/14
@@ -364,4 +368,41 @@
return turnMatrixNode == TurnNodeType.TURN.val;
}
+ public List<String> queryCodeListFromDynamicNode(Integer lev, String nodeType) {
+ if (Cools.isEmpty(nodeType)) {
+ return new ArrayList<>();
+ }
+ lev = Optional.ofNullable(lev).orElse(MapDataDispatcher.MAP_DEFAULT_LEV);
+
+ DynamicNode[][] dynamicMatrix = mapDataDispatcher.getDynamicMatrix(lev);
+ String[][] codeMatrix = mapDataDispatcher.getCodeMatrix(lev);
+
+ // concurrent
+ ConcurrentLinkedQueue<SortCodeDto> codeList = new ConcurrentLinkedQueue<>();
+ IntStream.range(0, codeMatrix.length).parallel().forEach(i -> {
+ for (int j = 0; j < codeMatrix[i].length; j++) {
+ DynamicNode dynamicNode = dynamicMatrix[i][j];
+ if (nodeType.equals(dynamicNode.getVehicle())) {
+ codeList.add(new SortCodeDto(codeMatrix[i][j], dynamicNode.getSerial()));
+ }
+ }
+ });
+
+ // synchronize
+// List<SortCodeDto> codeList = new ArrayList<>();
+// for (int i = 0; i < codeMatrix.length; i++) {
+// for (int j = 0; j < codeMatrix[i].length; j++) {
+// DynamicNode dynamicNode = dynamicMatrix[i][j];
+// if (nodeType.equals(dynamicNode.getVehicle())) {
+// codeList.add(new SortCodeDto(codeMatrix[i][j], dynamicNode.getSerial()));
+// }
+// }
+// }
+
+ return codeList.stream()
+ .sorted(Comparator.comparingInt(SortCodeDto::getSerial))
+ .map(SortCodeDto::getCode)
+ .collect(Collectors.toList());
+ }
+
}
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 7e9cbc3..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 {
@@ -269,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 --;
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
index 86e42f5..31fa21a 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -441,7 +441,7 @@
List<String> otherWaveList = MapDataUtils.hasOtherWave(waveNodeList, agvNo);
if (!Cools.isEmpty(otherWaveList)) {
for (String otherWave : otherWaveList) {
- if (1 < mapDataDispatcher.queryCodeListFromDynamicNode(lev, otherWave).size()) {
+ if (1 < mapService.queryCodeListFromDynamicNode(lev, otherWave).size()) {
blockVehicleList.add(new BlockVehicleDto(otherWave, false));
} else {
blockVehicleList.add(new BlockVehicleDto(otherWave, true));
@@ -585,7 +585,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);
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/MapDataDispatcher.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/MapDataDispatcher.java
index 7d90822..f8a319b 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/MapDataDispatcher.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/MapDataDispatcher.java
@@ -6,7 +6,6 @@
import com.zy.acs.common.utils.RedisSupport;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.exception.CoolException;
-import com.zy.acs.manager.core.domain.SortCodeDto;
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;
@@ -17,9 +16,6 @@
import lombok.extern.slf4j.Slf4j;
import java.util.*;
-import java.util.concurrent.ConcurrentLinkedQueue;
-import java.util.stream.Collectors;
-import java.util.stream.IntStream;
/**
* Created by vincent on 6/6/2024
@@ -481,43 +477,6 @@
}
}
return codeMatrixIdxList;
- }
-
- public List<String> queryCodeListFromDynamicNode(Integer lev, String nodeType) {
- if (Cools.isEmpty(nodeType)) {
- return new ArrayList<>();
- }
- lev = Optional.ofNullable(lev).orElse(MAP_DEFAULT_LEV);
-
- DynamicNode[][] dynamicMatrix = getDynamicMatrix(lev);
- String[][] codeMatrix = this.getCodeMatrix(lev);
-
- // concurrent
- ConcurrentLinkedQueue<SortCodeDto> codeList = new ConcurrentLinkedQueue<>();
- IntStream.range(0, codeMatrix.length).parallel().forEach(i -> {
- for (int j = 0; j < codeMatrix[i].length; j++) {
- DynamicNode dynamicNode = dynamicMatrix[i][j];
- if (nodeType.equals(dynamicNode.getVehicle())) {
- codeList.add(new SortCodeDto(codeMatrix[i][j], dynamicNode.getSerial()));
- }
- }
- });
-
- // synchronize
-// List<SortCodeDto> codeList = new ArrayList<>();
-// for (int i = 0; i < codeMatrix.length; i++) {
-// for (int j = 0; j < codeMatrix[i].length; j++) {
-// DynamicNode dynamicNode = dynamicMatrix[i][j];
-// if (nodeType.equals(dynamicNode.getVehicle())) {
-// codeList.add(new SortCodeDto(codeMatrix[i][j], dynamicNode.getSerial()));
-// }
-// }
-// }
-
- return codeList.stream()
- .sorted(Comparator.comparingInt(SortCodeDto::getSerial))
- .map(SortCodeDto::getCode)
- .collect(Collectors.toList());
}
public void modifyDynamicMatrix(Integer lev, List<int[]> codeIdxList, String vehicle) {
--
Gitblit v1.9.1