#
luxiaotao1123
2024-12-18 613b59f94870adb25b6dd1e8a1aba8cbb670288e
#
6个文件已修改
62 ■■■■ 已修改文件
zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/MapDataDispatcher.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/config/MapDataConfig.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/utils/RouteGenerator.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java
@@ -39,6 +39,8 @@
    public static final String AGV_MAP_ASTAR_WAVE_FLAG = "AGV_MAP_ASTAR_WAVE_FLAG";
    public static final String AGV_MAP_ROUTE_HASH_FLAG = "AGV_MAP_ROUTE_HASH_FLAG";
    public static final String AGV_TRAFFIC_JAM_FLAG = "AGV_TRAFFIC_JAM_FLAG";
    public static final String MAP_FLOYD_MATRIX_HEADER_FLAG = "MAP_FLOYD_MATRIX_HEADER_FLAG";
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/RetreatNavigateService.java
@@ -1,6 +1,7 @@
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;
@@ -9,6 +10,7 @@
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;
@@ -386,14 +388,11 @@
            nextNode.setCodeData(nextNodeCodeData);
            // 判断通过性
            Route route = routeService.findByCodeOfBoth(
                    codeService.selectByData(currentNodeCodeData).getId(),
                    codeService.selectByData(nextNodeCodeData).getId()
            );
            if (null == route) {
            String routeKey = RouteGenerator.generateRouteKey(currentNodeCodeData, nextNodeCodeData);
            Object routeVal = redis.getMap(RedisConstant.AGV_MAP_ROUTE_HASH_FLAG, routeKey);
            if (routeVal == null || !(Boolean) routeVal) {
                return null;
            }
        }
        return nextNode;
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/AStarNavigateService.java
@@ -1,11 +1,13 @@
package com.zy.acs.manager.core.service.astart;
import com.zy.acs.common.constant.RedisConstant;
import com.zy.acs.common.utils.RedisSupport;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.manager.common.utils.MapDataUtils;
import com.zy.acs.manager.core.domain.Lane;
import com.zy.acs.manager.core.service.LaneService;
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.Route;
import com.zy.acs.manager.manager.entity.Segment;
import com.zy.acs.manager.manager.service.CodeService;
@@ -245,11 +247,9 @@
            nextNode.setCodeData(nextNodeCodeData);
            // 判断通过性
            Route route = routeService.findByCodeOfBoth(
                    codeService.selectByData(currentNodeCodeData).getId(),
                    codeService.selectByData(nextNodeCodeData).getId()
            );
            if (null == route) {
            String routeKey = RouteGenerator.generateRouteKey(currentNodeCodeData, nextNodeCodeData);
            Object routeVal = redis.getMap(RedisConstant.AGV_MAP_ROUTE_HASH_FLAG, routeKey);
            if (routeVal == null || !(Boolean) routeVal) {
                return null;
            }
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/MapDataDispatcher.java
@@ -8,15 +8,15 @@
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;
import com.zy.acs.manager.manager.entity.Route;
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 lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -330,6 +330,25 @@
        return mapMatrix;
    }
    public synchronized void initRouteMap(Integer lev) {
        log.info("There is initializing Route Map......");
        lev = Optional.ofNullable(lev).orElse(MAP_DEFAULT_LEV);
        Set<String> routeKeys = redis.getMapKeys(RedisConstant.AGV_MAP_ROUTE_HASH_FLAG);
        List<Route> routeList = routeService.list(new LambdaQueryWrapper<Route>().eq(Route::getStatus, StatusType.ENABLE.val));
        if (routeKeys.size() == routeList.size()) {
            return;
        }
        for (Route route : routeList) {
            Code startCode = codeService.getById(route.getStartCode());
            Code endCode = codeService.getById(route.getEndCode());
            String routeKey = RouteGenerator.generateRouteKey(startCode.getData(), endCode.getData());
            if (Cools.isEmpty(routeKey)) {
                continue;
            }
            redis.setMap(RedisConstant.AGV_MAP_ROUTE_HASH_FLAG, routeKey, Boolean.TRUE);
        }
    }
    public synchronized String[][] initCodeMatrix(Integer lev) {
        log.info("There is initializing Code Matrix......");
        lev = Optional.ofNullable(lev).orElse(MAP_DEFAULT_LEV);
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/config/MapDataConfig.java
@@ -22,6 +22,7 @@
    public MapDataDispatcher getMapDataDispatcher() {
        MapDataDispatcher dispatcher = new MapDataDispatcher(codeService, routeService);
        String[][] codeMatrix = dispatcher.getCodeMatrix(null);
        dispatcher.initRouteMap(null);
        if (codeMatrix.length > 0) {
            dispatcher.getMapMatrix(null, null);
            dispatcher.getTurnMatrix(null);
zy-acs-manager/src/main/java/com/zy/acs/manager/core/utils/RouteGenerator.java
@@ -30,6 +30,17 @@
    @Autowired
    private CodeGapService codeGapService;
    public static String generateRouteKey(String codeData0, String codeData1) {
        if (Cools.isEmpty(codeData0, codeData1)) {
            return null;
        }
        if (codeData0.compareTo(codeData1) < 0) {
            return codeData0 + "-" + codeData1;
        } else {
            return codeData1 + "-" + codeData0;
        }
    }
    public List<String> generateRoutes(String[][] codeMatrix) {
        List<String> list = new ArrayList<>();