From 5d8c23764a220724358d9cf7c4244f5f1864e9a1 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期二, 27 一月 2026 08:53:46 +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