From 590a64af2cdd33427ed8eda2eb983b07dd60ab8b Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期五, 16 一月 2026 12:05:12 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AreaGovernService.java |   72 ++++++++++++++++++-----------------
 1 files changed, 37 insertions(+), 35 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AreaGovernService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AreaGovernService.java
index b8d9e60..1a45b15 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AreaGovernService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AreaGovernService.java
@@ -10,17 +10,15 @@
 import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
 import com.zy.acs.manager.manager.entity.Area;
 import com.zy.acs.manager.manager.enums.StatusType;
+import com.zy.acs.manager.manager.service.AreaAgvService;
 import com.zy.acs.manager.manager.service.AreaService;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.context.event.ApplicationReadyEvent;
-import org.springframework.context.event.EventListener;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import javax.annotation.PostConstruct;
+import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
 @Slf4j
@@ -37,9 +35,12 @@
     private AreaService areaService;
     @Autowired
     private MapDataDispatcher mapDataDispatcher;
+    @Autowired
+    private AreaAgvService areaAgvService;
 
     // launcher -------------------------------------------------------
-    @EventListener(ApplicationReadyEvent.class)
+//    @EventListener(ApplicationReadyEvent.class)
+    @PostConstruct
     public void init() {
         List<Area> areaList = areaService.list(new LambdaQueryWrapper<Area>().eq(Area::getStatus, StatusType.ENABLE.val));
         if (Cools.isEmpty(areaList)) {
@@ -84,33 +85,6 @@
             }
         }
 
-//        for (Map.Entry<Long, List<String>> entry : AREA_CODE.entrySet()) {
-//            Long areaId = entry.getKey();
-//            List<String> codeList = entry.getValue();
-//
-//            for (String code : codeList) {
-//                Set<Long> agvList = CODE_AGV.computeIfAbsent(code, k -> new HashSet<>());
-//                // todo AreaAGV( man_area_agv )
-//
-//
-//            }
-//        }
-
-
-//        for (Area area : areaList) {
-//            AreaShapeDto shapeDto = JSON.parseObject(area.getShapeData(), AreaShapeDto.class);
-//            MapPointDto start = shapeDto.getStart();
-//            MapPointDto end = shapeDto.getEnd();
-//
-//            List<String> codeList = this.findCodesInArea(start, end);
-//            log.info("codeList: {}", JSON.toJSONString(codeList));
-//
-//            String redisKey = area.getName() + (area.getZoneId() != null ? "_" + area.getZoneId() : "");
-//            String areaDataStr = redis.getValue(RedisConstant.MAP_AREA_DATA_FLAG, redisKey);
-//
-//        }
-
-        System.out.println(1);
     }
 
     // checkout list of area by code data
@@ -123,6 +97,32 @@
             }
         }
         return areaIds;
+    }
+
+    // checkout list of code by code data
+    public List<String> queryCodesByOneCode(String code) {
+        Set<String> codeSet = new HashSet<>();
+        for (Map.Entry<Long, List<String>> entry : AREA_CODE.entrySet()) {
+            List<String> codeList = entry.getValue();
+            if (!Cools.isEmpty(codeList) && codeList.contains(code)) {
+                codeSet.addAll(codeList);
+            }
+        }
+        return new ArrayList<>(codeSet);
+    }
+
+    // checkout list of code by area ids
+    public List<String> queryCodes(List<Long> areaIds) {
+        if (Cools.isEmpty(areaIds)) {
+            return new ArrayList<>();
+        }
+
+        Set<String> codeList = new HashSet<>();
+        for (Long areaId : areaIds) {
+            List<String> strings = AREA_CODE.get(areaId);
+            codeList.addAll(strings);
+        }
+        return new ArrayList<>(codeList);
     }
 
     // reset and set new area
@@ -142,8 +142,10 @@
     public Boolean removeArea(Long areaId) {
         if (null == areaId) { return false; }
         List<String> codeList = AREA_CODE.get(areaId);
-        AREA_CODE.get(areaId).clear();
-        AREA_CODE.remove(areaId);
+        if (!Cools.isEmpty(codeList)) {
+            AREA_CODE.get(areaId).clear();
+            AREA_CODE.remove(areaId);
+        }
         return Boolean.TRUE;
     }
 

--
Gitblit v1.9.1