From 2b91132611788f78ff4d32fd7798ea739cc588e2 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 27 三月 2025 11:12:26 +0800
Subject: [PATCH] #

---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AgvAreaDispatcher.java |   47 +++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 45 insertions(+), 2 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 ef1c926..37bd109 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,6 +1,10 @@
 package com.zy.acs.manager.core.constant;
 
-import org.springframework.stereotype.Component;
+import com.zy.acs.manager.manager.entity.Loc;
+import com.zy.acs.manager.manager.entity.Task;
+import com.zy.acs.manager.manager.service.LocService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
 import java.util.List;
@@ -10,11 +14,14 @@
 import static com.zy.acs.manager.core.constant.AreaConstant.*;
 import static com.zy.acs.manager.core.constant.AreaDisableConstant.*;
 
-@Component
+@Service
 public class AgvAreaDispatcher {
 
     public static final Map<String, List<String>> AGV_AREA = new ConcurrentHashMap<>();
     public static final Map<String, List<String>> AGV_DISABLE_AREA = new ConcurrentHashMap<>();
+
+    @Autowired
+    private LocService locService;
 
     @PostConstruct
     public void init() {
@@ -58,4 +65,40 @@
         }
     }
 
+    public List<String> getAgvNosByTask(Task task) {
+        if (null == task) {
+            return null;
+        }
+        Loc oriLoc = null;
+        Loc destLoc = null;
+        if (null != task.getOriLoc()) {
+            oriLoc = locService.getById(task.getOriLoc());
+            return this.getAgvNosByRow(oriLoc.getRow());
+        }
+        if (null != task.getDestLoc()) {
+            destLoc = locService.getById(task.getDestLoc());
+            return this.getAgvNosByRow(destLoc.getRow());
+        }
+        return null;
+    }
+
+    public List<String> getAgvNosByRow(Integer row) {
+        if (LocGroupConstant.FAR_LEFT_LOC_ROW_LIST.contains(row)) {
+            return AgvGroupConstant.FIRST_AGV_GROUP;
+        }
+        if (LocGroupConstant.LEFT_LOC_ROW_LIST.contains(row)) {
+            return AgvGroupConstant.SECOND_AGV_GROUP;
+        }
+        if (LocGroupConstant.MIDDLE_LOC_ROW_LIST.contains(row)) {
+            return AgvGroupConstant.THIRD_AGV_GROUP;
+        }
+        if (LocGroupConstant.RIGHT_LOC_ROW_LIST.contains(row)) {
+            return AgvGroupConstant.FOURTH_AGV_GROUP;
+        }
+        if (LocGroupConstant.FAR_RIGHT_LOC_ROW_LIST.contains(row)) {
+            return AgvGroupConstant.FIFTH_AGV_GROUP;
+        }
+        return null;
+    }
+
 }

--
Gitblit v1.9.1