#
vincentlu
2025-04-03 6435f7c6041ab14abff7e8727f4d8700c7ab6644
#
1个文件已修改
28 ■■■■■ 已修改文件
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java
@@ -1,6 +1,8 @@
package com.zy.acs.manager.core.scheduler;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.acs.common.constant.RedisConstant;
import com.zy.acs.common.utils.RedisSupport;
import com.zy.acs.framework.common.Cools;
import com.zy.acs.framework.common.SnowflakeIdWorker;
import com.zy.acs.manager.common.domain.TaskDto;
@@ -10,6 +12,7 @@
import com.zy.acs.manager.core.service.MainService;
import com.zy.acs.manager.core.service.TrafficService;
import com.zy.acs.manager.manager.controller.param.OpenBusSubmitParam;
import com.zy.acs.manager.manager.entity.Agv;
import com.zy.acs.manager.manager.entity.AgvModel;
import com.zy.acs.manager.manager.entity.Bus;
import com.zy.acs.manager.manager.entity.Loc;
@@ -29,6 +32,8 @@
@Slf4j
@Component
public class AutoRunScheduler {
    private final RedisSupport redis = RedisSupport.defaultRedisSupport;
    @Autowired
    private AgvService agvService;
@@ -75,10 +80,10 @@
        String memo = "DEMO_" + startRow + "-" + endRow;
        int agvCount = agvGroupList.size();
        int availableAgvCount = this.getAvailableAgvCount(agvGroupList);
        // 最多 ? 组bus运行
        if (agvCount <= busService.count(new LambdaQueryWrapper<Bus>()
        if (availableAgvCount <= busService.count(new LambdaQueryWrapper<Bus>()
                .in(Bus::getBusSts, BusStsType.RECEIVE.val(), BusStsType.PROGRESS.val())
                .eq(Bus::getMemo, memo)
        )) {
@@ -136,4 +141,23 @@
    }
    private int getAvailableAgvCount(List<String> agvNos) {
        int res = 0;
        if (Cools.isEmpty(agvNos)) {
            return res;
        }
        for (String agvNo : agvNos) {
            if (null == redis.getObject(RedisConstant.AGV_ONLINE_FLAG, agvNo)) {
                continue;
            }
            Agv agv = agvService.selectByUuid(agvNo);
            if (!agv.getStatusBool()) {
                continue;
            }
            res++;
        }
        return res;
    }
}