From 2bdbfd1ac24d4e9a87daf6fb8b99ec32264d5752 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 21 十二月 2024 11:25:27 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/astart/MapDataDispatcher.java |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 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 711e78a..62dc062 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
@@ -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);
@@ -447,10 +466,11 @@
             if (Cools.isEmpty(codeList, vehicle)) {
                 return;
             }
+            long time = System.currentTimeMillis() / 1000;
             int serial = 1;
             for (String code : codeList) {
                 int[] node = getCodeMatrixIdx(lev, code);
-                dynamicMatrix[node[0]][node[1]] = new DynamicNode(vehicle, serial);
+                dynamicMatrix[node[0]][node[1]] = new DynamicNode(vehicle, serial, time);
                 serial++;
             }
         } else {

--
Gitblit v1.9.1