From 520d4be5c6b8136f61811c9227515fec8937c709 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 07 五月 2026 10:22:56 +0800
Subject: [PATCH] #latent_code

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/StaServiceImpl.java |   22 ++++++++++++++++++++--
 1 files changed, 20 insertions(+), 2 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 5370b92..95b1500 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
@@ -35,6 +35,8 @@
     private TaskService taskService;
     @Autowired
     private ConveyorStationService conveyorStationService;
+    @Autowired
+    private AgvModelService agvModelService;
 
     @Override
     public Sta selectByStaNo(String staNo) {
@@ -111,6 +113,19 @@
     }
 
     @Override
+    public Long resolveWorkCodeId(Sta sta, Long agvId) {
+        if (sta == null) {
+            return null;
+        }
+        if (agvId != null
+                && Boolean.TRUE.equals(agvModelService.isUnderdriveAgv(agvId))
+                && sta.getLatentCode() != null) {
+            return sta.getLatentCode();
+        }
+        return sta.getCode();
+    }
+
+    @Override
     public boolean allowAgvWorkAtSta(String agvNo, Sta sta, Task task, Segment seg, StaReserveType type) {
         if (sta == null) {
             return false;
@@ -152,8 +167,7 @@
     @Override
     public Boolean hasWorkingAgv(Long staId) {
         Sta sta = this.getById(staId);
-        Long codeId = sta.getCode();
-        if (null == codeId) {
+        if (sta == null) {
             return false;
         }
 
@@ -165,6 +179,10 @@
             return false;
         }
         for (Long agvId : agvIds) {
+            Long codeId = resolveWorkCodeId(sta, agvId);
+            if (codeId == null) {
+                continue;
+            }
             Code currentCode = agvDetailService.getCurrentCode(agvId);
             if (null == currentCode) { continue; }
 

--
Gitblit v1.9.1