From 13e767fc0e39a13b0235e09f0dac301bb53ad885 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期三, 31 十二月 2025 17:14:18 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java | 24 ++++++++++++++++++++----
1 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
index bfbc67f..ba83c4e 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -276,7 +276,7 @@
int backpackLev = 0;
int backpack = agvService.getBackpack(agvId);
List<Integer> usedBackpacks = segmentService.selectUsedBackpacks(currSeg.getTravelId(), agvId);
- if (usedBackpacks.size() == backpackLev) {
+ if (usedBackpacks.size() >= backpack) {
throw new CoolException("[Agv:" + agvNo + "] allocate inbound segment failed: no idle backpack to use");
}
for (int lev = 1; lev <= backpack; lev++) {
@@ -368,7 +368,7 @@
});
// get placeSeg serial
- int placeSegSerial = 9999;
+ int placeSegSerial;
// query placeSeg idx
int idx = -1;
for (int i = 0; i < destPosList.size(); i++) {
@@ -382,8 +382,24 @@
throw new BusinessException("failed to locate new destination in sorted list");
}
- // 鍚庣户鐐�
- TaskPosDto afterTaskPos = ((idx + 1) < destPosList.size()) ? destPosList.get(idx + 1) : null;
+ // 鍚庣户鐐� todo
+ if (idx + 1 == destPosList.size()) {
+ placeSegSerial = destSegList.get(destSegList.size() - 1).getSerial() + 1;
+ } else {
+ TaskPosDto afterTaskPos = destPosList.get(idx);
+ Segment afterSeg = destSegList.stream()
+ .filter(destSeg -> Objects.equals(destSeg.getId(), afterTaskPos.getSegId()))
+ .findFirst()
+ .orElse(null);
+ if (null == afterSeg) {
+ placeSegSerial = destSegList.get(destSegList.size() - 1).getSerial() + 1;
+ } else {
+ placeSegSerial = afterSeg.getSerial();
+ }
+ }
+
+ // todo
+ TaskPosDto afterTaskPos = (idx + 1) <= destPosList.size() ? destPosList.get(idx) : null;
if (null == afterTaskPos) {
// loadSeg is the last one
placeSegSerial = destSegList.get(destSegList.size() - 1).getSerial() + 1;
--
Gitblit v1.9.1