#
luxiaotao1123
2024-12-23 766bcd63a19f7acaff2f5ed2cd1cb016894978ea
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
@@ -101,7 +101,9 @@
                .eq(Segment::getState, SegmentStateType.WAITING.toString())
        );
        for (Segment segment : segments) {
            long startTime = System.currentTimeMillis();
            trafficService.trigger(segment);
            log.info("traffic calculation spend {} ms", System.currentTimeMillis() - startTime);
        }
    }
@@ -109,7 +111,9 @@
    private void publishAction(){
        List<String> actionGroupIds = actionService.selectPrepareGroup();
        for (String actionGroupId : actionGroupIds) {
            long startTime = System.currentTimeMillis();
            mainService.publishAction(actionGroupId);
            log.info("publish action calculation spend {} ms", System.currentTimeMillis() - startTime);
        }
    }
@@ -157,20 +161,22 @@
    private void autoLocToLoc() {
        if (!configService.getVal("TaskAssignMode", Boolean.class)) { return; }
        if (0 < busService.count(new LambdaQueryWrapper<Bus>().in(Bus::getBusSts, BusStsType.RECEIVE.val(), BusStsType.PROGRESS.val()))) {
            return;
        }
        // 最多两组bus运行
//        if (1 < busService.count(new LambdaQueryWrapper<Bus>().in(Bus::getBusSts, BusStsType.RECEIVE.val(), BusStsType.PROGRESS.val()))) {
//            return;
//        }
        int agvCount = agvService.count(new LambdaQueryWrapper<Agv>().eq(Agv::getStatus, StatusType.ENABLE.val));
        AgvModel agvModel = agvModelService.getOne(new LambdaQueryWrapper<AgvModel>().eq(AgvModel::getType, AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()));
        if (null == agvModel || 0 == agvCount) {
            return;
        }
        int maxCapacity = agvModel.getBackpack() * Math.min(agvCount, 2);
//        int maxCapacity = agvModel.getBackpack() * agvCount;
        int maxCapacity = agvModel.getBackpack();
        // STOCK
        List<Loc> stockList = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getLocSts, LocStsType.STOCK.val()));
        if (Cools.isEmpty(stockList)) {
        if (Cools.isEmpty(stockList) || stockList.size() < agvModel.getBackpack()) {
            return;
        }
        Collections.shuffle(stockList);