#
vincentlu
昨天 590a64af2cdd33427ed8eda2eb983b07dd60ab8b
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;
    }