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