From e9e8c6915e0f46d4ee9d4b0c8e0d7da77e35bba5 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 02 二月 2026 13:59:53 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TransferStationHandler.java |   62 +++++++++++-------------------
 1 files changed, 23 insertions(+), 39 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TransferStationHandler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TransferStationHandler.java
index 54bb240..361db5d 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TransferStationHandler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TransferStationHandler.java
@@ -12,28 +12,14 @@
 
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 
-// man_segment: start_time, end_time, alter table man_segment
-//    add roller_waiting int(1) default 0 null comment '婊氱瓛绾跨瓑寰�' after end_time;
-/**
- * alter table man_sta
- *     add capacity int null comment '妲戒綅鏁�' after angle;
- *
- * alter table man_sta
- *     add occ_cnt int null comment '鍗犵敤鏁�' after capacity;
- *
- * alter table man_sta
- *     add rsv_in_cnt int null comment '棰勭害鏀捐揣閲�' after occ_cnt;
- *
- * alter table man_sta
- *     add rsv_out_cnt int null comment '棰勭害鍙栬揣閲�' after rsv_in_cnt;
- */
 @Slf4j
 @Service
 public class TransferStationHandler {
 
-    private static final long LOAD_DELAY_MS  = 15000L; // load ( inbound ) delay timeout
-    private static final long PLACE_DELAY_MS  = 15000L; // place ( outbound ) delay timeout
+    private static final int DEFAULT_LOAD_DELAY_MS  = 15000; // load ( inbound ) delay timeout
+    private static final int DEFAULT_PLACE_DELAY_MS  = 1000; // place ( outbound ) delay timeout
 
     @Autowired
     private SegmentService segmentService;
@@ -45,6 +31,8 @@
     private CodeService codeService;
     @Autowired
     private StaService staService;
+    @Autowired
+    private TravelService travelService;
 
     /**
      * 鍙栬揣锛堝叆搴擄級锛氬湪鍙栧畬绗竴涓揣鐨勬椂鍊欙紝鎷呭績婊氱瓛杈撻�佺嚎浼氭湁涓嬩竴涓揣鐗╋紝鎵�浠ュ缓璁瓵GV鍦ㄥ師鍦扮瓑寰呬竴娈垫椂闂�
@@ -52,17 +40,12 @@
      * 瑕佸仛 ready-for-next
      */
     public boolean hasDelayAtSta(Segment currSeg) {
-        // todo
-        Sta sta = staService.selectByStaNo("1");
-        sta.setOccCnt(sta.getOccCnt() + 1);
-        staService.updateById(sta);
-
-
         if (currSeg == null) {
             throw new NullPointerException("segment is null in hasDelayAtSta.");
         }
+        Long agvId = currSeg.getAgvId();
         // 鍒ゆ柇AGV鏄惁鍦ㄦ粴鍔ㄨ緭閫佺嚎鍓�
-        Code currentCode = agvDetailService.getCurrentCode(currSeg.getAgvId());
+        Code currentCode = agvDetailService.getCurrentCode(agvId);
         if (null == currentCode) {
             return false;
         }
@@ -83,26 +66,26 @@
         }
         long preEndTime = preSeg.getEndTime().getTime();
         long now = System.currentTimeMillis();
-        Long agvId = currSeg.getAgvId();
 
         // inbound
         if (prePosType.equals(TaskPosDto.PosType.ORI_STA)) {
 
             // 鑳岀瘬鏈弧鎵嶇瓑
-            Integer backpack = agvService.getBackpack(agvId);
+            Integer backpackCap = agvService.getBackpack(agvId);
             List<Integer> usedBackpacks = segmentService.selectUsedBackpacks(currSeg.getTravelId(), agvId);
-            if (usedBackpacks.size() >= backpack) {
+            if (usedBackpacks.size() >= backpackCap) {
                 return false;
             }
 
-            // sign waiting
-            if (currSeg.getRollerWaiting() == 0) {
-                currSeg.setRollerWaiting(1);
-                segmentService.updateById(currSeg);
-            }
+            // mark roller waiting
+            travelService.markRollerWaiting(currSeg.getTravelId(), currentCode.getId());
+//            if (currSeg.getRollerWaiting() == 0) {
+//                currSeg.setRollerWaiting(1);
+//                segmentService.updateById(currSeg);
+//            }
 
             // timeout
-            return (now - preEndTime) < LOAD_DELAY_MS;
+            return (now - preEndTime) < Optional.ofNullable(rollerSta.getInboundWait()).orElse(DEFAULT_LOAD_DELAY_MS);
         }
 
         // outbound
@@ -116,14 +99,15 @@
                 return false;
             }
 
-            // sign waiting
-            if (currSeg.getRollerWaiting() == 0) {
-                currSeg.setRollerWaiting(1);
-                segmentService.updateById(currSeg);
-            }
+            // mark roller waiting
+            travelService.markRollerWaiting(currSeg.getTravelId(), currentCode.getId());
+//            if (currSeg.getRollerWaiting() == 0) {
+//                currSeg.setRollerWaiting(1);
+//                segmentService.updateById(currSeg);
+//            }
 
             // timeout
-            return (now - preEndTime) < PLACE_DELAY_MS;
+            return (now - preEndTime) < Optional.ofNullable(rollerSta.getOutboundWait()).orElse(DEFAULT_PLACE_DELAY_MS);
         }
 
         return false;

--
Gitblit v1.9.1