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