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

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java                |    5 ++++-
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/SegmentServiceImpl.java |   37 ++++++++++++++-----------------------
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/SegmentService.java          |    5 +----
 3 files changed, 19 insertions(+), 28 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 f729c51..a4580e6 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
@@ -259,6 +259,9 @@
 
                             // curr segment
                             Segment currSeg = segmentService.getCurrWaitingSeg(travel.getId(), agvId);
+//                            if (null == currSeg) {
+//                                currSeg = segmentService.getCurrRunningSeg(travel.getId(), agvId, null);
+//                            }
                             if (null == currSeg) {
                                 throw new CoolException("[Agv:" + agvNo + "] allocate inbound failed: no waiting segment");
                             }
@@ -1829,7 +1832,7 @@
                 Code code = codeService.getCacheByData(agv_06_up.getQrCode());
 
                 // query current segment
-                Segment currSeg = segmentService.getCurrRunningSeg(agv.getId(), code.getId());
+                Segment currSeg = segmentService.getCurrRunningSeg(null, agv.getId(), code.getId());
                 if (null == currSeg) {
                     log.error("failed to find curr segment [{}]", agv.getUuid());
                 } else {
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 3b5d52d..a18a2dd 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
@@ -1,7 +1,6 @@
 package com.zy.acs.manager.manager.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.zy.acs.manager.core.domain.TaskPosDto;
 import com.zy.acs.manager.manager.entity.Segment;
 import com.zy.acs.manager.manager.enums.SegmentStateType;
 
@@ -29,11 +28,9 @@
 
     Segment getCurrWaitingSeg(Long travelId, Long agvId);
 
-    Segment getCurrRunningSeg(Long agvId, Long codeId);
+    Segment getCurrRunningSeg(Long travelId, Long agvId, Long codeId);
 
     List<Integer> selectUsedBackpacks(Long travelId, Long agvId);
-
-    Segment getRollerWaiting(Long agvId, Long codeId, TaskPosDto.PosType posType);
 
     Boolean isRollerWaiting(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 7ea801d..fd87fb8 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
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zy.acs.framework.common.Cools;
 import com.zy.acs.framework.exception.CoolException;
-import com.zy.acs.manager.core.domain.TaskPosDto;
 import com.zy.acs.manager.manager.entity.Segment;
 import com.zy.acs.manager.manager.entity.Task;
 import com.zy.acs.manager.manager.enums.ActionStsType;
@@ -167,13 +166,21 @@
     }
 
     @Override
-    public Segment getCurrRunningSeg(Long agvId, Long codeId) {
-        List<Segment> segments = this.list(new LambdaQueryWrapper<Segment>()
+    public Segment getCurrRunningSeg(Long travelId, Long agvId, Long codeId) {
+        if (null == agvId) {
+            return null;
+        }
+        LambdaQueryWrapper<Segment> wrapper = new LambdaQueryWrapper<Segment>()
                 .eq(Segment::getAgvId, agvId)
-                .eq(Segment::getState, SegmentStateType.RUNNING.toString())
-                .eq(Segment::getEndNode, codeId)
-                .orderByDesc(Segment::getId)
-        );
+                .eq(Segment::getState, SegmentStateType.RUNNING.toString());
+        if (null != travelId) {
+            wrapper.eq(Segment::getTravelId, travelId);
+        }
+        if (null != codeId) {
+            wrapper.eq(Segment::getEndNode, codeId);
+        }
+        wrapper.orderByDesc(Segment::getId);
+        List<Segment> segments = this.list(wrapper);
         if (Cools.isEmpty(segments)) {
         }
         return segments.stream().findFirst().orElse(null);
@@ -182,22 +189,6 @@
     @Override
     public List<Integer> selectUsedBackpacks(Long travelId, Long agvId) {
         return this.baseMapper.selectUsedBackpacks(agvId, travelId);
-    }
-
-    @Override   //todo
-    public Segment getRollerWaiting(Long agvId, Long codeId, TaskPosDto.PosType posType) {
-        List<Segment> segments = this.list(new LambdaQueryWrapper<Segment>()
-                .eq(Segment::getAgvId, agvId)
-                .eq(Segment::getState, SegmentStateType.WAITING.toString())
-                .eq(Segment::getEndNode, codeId)
-                .eq(Segment::getPosType, posType.toString())
-                .eq(Segment::getRollerWaiting, 1)
-                .orderByDesc(Segment::getId)
-        );
-        if (Cools.isEmpty(segments)) {
-            return null;
-        }
-        return segments.get(0);
     }
 
     @Override

--
Gitblit v1.9.1