1
zhang
2025-12-31 8384040c3204f1bfa8fe30d264ef87b4d3b317ff
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)) {
@@ -109,8 +110,6 @@
//            String areaDataStr = redis.getValue(RedisConstant.MAP_AREA_DATA_FLAG, redisKey);
//
//        }
        System.out.println(1);
    }
    // checkout list of area by code data
@@ -123,6 +122,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 Collections.emptyList();
        }
        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 +167,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;
    }