From e7cc0981a18fa322642dadddf7043623c83d676f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 07 一月 2025 14:43:35 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/LaneService.java | 38 ++++++++++++++++++++++++++++++++++++--
1 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/LaneService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/LaneService.java
index 12eb100..cbfedb2 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/LaneService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/LaneService.java
@@ -37,6 +37,8 @@
private final Map<String, List<String>> adjacencyCodeMap = new HashMap<>();
+ private final Map<String, List<int[]>> laneCodeIdxMap = new HashMap<>();
+
private boolean initialized = Boolean.FALSE;
@Autowired
@@ -47,6 +49,10 @@
private SnowflakeIdWorker snowflakeIdWorker;
@Autowired
private ConfigService configService;
+ @Autowired
+ private MapDataDispatcher mapDataDispatcher;
+
+ // service -------------------------------------------------------
public Boolean isInitialized() {
return this.initialized;
@@ -64,13 +70,25 @@
return null;
}
+ public List<int[]> getLaneCodeIdxList(String codeData) {
+ if (Cools.isEmpty(codeData)) {
+ return new ArrayList<>();
+ }
+ List<int[]> list = this.laneCodeIdxMap.get(codeData);
+ if (null == list) {
+ return new ArrayList<>();
+ }
+ return list;
+ }
+
+ // launcher -------------------------------------------------------
+
@PostConstruct
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);
- this.initialized = Boolean.TRUE;
} else {
StopWatch stopWatch = new StopWatch();
@@ -84,6 +102,8 @@
redis.setValue(RedisConstant.MAP_LANE_DATA, String.valueOf(lev), GsonUtils.toJson(this.lanes));
}
+ this.generateLaneCodeIdx(null);
+ this.initialized = Boolean.TRUE;
// System.out.println(GsonUtils.toJson(this.lanes));
}
@@ -104,7 +124,6 @@
this.generateLaneHash();
- this.initialized = Boolean.TRUE;
log.info("the lane data initialization has been completed in rcs system.");
}
@@ -327,4 +346,19 @@
return sb.toString();
}
+ public void generateLaneCodeIdx(Integer lev) {
+ log.info("There is initializing Lane CodeIdxMap......");
+ long l = System.currentTimeMillis();
+ if (Cools.isEmpty(this.lanes)) {
+ return;
+ }
+ for (Lane lane : this.lanes) {
+ List<int[]> codeIdxList = new ArrayList<>();
+ for (String code : lane.getCodes()) {
+ int[] codeMatrixIdx = mapDataDispatcher.getCodeMatrixIdx(lev, code);
+ codeIdxList.add(codeMatrixIdx);
+ this.laneCodeIdxMap.put(code, codeIdxList);
+ }
+ }
+ }
}
--
Gitblit v1.9.1