#
vincentlu
2025-12-18 0f8119408a71bdd091146e108d6b23bfc1616ec4
#
1个文件已修改
59 ■■■■■ 已修改文件
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java
@@ -244,6 +244,65 @@
        mainService.generateBusAndTask(param, memo);
    }
    private void runLocToSta0(String memo) {
        AgvModel agvModel = agvModelService.getOne(new LambdaQueryWrapper<AgvModel>().eq(AgvModel::getType, AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()));
        if (null == agvModel) { return; }
        // IDLE STA
        List<Sta> idleList = staService.list(new LambdaQueryWrapper<Sta>()
                .eq(Sta::getStaSts, StaStsType.IDLE.val())
                .eq(Sta::getStatus, StatusType.ENABLE.val));
        if (Cools.isEmpty(idleList)) { return; }
        Collections.shuffle(idleList);
        OpenBusSubmitParam param = new OpenBusSubmitParam();
        param.setBatch(String.valueOf(snowflakeIdWorker.nextId()).substring(13, 19));
        for (int i = 0; i < Math.min(agvModel.getBackpack(), idleList.size()) ; i++) {
            Sta idleSta = idleList.get(i);
            String staCode = idleSta.getCode$();
            Loc stockLoc = null;
            // 所在区域的条码,如果没有area绑定,就全地图
            List<String> codeList = areaGovernService.queryCodesByOneCode(staCode);
            if (Cools.isEmpty(codeList)) {
                stockLoc = locService.selectRandOneByLocSts(LocStsType.STOCK.val());
            } else {
                Collections.shuffle(codeList);
                for (String codeData : codeList) {
                    Code code = codeService.getCacheByData(codeData);
                    if (null == code) { break; }
                    List<Loc> locList = locService.list(new LambdaQueryWrapper<Loc>()
                            .eq(Loc::getCode, code.getId()).eq(Loc::getLocSts, LocStsType.STOCK.val()));
                    if (Cools.isEmpty(locList)) {
                        break;
                    } else if (locList.size() == 1) {
                        stockLoc = locList.get(0);
                    } else {
                        Collections.shuffle(locList);
                        stockLoc = locList.get(0);
                    }
                    if (null != stockLoc) {
                        break;
                    }
                }
            }
            if (null == stockLoc) { break; }
            TaskDto taskDto = new TaskDto();
            taskDto.setOriLoc(stockLoc.getLocNo());
            taskDto.setDestSta(idleSta.getStaNo());
            taskDto.setPriority(100);
            taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19));
            param.getTaskList().add(taskDto);
        }
        if (Cools.isEmpty(param.getTaskList())) { return; }
        mainService.generateBusAndTask(param, memo);
    }
    // 移库
    private void runLocToLoc(String staTaskMemo) {
//        Integer startRow = Collections.min(locGroupList);