From 9483baffba9a24a2a36fc8739fc65b59317d9142 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期四, 03 七月 2025 14:18:46 +0800
Subject: [PATCH] 队列拆分

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AgvAreaDispatcher.java |   62 +++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AgvAreaDispatcher.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AgvAreaDispatcher.java
index 37bd109..050a066 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AgvAreaDispatcher.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AgvAreaDispatcher.java
@@ -1,12 +1,15 @@
 package com.zy.acs.manager.core.constant;
 
 import com.zy.acs.manager.manager.entity.Loc;
+import com.zy.acs.manager.manager.entity.Sta;
 import com.zy.acs.manager.manager.entity.Task;
 import com.zy.acs.manager.manager.service.LocService;
+import com.zy.acs.manager.manager.service.StaService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
@@ -22,6 +25,8 @@
 
     @Autowired
     private LocService locService;
+    @Autowired
+    private StaService staService;
 
     @PostConstruct
     public void init() {
@@ -70,14 +75,24 @@
             return null;
         }
         Loc oriLoc = null;
+        Sta oriSta = null;
         Loc destLoc = null;
+        Sta destSta = null;
         if (null != task.getOriLoc()) {
             oriLoc = locService.getById(task.getOriLoc());
             return this.getAgvNosByRow(oriLoc.getRow());
         }
+        if (null != task.getOriSta()) {
+            oriSta = staService.getById(task.getOriSta());
+            return this.getAgvNosByStaNo(oriSta.getStaNo());
+        }
         if (null != task.getDestLoc()) {
             destLoc = locService.getById(task.getDestLoc());
             return this.getAgvNosByRow(destLoc.getRow());
+        }
+        if (null != task.getDestSta()) {
+            destSta = staService.getById(task.getDestSta());
+            return this.getAgvNosByStaNo(destSta.getStaNo());
         }
         return null;
     }
@@ -101,4 +116,51 @@
         return null;
     }
 
+    public List<String> getAgvNosByStaNo(String staNo) {
+        if (StaGroupConstant.FAR_LEFT_STA_ROW_LIST.contains(staNo)) {
+            return AgvGroupConstant.FIRST_AGV_GROUP;
+        }
+        if (StaGroupConstant.LEFT_STA_ROW_LIST.contains(staNo)) {
+            return AgvGroupConstant.SECOND_AGV_GROUP;
+        }
+        if (StaGroupConstant.MIDDLE_STA_ROW_LIST.contains(staNo)) {
+            return AgvGroupConstant.THIRD_AGV_GROUP;
+        }
+        if (StaGroupConstant.RIGHT_STA_ROW_LIST.contains(staNo)) {
+            return AgvGroupConstant.FOURTH_AGV_GROUP;
+        }
+        if (StaGroupConstant.FAR_RIGHT_STA_ROW_LIST.contains(staNo)) {
+            return AgvGroupConstant.FIFTH_AGV_GROUP;
+        }
+        return null;
+    }
+
+    public List<String> getAreaCodeListByAgvNo(String agvNo) {
+        List<String> areaCodeList = new ArrayList<>();
+        if (null == agvNo) {
+            return areaCodeList;
+        }
+        if (AgvGroupConstant.FIRST_AGV_GROUP.contains(agvNo)) {
+            areaCodeList = FAR_LEFT_AREA;
+            areaCodeList.addAll(FAR_LEFT_DISABLE_AREA);
+        }
+        if (AgvGroupConstant.SECOND_AGV_GROUP.contains(agvNo)) {
+            areaCodeList = LEFT_AREA;
+            areaCodeList.addAll(LEFT_DISABLE_AREA);
+        }
+        if (AgvGroupConstant.THIRD_AGV_GROUP.contains(agvNo)) {
+            areaCodeList = MIDDLE_AREA;
+            areaCodeList.addAll(MIDDLE_DISABLE_AREA);
+        }
+        if (AgvGroupConstant.FOURTH_AGV_GROUP.contains(agvNo)) {
+            areaCodeList = RIGHT_AREA;
+            areaCodeList.addAll(RIGHT_DISABLE_AREA);
+        }
+        if (AgvGroupConstant.FIFTH_AGV_GROUP.contains(agvNo)) {
+            areaCodeList = FAR_RIGHT_AREA;
+            areaCodeList.addAll(FAR_RIGHT_DISABLE_AREA);
+        }
+        return areaCodeList;
+    }
+
 }

--
Gitblit v1.9.1