From bd4b7199d724280cd6536dc71d4afee263031464 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@gmail.com>
Date: 星期三, 04 二月 2026 10:14:01 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaServiceImpl.java |   37 +++++++++++++++++++++++++++++++------
 1 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaServiceImpl.java
index c0871c6..276355d 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaServiceImpl.java
@@ -5,10 +5,7 @@
 import com.zy.acs.framework.common.Cools;
 import com.zy.acs.manager.core.domain.TaskPosDto;
 import com.zy.acs.manager.manager.entity.*;
-import com.zy.acs.manager.manager.enums.SegmentStateType;
-import com.zy.acs.manager.manager.enums.StaTypeType;
-import com.zy.acs.manager.manager.enums.StatusType;
-import com.zy.acs.manager.manager.enums.TravelStateType;
+import com.zy.acs.manager.manager.enums.*;
 import com.zy.acs.manager.manager.mapper.StaMapper;
 import com.zy.acs.manager.manager.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,6 +25,10 @@
     private SegmentService segmentService;
     @Autowired
     private TravelService travelService;
+    @Autowired
+    private StaReserveService staReserveService;
+    @Autowired
+    private TaskService taskService;
 
     @Override
     public Sta selectByStaNo(String staNo) {
@@ -53,6 +54,22 @@
     @Override
     public List<Sta> queryAvailableInSta(Integer minAvailableQty) {
         return this.baseMapper.selectAvailableInSta(minAvailableQty);
+    }
+
+    @Override
+    public Task checkoutTask(Long staId) {
+        StaReserve reserve = staReserveService.getOne(new LambdaQueryWrapper<StaReserve>()
+                .eq(StaReserve::getStaId, staId)
+                .eq(StaReserve::getState, StaReserveStateType.CONFIRMED.toString())
+                .eq(StaReserve::getType, StaReserveType.IN.toString())
+                .eq(StaReserve::getStatus, StatusType.ENABLE.val)
+                .orderByDesc(StaReserve::getConfirmedAt)
+                .last("limit 1")
+        );
+        if (null == reserve) {
+            return null;
+        }
+        return taskService.getById(reserve.getTaskId());
     }
 
     @Override
@@ -96,7 +113,6 @@
                     .orderByDesc(Segment::getId).last("LIMIT 1"));
             if (null == lastSeg) {
                 return false;
-//                continue;
             }
             Travel travel = travelService.getById(lastSeg.getTravelId());
             if (travel.getState().equals(TravelStateType.FINISH.toString())) {
@@ -111,7 +127,16 @@
                         && (segment.getPosType().equals(TaskPosDto.PosType.ORI_STA.toString())
                             || segment.getPosType().equals(TaskPosDto.PosType.DEST_STA.toString()))
                 ) {
-                    return true;
+                    return 0 < staReserveService.count(new LambdaQueryWrapper<StaReserve>()
+                            .eq(StaReserve::getStaId, staId)
+                            .eq(StaReserve::getTaskId, segment.getTaskId())
+                            .eq(StaReserve::getSegmentId, segment.getId())
+                            .eq(StaReserve::getState, StaReserveStateType.WAITING.toString())
+//                            .eq(StaReserve::getType, StaReserveType.IN.toString())
+                            .eq(StaReserve::getStatus, StatusType.ENABLE.val)
+                            .orderByDesc(StaReserve::getUpdateTime)
+//                            .last("limit 1")
+                    );
                 }
             }
         }

--
Gitblit v1.9.1