From 5b686555ac1b0a632fb1da7fd5ec717e79041c37 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 22 一月 2026 10:12:43 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java                |   24 ++++++++----------------
 version/doc/charge/APL-AGV锂电智能充电机调度标准协议-Modbus RTU V4.2.xlsx                                 |    0 
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java |   15 +++++++++++++--
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java            |    4 ----
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java          |    2 ++
 5 files changed, 23 insertions(+), 22 deletions(-)

diff --git "a/version/doc/charge/APL-AGV\351\224\202\347\224\265\346\231\272\350\203\275\345\205\205\347\224\265\346\234\272\350\260\203\345\272\246\346\240\207\345\207\206\345\215\217\350\256\256-Modbus RTU V4.2.xlsx" "b/version/doc/charge/APL-AGV\351\224\202\347\224\265\346\231\272\350\203\275\345\205\205\347\224\265\346\234\272\350\260\203\345\272\246\346\240\207\345\207\206\345\215\217\350\256\256-Modbus RTU V4.2.xlsx"
new file mode 100644
index 0000000..7ccee68
--- /dev/null
+++ "b/version/doc/charge/APL-AGV\351\224\202\347\224\265\346\231\272\350\203\275\345\205\205\347\224\265\346\234\272\350\260\203\345\272\246\346\240\207\345\207\206\345\215\217\350\256\256-Modbus RTU V4.2.xlsx"
Binary files differ
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 8bf7561..5067f8f 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
@@ -227,10 +227,6 @@
             if (null == currTravelInRollerWaiting) {
                 continue;
             }
-//            Segment currSeg = segmentService.getRollerWaiting(agvId, sta.getCode(), TaskPosDto.PosType.ORI_STA);
-//            if (null == currSeg) {
-//                continue;
-//            }
 
             // has enough backpack space to load
             Integer backpackCap = agvService.getBackpack(agvId);
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 6dbea83..f729c51 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
@@ -252,23 +252,15 @@
                         , (task, agvNo, sta) -> {
                             Long agvId = agvService.getAgvId(agvNo);
 
-//                            List<Travel> travelList = travelService.list(new LambdaQueryWrapper<Travel>()
-//                                    .eq(Travel::getAgvId, agvId)
-//                                    .eq(Travel::getState, TravelStateType.RUNNING.toString())
-//                                    .orderByDesc(Travel::getCreateTime));
-//                            if (Cools.isEmpty(travelList)) {
-//                                throw new BusinessException("[Agv: " + agvNo + "]allocate inbound failed to find travel");
-//                            }
-//                            Travel travel = travelList.get(0);
-//
-//                            List<Segment> currSegments = segmentService.list(new LambdaQueryWrapper<Segment>()
-//                                    .eq(Segment::getAgvId, agvId)
-//                                    .eq(Segment::getTravelId, travel.getId())
-//                            );
-                            // load segment
-                            Segment currSeg = segmentService.getRollerWaiting(agvId, sta.getCode(), TaskPosDto.PosType.ORI_STA);
+                            Travel travel = travelService.findRunningTravel(agvId);
+                            if (null == travel) {
+                                throw new CoolException("[Agv:" + agvNo + "] allocate inbound failed: no roller waiting travel");
+                            }
+
+                            // curr segment
+                            Segment currSeg = segmentService.getCurrWaitingSeg(travel.getId(), agvId);
                             if (null == currSeg) {
-                                throw new BusinessException("[Agv:" + agvNo + "] allocate inbound failed: no roller waiting segment");
+                                throw new CoolException("[Agv:" + agvNo + "] allocate inbound failed: no waiting segment");
                             }
 
                             // get backpack lev
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java
index 338dde8..3b5d52d 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java
@@ -27,6 +27,8 @@
 
     Boolean cancel(Long segmentId, Long userId);
 
+    Segment getCurrWaitingSeg(Long travelId, Long agvId);
+
     Segment getCurrRunningSeg(Long agvId, Long codeId);
 
     List<Integer> selectUsedBackpacks(Long travelId, Long agvId);
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java
index 2e21319..7ea801d 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java
@@ -154,6 +154,19 @@
     }
 
     @Override
+    public Segment getCurrWaitingSeg(Long travelId, Long agvId) {
+        List<Segment> segments = this.list(new LambdaQueryWrapper<Segment>()
+                .eq(Segment::getTravelId, travelId)
+                .eq(Segment::getAgvId, agvId)
+                .eq(Segment::getState, SegmentStateType.WAITING.toString())
+                .orderByDesc(Segment::getId)
+        );
+        if (Cools.isEmpty(segments)) {
+        }
+        return segments.stream().findFirst().orElse(null);
+    }
+
+    @Override
     public Segment getCurrRunningSeg(Long agvId, Long codeId) {
         List<Segment> segments = this.list(new LambdaQueryWrapper<Segment>()
                 .eq(Segment::getAgvId, agvId)
@@ -161,9 +174,7 @@
                 .eq(Segment::getEndNode, codeId)
                 .orderByDesc(Segment::getId)
         );
-
         if (Cools.isEmpty(segments)) {
-
         }
         return segments.stream().findFirst().orElse(null);
     }

--
Gitblit v1.9.1