#
vincentlu
2025-03-27 2f0c77e7d871a1119d6cb143721bd920a6850e93
#
1个文件已修改
35 ■■■■■ 已修改文件
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
@@ -4,6 +4,7 @@
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.SnowflakeIdWorker;
import com.zy.acs.manager.common.domain.TaskDto;
import com.zy.acs.manager.core.constant.AgvGroupConstant;
import com.zy.acs.manager.core.constant.LocGroupConstant;
import com.zy.acs.manager.core.domain.AgvTaskDto;
import com.zy.acs.manager.core.service.MainLockWrapService;
@@ -224,25 +225,33 @@
    private void autoLocToLoc() {
        if (!configService.getVal("TaskAssignMode", Boolean.class)) { return; }
        this.runLocToLoc(Collections.min(LocGroupConstant.FAR_LEFT_LOC_ROW_LIST), Collections.max(LocGroupConstant.FAR_LEFT_LOC_ROW_LIST));
        this.runLocToLoc(Collections.min(LocGroupConstant.LEFT_LOC_ROW_LIST), Collections.max(LocGroupConstant.LEFT_LOC_ROW_LIST));
        this.runLocToLoc(Collections.min(LocGroupConstant.MIDDLE_LOC_ROW_LIST), Collections.max(LocGroupConstant.MIDDLE_LOC_ROW_LIST));
        this.runLocToLoc(Collections.min(LocGroupConstant.RIGHT_LOC_ROW_LIST), Collections.max(LocGroupConstant.RIGHT_LOC_ROW_LIST));
        this.runLocToLoc(Collections.min(LocGroupConstant.FAR_RIGHT_LOC_ROW_LIST), Collections.max(LocGroupConstant.FAR_RIGHT_LOC_ROW_LIST));
        this.runLocToLoc(LocGroupConstant.FAR_LEFT_LOC_ROW_LIST, AgvGroupConstant.FIRST_AGV_GROUP);
        this.runLocToLoc(LocGroupConstant.LEFT_LOC_ROW_LIST, AgvGroupConstant.SECOND_AGV_GROUP);
        this.runLocToLoc(LocGroupConstant.MIDDLE_LOC_ROW_LIST, AgvGroupConstant.THIRD_AGV_GROUP);
        this.runLocToLoc(LocGroupConstant.RIGHT_LOC_ROW_LIST, AgvGroupConstant.FOURTH_AGV_GROUP);
        this.runLocToLoc(LocGroupConstant.FAR_RIGHT_LOC_ROW_LIST, AgvGroupConstant.FIFTH_AGV_GROUP);
    }
    private void runLocToLoc(Integer startRow, Integer endRow) {
        // 最多两组bus运行
//        if (1 < busService.count(new LambdaQueryWrapper<Bus>().in(Bus::getBusSts, BusStsType.RECEIVE.val(), BusStsType.PROGRESS.val()))) {
//            return;
//        }
    private void runLocToLoc(List<Integer> locGroupList, List<String> agvGroupList) {
        Integer startRow = Collections.min(locGroupList);
        Integer endRow = Collections.max(locGroupList);
//        int agvCount = agvService.count(new LambdaQueryWrapper<Agv>().eq(Agv::getStatus, StatusType.ENABLE.val));
        String memo = "DEMO_" + startRow + "-" + endRow;
        int agvCount = agvGroupList.size();
        // 最多 ? 组bus运行
        if (agvCount <= busService.count(new LambdaQueryWrapper<Bus>()
                .in(Bus::getBusSts, BusStsType.RECEIVE.val(), BusStsType.PROGRESS.val())
                .eq(Bus::getMemo, memo)
        )) {
            return;
        }
        AgvModel agvModel = agvModelService.getOne(new LambdaQueryWrapper<AgvModel>().eq(AgvModel::getType, AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()));
        if (null == agvModel) {
            return;
        }
//        int maxCapacity = agvModel.getBackpack() * agvCount;
        int maxCapacity = agvModel.getBackpack();
        // STOCK
@@ -286,7 +295,7 @@
            param.getTaskList().add(taskDto);
        }
        mainService.generateBusAndTask(param, "autoLocToLoc");
        mainService.generateBusAndTask(param, memo);
    }
}