#
vincentlu
2025-12-18 830d326b37c4a5d13ae55678d5729993908f9c90
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
@@ -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.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 --------------------------------------------------
@@ -201,9 +219,11 @@
        Set<String> notInCodeSet = new HashSet<>();
        Collections.shuffle(CODE_DATA_CACHE);
//        Collections.shuffle(CODE_DATA_CACHE);
        List<String> codeList = agvAreaDispatcher.getCodesByAgvId(agvDetail.getAgvId());
        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 +239,7 @@
            }
        }
        return CODE_DATA_CACHE.stream().findFirst().orElse(null);
        return codeList.stream().findFirst().orElse(null);
    }
    // ---------------------------------------------------------------------------
@@ -273,22 +293,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