From e9e8c6915e0f46d4ee9d4b0c8e0d7da77e35bba5 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 02 二月 2026 13:59:53 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java |   28 ++++++++++++++++------------
 1 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
index 2918e16..4763a54 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
@@ -50,6 +50,8 @@
     private AgvAreaDispatcher agvAreaDispatcher;
     @Autowired
     private SegmentService segmentService;
+    @Autowired
+    private TravelService travelService;
 
     /**
      * get available agv list which is idle
@@ -62,7 +64,6 @@
         List<String> result = new ArrayList<>();
         for (Agv agv : agvList) {
             if (!hasRunning) {
-                // 1. without running tasks
                 if (0 < taskService.count(new LambdaQueryWrapper<Task>()
                         .eq(Task::getAgvId, agv.getId())
                         .and(i -> i
@@ -73,10 +74,13 @@
                 )) {
                     continue;
                 }
-            }
-            // 2. in idle status
-            if (!agvService.judgeEnable(agv.getId(), true)) {
-                continue;
+                if (!agvService.judgeEnable(agv.getId(), true, true)) {
+                    continue;
+                }
+            } else {
+                if (!agvService.judgeEnable(agv.getId(), true, false)) {
+                    continue;
+                }
             }
 
             result.add(agv.getUuid());
@@ -121,7 +125,7 @@
             return null;
         }
 
-        List<String> availableAgvNos = this.getAvailableAgvNos(agvAreaDispatcher.getAgvNosByTask(task), true);
+        List<String> availableAgvNos = this.getAvailableAgvNos(agvAreaDispatcher.getAgvIdsByTask(task), true);
         FilterLaneDto filterLaneDto = this.filterThroughLane(task, availableAgvNos);
         if (filterLaneDto == null) {
             return null;
@@ -155,7 +159,7 @@
      *      it can break the limit of the number of agv backpack
      */
     public synchronized String normalExecute(Task task) {
-        List<String> availableAgvNos = this.getAvailableAgvNos(agvAreaDispatcher.getAgvNosByTask(task), false);
+        List<String> availableAgvNos = this.getAvailableAgvNos(agvAreaDispatcher.getAgvIdsByTask(task), false);
 //        List<String> availableAgvNos = this.getAvailableAgvNos(null);
         if (Cools.isEmpty(availableAgvNos)) {
 //            log.warn("No available agv to assign the task[{}]", task.getSeqNum());
@@ -221,15 +225,15 @@
 //                continue;
 //            }
             // in TransferStationHandler.hasDelayAtSta
-            Segment currSeg = segmentService.getRollerWaiting(agvId, sta.getCode(), TaskPosDto.PosType.ORI_STA);
-            if (null == currSeg) {
+            Travel currTravelInRollerWaiting = travelService.findRollerWaitingTravel(agvId, currentCode.getId());
+            if (null == currTravelInRollerWaiting) {
                 continue;
             }
 
             // has enough backpack space to load
-            Integer backpack = agvService.getBackpack(agvId);
-            List<Integer> usedBackpacks = segmentService.selectUsedBackpacks(null, agvId);
-            if (usedBackpacks.size() >= backpack) {
+            Integer backpackCap = agvService.getBackpack(agvId);
+            List<Integer> usedBackpacks = segmentService.selectUsedBackpacks(currTravelInRollerWaiting.getId(), agvId);
+            if (usedBackpacks.size() >= backpackCap) {
                 continue;
             }
 

--
Gitblit v1.9.1