From 6cbb420754e6e29fa134a6afca4514b8dfd62918 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期二, 13 一月 2026 16:14:49 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 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 38880af..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;
     }
 
@@ -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