From 89ba00d0942cc5936abc006c9e6cbce8a2a6216f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 09 十二月 2024 08:37:23 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
index 1c683d1..abe9c47 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
@@ -37,6 +37,8 @@
     private final ReentrantLock lock = new ReentrantLock(Boolean.TRUE);
 
     @Autowired
+    private AgvService agvService;
+    @Autowired
     private BusService busService;
     @Autowired
     private TaskService taskService;
@@ -154,12 +156,20 @@
     @Scheduled(cron = "0/1 * * * * ? ")
     private void autoLocToLoc() {
         if (!configService.getVal("TaskAssignMode", Boolean.class)) { return; }
-        int numOfAgv = 2;
-        int maxCapacity = 1 * numOfAgv;
+
+        // 鏈�澶氫袱缁刡us杩愯
+//        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) {
-            maxCapacity = agvModel.getBackpack() * numOfAgv;
+        if (null == agvModel || 0 == agvCount) {
+            return;
         }
+//        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)) {
@@ -169,6 +179,7 @@
         if (stockList.size() > maxCapacity) {
             stockList = stockList.subList(0, maxCapacity);
         }
+        int numOfStockLocList = stockList.size();
 
         // IDLE
         List<Loc> idleList = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getLocSts, LocStsType.IDLE.val()));
@@ -176,13 +187,13 @@
             return;
         }
         Collections.shuffle(idleList);
-        if (idleList.size() > maxCapacity) {
-            idleList = idleList.subList(0, maxCapacity);
+        if (idleList.size() > numOfStockLocList) {
+            idleList = idleList.subList(0, numOfStockLocList);
         }
 
         OpenBusSubmitParam param = new OpenBusSubmitParam();
         param.setBatch(String.valueOf(snowflakeIdWorker.nextId()).substring(13, 19));
-        for (int i = 0; i < maxCapacity; i++) {
+        for (int i = 0; i < numOfStockLocList; i++) {
             Loc stockLoc = stockList.get(i);
             Loc idleLoc = idleList.get(i);
 

--
Gitblit v1.9.1