#
vincentlu
2025-01-20 35da3ccc177f243a6d2257ae924b305ff1854095
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
@@ -91,26 +91,17 @@
            return;
        }
//        // 已使用背篓数量
//        Integer usedSlots = CoreCache.AGV_BACKPACK_USED_CACHE.get(agvId);
//        if (null == usedSlots) {
//            return;
//        }
//        AgvModel agvModel = agvModelService.getByAgvId(agvId);
//        // 背篓空闲数
//        int remainingBackpack = Math.max(agvModel.getBackpack() - usedSlots, 0);
        String destinationCodeData = null;
        JobType jobType = this.agvJobMap.get(agvNo);
        if (null == jobType) {
            this.agvJobMap.put(agvNo, JobType.LOC_PICK);
            CoreCache.AGV_BACKPACK_USED_CACHE.put(agvId, 0);
            jobType = JobType.LOC_PICK;
        }
        String destinationCodeData = null;
        switch (jobType) {
            case LOC_PICK:
                // 5, 4, 3, 2, 1
                int locPickRemaining = agvService.getBackpackRemainingCapacity(agvId);
                if (0 < locPickRemaining) {
                    destinationCodeData = this.getLocCode(agvNo, null);
@@ -123,8 +114,9 @@
                destinationCodeData = this.getConveyorPickCode(agvNo);
                break;
            case LOCK_DROP:
                // 0, 1, 2, 3, 4
                int locDropRemaining = agvService.getBackpackRemainingCapacity(agvId);
                if (0 < locDropRemaining) {
                if (locDropRemaining < agvModelService.getByAgvId(agvId).getBackpack()) {
                    destinationCodeData = this.getLocCode(agvNo, null);
                }
                break;
@@ -132,14 +124,12 @@
                log.warn("AGV {}: 未知阶段: {}", agvNo, jobType);
                break;
        }
        if (Cools.isEmpty(destinationCodeData)) {
            return;
        }
        if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null)) {
            log.info( "{}开始作业演示...", agvNo);
            switch (jobType) {
                case LOC_PICK:
                    Integer usedSlotsByLocPick = CoreCache.AGV_BACKPACK_USED_CACHE.get(agvId);
@@ -175,7 +165,6 @@
                    break;
            }
        }
    }
    public String getLocCode(String agvNo, AgvDetail agvDetail) {