#
vincentlu
13 小时以前 2dd519954c26753e707c83ac24fe7c3ffa6adb71
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
@@ -41,7 +41,7 @@
    private ScheduledExecutorService scheduler = null;
    private List<String> CODE_DATA_CACHE = new ArrayList<>();
    private List<String> ALL_CODE_DATA_CACHE = new ArrayList<>();
    private List<String> LOC_CODE_DATA_CACHE = new ArrayList<>();
@@ -73,6 +73,24 @@
    private ConfigService configService;
    @Autowired
    private AgvModelService agvModelService;
    @Autowired
    private AgvAreaDispatcher agvAreaDispatcher;
    @PostConstruct
    public void init() {
        int count = agvService.count(new LambdaQueryWrapper<Agv>().eq(Agv::getStatus, StatusType.ENABLE.val));
        if (count > 0) {
            this.scheduler = Executors.newScheduledThreadPool(count);
        }
        // init all code data
        List<Code> codeList = codeService.list(new LambdaQueryWrapper<Code>().eq(Code::getStatus, StatusType.ENABLE.val));
        this.ALL_CODE_DATA_CACHE = codeList.stream().map(Code::getData).distinct().collect(Collectors.toList());
        // int all loc code data
        List<Code> locCodeList = codeService.getAllLocCode();
        this.LOC_CODE_DATA_CACHE = locCodeList.stream().map(Code::getData).distinct().collect(Collectors.toList());
    }
    // pick & drop logic --------------------------------------------------
@@ -196,14 +214,19 @@
     * agv地图图标变化
     */
    public String getDestinationCode(String agvNo, AgvDetail agvDetail) {
        Code startCode = codeService.getCacheById(agvDetail.getRecentCode());
        Set<String> notInCodeSet = new HashSet<>();
        Long agvId = agvDetail.getAgvId();
        Collections.shuffle(CODE_DATA_CACHE);
        List<String> codeList = null;
        if (agvAreaDispatcher.isAgvExistsInAnyArea(agvId)) {
            codeList = agvAreaDispatcher.getCodesByAgvId(agvId);
        } else {
            codeList = ALL_CODE_DATA_CACHE;
        }
        Collections.shuffle(codeList);
        for (String endCodeData : CODE_DATA_CACHE) {
        for (String endCodeData : codeList) {
            if (notInCodeSet.contains(endCodeData)) { continue; }
            Code endCode = codeService.getCacheByData(endCodeData);
@@ -219,7 +242,7 @@
            }
        }
        return CODE_DATA_CACHE.stream().findFirst().orElse(null);
        return codeList.stream().findFirst().orElse(null);
    }
    // ---------------------------------------------------------------------------
@@ -273,22 +296,6 @@
            log.error("未能成功停止AGV " + agvNo + " 的跑库任务。");
            return R.error("未能成功停止AGV " + agvNo + " 的跑库任务。");
        }
    }
    @PostConstruct
    public void init() {
        int count = agvService.count(new LambdaQueryWrapper<Agv>().eq(Agv::getStatus, StatusType.ENABLE.val));
        if (count > 0) {
            this.scheduler = Executors.newScheduledThreadPool(count);
        }
        // init all code data
        List<Code> codeList = codeService.list(new LambdaQueryWrapper<Code>().eq(Code::getStatus, StatusType.ENABLE.val));
        this.CODE_DATA_CACHE = codeList.stream().map(Code::getData).distinct().collect(Collectors.toList());
        // int all loc code data
        List<Code> locCodeList = codeService.getAllLocCode();
        this.LOC_CODE_DATA_CACHE = locCodeList.stream().map(Code::getData).distinct().collect(Collectors.toList());
    }
    @PreDestroy