From fa1d5f09f583d49e888d15066d74d47920663113 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期三, 14 一月 2026 13:07:46 +0800
Subject: [PATCH] 1

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java |   21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 deletions(-)

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 ee330e1..18fb10e 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
@@ -74,6 +74,7 @@
                 .eq(Segment::getSerial, serial - 1)
                 .eq(Segment::getState, SegmentStateType.FINISH.toString())
                 .orderByDesc(Segment::getId)
+                .last("limit 1")
         );
     }
 
@@ -128,9 +129,10 @@
     public Boolean cancel(Long segmentId, Long userId) {
         Date now = new Date();
         Segment segment = this.getById(segmentId);
+        Long travelId = segment.getTravelId();
         String groupId = segment.getGroupId();
         // update segment list
-        List<Segment> segmentList = this.list(new LambdaQueryWrapper<Segment>().eq(Segment::getGroupId, groupId));
+        List<Segment> segmentList = this.list(new LambdaQueryWrapper<Segment>().eq(Segment::getTravelId, travelId));
         for (Segment seg : segmentList) {
             Task task = taskService.getById(segment.getTaskId());
             if (task != null &&
@@ -145,7 +147,9 @@
         }
         this.processNext(segmentList);
         // update action list
-        actionService.updateStsByGroupId(groupId, ActionStsType.EXPIRED.val());
+        if (!Cools.isEmpty(groupId)) {
+            actionService.updateStsByGroupId(groupId, ActionStsType.EXPIRED.val());
+        }
         return Boolean.TRUE;
     }
 
@@ -165,8 +169,8 @@
     }
 
     @Override
-    public int countRemainingBackpack(Long travelId, Long agvId) {
-        return this.baseMapper.countRemainingBackpack(agvId, travelId);
+    public List<Integer> selectUsedBackpacks(Long travelId, Long agvId) {
+        return this.baseMapper.selectUsedBackpacks(agvId, travelId);
     }
 
     @Override
@@ -185,4 +189,13 @@
         return segments.get(0);
     }
 
+    @Override
+    public Boolean isRollerWaiting(Long agvId) {
+        return 0 < this.count(new LambdaQueryWrapper<Segment>()
+                .eq(Segment::getAgvId, agvId)
+                .eq(Segment::getState, SegmentStateType.WAITING.toString())
+                .eq(Segment::getRollerWaiting, 1)
+        );
+    }
+
 }

--
Gitblit v1.9.1