From 71a5ae03389119dc6975d7cfb87e63601f3c5305 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 02 四月 2026 16:52:22 +0800
Subject: [PATCH] #算法优化

---
 src/main/java/com/zy/asrs/service/impl/BasMapEditorServiceImpl.java |   17 ++++++++++++++---
 1 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/BasMapEditorServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasMapEditorServiceImpl.java
index 77f6936..193d7f6 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasMapEditorServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasMapEditorServiceImpl.java
@@ -19,6 +19,7 @@
 import com.zy.asrs.service.BasStationService;
 import com.zy.asrs.service.DeviceConfigService;
 import com.zy.asrs.utils.MapExcelUtils;
+import com.zy.common.utils.NavigateSolution;
 import com.zy.common.utils.RedisUtil;
 import com.zy.core.enums.RedisKeyType;
 import com.zy.core.enums.SlaveType;
@@ -111,7 +112,7 @@
             persistFloorMap(lev, storedData, toFreeEditorDoc(lev, storedData));
         }
         rebuildDeviceAndStationSync();
-        clearMapCaches();
+        clearMapCaches(levList);
     }
 
     @Override
@@ -121,7 +122,7 @@
         List<List<HashMap<String, Object>>> storedData = compileToStoredMapData(normalizedDoc);
         persistFloorMap(normalizedDoc.getLev(), storedData, normalizedDoc);
         rebuildDeviceAndStationSync();
-        clearMapCaches();
+        clearMapCaches(Collections.singletonList(normalizedDoc.getLev()));
     }
 
     private void persistFloorMap(Integer lev,
@@ -977,9 +978,19 @@
         return JSON.toJSONString(list, SerializerFeature.DisableCircularReferenceDetect);
     }
 
-    private void clearMapCaches() {
+    private void clearMapCaches(List<Integer> levList) {
         redisUtil.del(RedisKeyType.LOC_MAP_BASE.key);
         redisUtil.del(RedisKeyType.LOC_MAST_MAP_LIST.key);
+        if (levList == null || levList.isEmpty()) {
+            return;
+        }
+        LinkedHashSet<Integer> distinctLevSet = new LinkedHashSet<>(levList);
+        for (Integer lev : distinctLevSet) {
+            if (lev == null) {
+                continue;
+            }
+            NavigateSolution.refreshMapCache(lev);
+        }
     }
 
     private String normalizeType(String type) {

--
Gitblit v1.9.1