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"; } 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) { 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()); 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)); 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()); zy-acs-manager/src/main/resources/application.yml
@@ -65,6 +65,9 @@ timeout: 5000 index: 3 floyd: enable: false eureka: client: enabled: false