From 723e341c1872a5a34fd5107b8231f209ae860ac3 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 09 十一月 2024 16:20:13 +0800
Subject: [PATCH] #
---
/dev/null | 33 -----------
zy-acs-common/src/main/java/com/zy/acs/common/constant/RedisConstant.java | 6 ++
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java | 77 +++++++++++++++++--------
zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java | 5 -
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java | 2
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java | 7 +-
6 files changed, 62 insertions(+), 68 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 4d8f80c..db6e533 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
@@ -37,4 +37,10 @@
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";
+
+ public static final String MAP_FLOYD_MATRIX_PATH_FLAG = "MAP_FLOYD_MATRIX_PATH_FLAG";
+
+ public static final String MAP_FLOYD_MATRIX_FLAG = "MAP_FLOYD_MATRIX_FLAG";
+
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DispatcherTestController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DispatcherTestController.java
deleted file mode 100644
index 4c85e56..0000000
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/DispatcherTestController.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.zy.acs.manager.core;
-
-import com.zy.acs.framework.common.R;
-import com.zy.acs.manager.core.service.LaneService;
-import com.zy.acs.manager.manager.entity.Task;
-import com.zy.acs.manager.manager.service.TaskService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-/**
- * Created by vincent on 10/24/2024
- */
-@RestController
-@RequestMapping("/test")
-public class DispatcherTestController {
-
- @Autowired
- private LaneService laneService;
- @Autowired
- private TaskService taskService;
-
- @GetMapping("/lanes")
- public R getLanes() {
- List<Task> taskList = taskService.findRunningTasksByLaneHash("4b81ebaedd8ed7662d37b63e20dec5dd089d4c32136b8826c6323839fe51938e");
-
- return R.ok().add(laneService.search("00000010"));
- }
-
-}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
index 63d395e..53bd72b 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
@@ -8,10 +8,7 @@
import com.zy.acs.framework.common.SnowflakeIdWorker;
import com.zy.acs.manager.common.domain.param.HandlerPublishParam;
import com.zy.acs.manager.common.exception.BusinessException;
-import com.zy.acs.manager.core.service.AvoidWaveCalculator;
-import com.zy.acs.manager.core.service.MainService;
-import com.zy.acs.manager.core.service.ThreadPoolRegulator;
-import com.zy.acs.manager.core.service.TrafficService;
+import com.zy.acs.manager.core.service.*;
import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
import com.zy.acs.manager.manager.entity.*;
import com.zy.acs.manager.manager.enums.ActionStsType;
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/PatrolService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
similarity index 97%
rename from zy-acs-manager/src/main/java/com/zy/acs/manager/core/PatrolService.java
rename to zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
index e647b0c..3a017d3 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/PatrolService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
@@ -1,9 +1,8 @@
-package com.zy.acs.manager.core;
+package com.zy.acs.manager.core.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.acs.common.utils.RedisSupport;
import com.zy.acs.framework.common.R;
-import com.zy.acs.manager.core.service.MainService;
-import com.zy.acs.manager.core.service.MapService;
import com.zy.acs.manager.manager.entity.Agv;
import com.zy.acs.manager.manager.entity.AgvDetail;
import com.zy.acs.manager.manager.entity.Code;
@@ -36,7 +35,7 @@
private static final int SCHEDULE_TIME_INTERVAL = 1;
private static final Map<String, ScheduledFuture<?>> AGV_PATROL_MAP = new ConcurrentHashMap<>();
-
+ private final RedisSupport redis = RedisSupport.defaultRedisSupport;
private ScheduledExecutorService scheduler = null;
@Autowired
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 0e99caf..1051454 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
@@ -1,7 +1,13 @@
package com.zy.acs.manager.core.service.floyd;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
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.framework.common.Cools;
import com.zy.acs.manager.common.exception.BusinessException;
+import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
import com.zy.acs.manager.manager.entity.Code;
import com.zy.acs.manager.manager.entity.CodeGap;
import com.zy.acs.manager.manager.entity.Route;
@@ -26,6 +32,8 @@
public class FloydNavigateService {
public static final double INF = 999999.0;
+
+ private final RedisSupport redis = RedisSupport.defaultRedisSupport;
@Autowired
private CodeService codeService;
@@ -67,41 +75,58 @@
@SuppressWarnings("all")
@PostConstruct
public void generateMatrix() {
- log.info("銆怓LOYD銆戞鍦ㄨ绠楃煩闃垫暟鎹�......");
- List<Code> codeList = codeService.list(new LambdaQueryWrapper<Code>().eq(Code::getStatus, 1).eq(Code::getDeleted, false));
+ Integer lev = MapDataDispatcher.MAP_DEFAULT_LEV;
- int size = codeList.size();
+ String floydHeaderMatrixStr = redis.getValue(RedisConstant.MAP_FLOYD_MATRIX_HEADER_FLAG, String.valueOf(lev));
+ String floydPathMatrixStr = redis.getValue(RedisConstant.MAP_FLOYD_MATRIX_PATH_FLAG, String.valueOf(lev));
+ String floydMatrixStr = redis.getValue(RedisConstant.MAP_FLOYD_MATRIX_FLAG, String.valueOf(lev));
- matrixHeader = new ArrayList<>(size);
- adjacencyMatrix = new Double[size][size];
- pathMatrix = new int[size][size];
+ if (!Cools.isEmpty(floydMatrixStr) && !Cools.isEmpty(floydPathMatrixStr) && !Cools.isEmpty(floydHeaderMatrixStr)) {
+ this.matrixHeader = JSON.parseObject(floydHeaderMatrixStr, new TypeReference<ArrayList<Long>>() {});
+ this.pathMatrix = JSON.parseObject(floydPathMatrixStr, int[][].class);
+ this.floydMatrix = JSON.parseObject(floydMatrixStr, Double[][].class);
+ } else {
- for (int i = 0; i < size; i++) {
- Code startCode = codeList.get(i);
- matrixHeader.add(startCode.getId());
- for (int j = 0; j < size; j++) {
- Code endCode = codeList.get(j);
- Route route = routeService.findByCodeOfBoth(startCode.getId(), endCode.getId());
- CodeGap codeGap = codeGapService.findByCodeOfBoth(startCode.getId(), endCode.getId());
+ log.info("銆怓LOYD銆戞鍦ㄨ绠楃煩闃垫暟鎹�......");
+ List<Code> codeList = codeService.list(new LambdaQueryWrapper<Code>().eq(Code::getStatus, 1).eq(Code::getDeleted, false));
- double distance = INF;
- int path = -1;
+ int size = codeList.size();
- if (null != route && null != codeGap && codeGap.getDistance() > 0) {
- if (i != j) {
- distance = codeGap.getDistance();
+ matrixHeader = new ArrayList<>(size);
+ adjacencyMatrix = new Double[size][size];
+ pathMatrix = new int[size][size];
+
+ for (int i = 0; i < size; i++) {
+ Code startCode = codeList.get(i);
+ matrixHeader.add(startCode.getId());
+ for (int j = 0; j < size; j++) {
+ Code endCode = codeList.get(j);
+ Route route = routeService.findByCodeOfBoth(startCode.getId(), endCode.getId());
+ CodeGap codeGap = codeGapService.findByCodeOfBoth(startCode.getId(), endCode.getId());
+
+ double distance = INF;
+ int path = -1;
+
+ if (null != route && null != codeGap && codeGap.getDistance() > 0) {
+ if (i != j) {
+ distance = codeGap.getDistance();
+ }
+ path = i;
}
- path = i;
+
+
+ adjacencyMatrix[i][j] = distance;
+
+ pathMatrix[i][j] = path;
}
-
-
- adjacencyMatrix[i][j] = distance;
-
- pathMatrix[i][j] = path;
}
- }
- floydMatrix = this.floydAlgorithm(adjacencyMatrix);
+ floydMatrix = this.floydAlgorithm(adjacencyMatrix);
+
+ redis.setValue(RedisConstant.MAP_FLOYD_MATRIX_HEADER_FLAG, String.valueOf(lev), JSON.toJSONString(matrixHeader));
+ redis.setValue(RedisConstant.MAP_FLOYD_MATRIX_PATH_FLAG, String.valueOf(lev), JSON.toJSONString(pathMatrix));
+ redis.setValue(RedisConstant.MAP_FLOYD_MATRIX_FLAG, String.valueOf(lev), JSON.toJSONString(floydMatrix));
+ }
}
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 1843570..29aa88f 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
@@ -13,7 +13,7 @@
import com.zy.acs.manager.common.domain.MapDto;
import com.zy.acs.manager.common.domain.MapRouteDto;
import com.zy.acs.manager.common.exception.BusinessException;
-import com.zy.acs.manager.core.PatrolService;
+import com.zy.acs.manager.core.service.PatrolService;
import com.zy.acs.manager.core.domain.BackpackDto;
import com.zy.acs.manager.core.service.MapService;
import com.zy.acs.manager.core.service.floyd.FloydNavigateService;
--
Gitblit v1.9.1