From 68ed198ddc082ef02f85f6d946af4cd7be0d0ed1 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 23 十二月 2024 10:39:03 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/MapDataDispatcher.java |   29 ++++++++++++++++++++++++++++-
 1 files changed, 28 insertions(+), 1 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/MapDataDispatcher.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/MapDataDispatcher.java
index 62dc062..20fedf8 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/MapDataDispatcher.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/MapDataDispatcher.java
@@ -37,6 +37,8 @@
 
     private String[][] cdaMatrix;
 
+    public Map<String, Boolean> routeCdaMap = new HashMap<>();
+
     private final CodeService codeService;
 
     private final RouteService routeService;
@@ -330,22 +332,47 @@
         return mapMatrix;
     }
 
+    public boolean validRouteCdaKey(String routeCdaKey) {
+        if (Cools.isEmpty(routeCdaKey)) {
+            return false;
+        }
+        Boolean result = this.routeCdaMap.get(routeCdaKey);
+        if (null == result) {
+            return false;
+        }
+        return result;
+    }
+
     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);
+        Set<String> routeCdaKeys = redis.getMapKeys(RedisConstant.AGV_MAP_ROUTE_CDA_HASH_FLAG);
+
         List<Route> routeList = routeService.list(new LambdaQueryWrapper<Route>().eq(Route::getStatus, StatusType.ENABLE.val));
-        if (routeKeys.size() == routeList.size()) {
+        if (routeKeys.size() == routeList.size() && routeKeys.size() == routeCdaKeys.size()) {
+            for (String routeCdaKey : routeCdaKeys) {
+                this.routeCdaMap.put(routeCdaKey, Boolean.TRUE);
+            }
             return;
         }
         for (Route route : routeList) {
             Code startCode = codeService.getById(route.getStartCode());
+            int[] startCodeIdx = getCodeMatrixIdx(lev, startCode.getData());
             Code endCode = codeService.getById(route.getEndCode());
+            int[] codeMatrixIdx = getCodeMatrixIdx(lev, endCode.getData());
+
             String routeKey = RouteGenerator.generateRouteKey(startCode.getData(), endCode.getData());
             if (Cools.isEmpty(routeKey)) {
                 continue;
             }
             redis.setMap(RedisConstant.AGV_MAP_ROUTE_HASH_FLAG, routeKey, Boolean.TRUE);
+
+            String routeCdaKey = RouteGenerator.generateRouteCdaKey(startCodeIdx, codeMatrixIdx);
+            if (Cools.isEmpty(routeCdaKey)) {
+                continue;
+            }
+            redis.setMap(RedisConstant.AGV_MAP_ROUTE_CDA_HASH_FLAG, routeCdaKey, Boolean.TRUE);
         }
     }
 

--
Gitblit v1.9.1