From 6435f7c6041ab14abff7e8727f4d8700c7ab6644 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 03 四月 2025 10:02:58 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java |   28 ++++++++++++++++++++++++++--
 1 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java
index 9749974..41c4ed8 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java
+++ b/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);
 
         // 鏈�澶� ? 缁刡us杩愯
-        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;
+    }
+
 }

--
Gitblit v1.9.1