From 84fc4a58b9fcb901a882945a2aa2281639dd4f6b Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 11 十二月 2024 14:33:18 +0800
Subject: [PATCH] #
---
zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java | 2 ++
zy-acs-manager/src/main/resources/application.yml | 3 +++
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java | 6 ++++++
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java | 3 ++-
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/LaneService.java | 39 +++++++++++++++++++++++++++++++++------
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MapService.java | 6 ++++++
6 files changed, 52 insertions(+), 7 deletions(-)
diff --git a/zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java b/zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java
index ed8155b..550cfab 100644
--- a/zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java
+++ b/zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java
@@ -47,4 +47,6 @@
public static final String MAP_FLOYD_MATRIX_FLAG = "MAP_FLOYD_MATRIX_FLAG";
+ public static final String MAP_LANE_DATA = "MAP_LANE_DATA";
+
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/LaneService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/LaneService.java
index de0feff..0ca23d9 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/LaneService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/LaneService.java
@@ -1,15 +1,20 @@
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.GsonUtils;
+import com.zy.acs.common.utils.RedisSupport;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.SnowflakeIdWorker;
import com.zy.acs.manager.core.domain.Lane;
+import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
import com.zy.acs.manager.manager.entity.Code;
+import com.zy.acs.manager.manager.enums.StatusType;
import com.zy.acs.manager.manager.service.CodeService;
import com.zy.acs.manager.manager.service.RouteService;
import com.zy.acs.manager.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.time.StopWatch;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -26,11 +31,13 @@
@Service
public class LaneService {
- private boolean initialized = Boolean.FALSE;
+ private final RedisSupport redis = RedisSupport.defaultRedisSupport;
- private final List<Lane> lanes = new ArrayList<>();
+ private List<Lane> lanes = new ArrayList<>();
private final Map<String, List<String>> adjacencyCodeMap = new HashMap<>();
+
+ private boolean initialized = Boolean.FALSE;
@Autowired
private CodeService codeService;
@@ -58,9 +65,31 @@
}
@PostConstruct
- public synchronized void init() {
+ public void init() {
+ Integer lev = MapDataDispatcher.MAP_DEFAULT_LEV;
+ String laneDataStr = redis.getValue(RedisConstant.MAP_LANE_DATA, String.valueOf(lev));
+ if (!Cools.isEmpty(laneDataStr)) {
+ this.lanes = GsonUtils.fromJsonToList(laneDataStr, Lane.class);
+ } else {
+
+ StopWatch stopWatch = new StopWatch();
+ stopWatch.start();
+
+ this.initLaneData();
+
+ stopWatch.stop();
+ log.info("the rcs system calculated lane data which has spend {} millisecond......", stopWatch.getTime());
+
+ redis.setValue(RedisConstant.MAP_LANE_DATA, String.valueOf(lev), GsonUtils.toJson(this.lanes));
+ }
+
+ System.out.println(GsonUtils.toJson(this.lanes));
+ }
+
+ private void initLaneData() {
log.info("the rcs system is starting to initialize lane data...");
- List<Code> codeList = codeService.list(new LambdaQueryWrapper<Code>().eq(Code::getStatus, 1));
+
+ List<Code> codeList = codeService.list(new LambdaQueryWrapper<Code>().eq(Code::getStatus, StatusType.ENABLE.val));
this.fillAdjacencyCodeMap(codeList);
@@ -76,8 +105,6 @@
this.initialized = Boolean.TRUE;
log.info("the lane data initialization has been completed in rcs system.");
-
- System.out.println(GsonUtils.toJson(this.lanes));
}
private void fillAdjacencyCodeMap(List<Code> codeList) {
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 c7c9dd0..d50cad9 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
@@ -17,6 +17,7 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.time.StopWatch;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.*;
@@ -29,6 +30,8 @@
@Component("mapService")
public class MapService {
+ @Value("${floyd.enable}")
+ private Boolean floydEnable;
@Autowired
private CodeService codeService;
@Autowired
@@ -92,6 +95,9 @@
* 瀵诲潃 ===>> Floyd
*/
public synchronized List<String> validFeasibility(Code startCode, Code endCode) {
+ if (!floydEnable) {
+ return Arrays.asList("00000001", "00000002", "00000003", "00000004", "00000005", "00000006");
+ }
int startIdx = floydNavigateService.codeIdx(startCode.getId());
int endIdx = floydNavigateService.codeIdx(endCode.getId());
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java
index 1051454..4f05838 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java
@@ -17,6 +17,7 @@
import com.zy.acs.manager.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@@ -35,6 +36,8 @@
private final RedisSupport redis = RedisSupport.defaultRedisSupport;
+ @Value("${floyd.enable}")
+ private Boolean floydEnable;
@Autowired
private CodeService codeService;
@Autowired
@@ -75,6 +78,9 @@
@SuppressWarnings("all")
@PostConstruct
public void generateMatrix() {
+ if (!floydEnable) {
+ return;
+ }
Integer lev = MapDataDispatcher.MAP_DEFAULT_LEV;
String floydHeaderMatrixStr = redis.getValue(RedisConstant.MAP_FLOYD_MATRIX_HEADER_FLAG, String.valueOf(lev));
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java
index 7087a22..d9329ae 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java
@@ -25,6 +25,7 @@
import com.zy.acs.manager.manager.entity.NavMap;
import com.zy.acs.manager.manager.entity.*;
import com.zy.acs.manager.manager.enums.AgvStsType;
+import com.zy.acs.manager.manager.enums.StatusType;
import com.zy.acs.manager.manager.enums.TaskStsType;
import com.zy.acs.manager.manager.mapper.NavMapMapper;
import com.zy.acs.manager.manager.service.*;
@@ -195,7 +196,7 @@
@PostMapping("/route/list")
public R routeList(@RequestParam(required = false) Long zoneId) {
List<MapRouteVo> result = new ArrayList<>();
- List<Route> routeList = routeService.list(new LambdaQueryWrapper<Route>().eq(Route::getStatus, 1));
+ List<Route> routeList = routeService.list(new LambdaQueryWrapper<Route>().eq(Route::getStatus, StatusType.ENABLE.val));
for (Route route : routeList) {
MapRouteVo vo = new MapRouteVo();
vo.setRouteId(route.getId());
diff --git a/zy-acs-manager/src/main/resources/application.yml b/zy-acs-manager/src/main/resources/application.yml
index 93fdf6e..240bdfe 100644
--- a/zy-acs-manager/src/main/resources/application.yml
+++ b/zy-acs-manager/src/main/resources/application.yml
@@ -65,6 +65,9 @@
timeout: 5000
index: 3
+floyd:
+ enable: false
+
eureka:
client:
enabled: false
--
Gitblit v1.9.1