From bfe51f9c2ce2181fee372ed5f9017c7af59cc896 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期一, 01 九月 2025 12:49:55 +0800
Subject: [PATCH] 1
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/constant/AgvAreaDispatcher.java | 109 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 107 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..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,8 +1,15 @@
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.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;
@@ -10,11 +17,16 @@
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;
+ @Autowired
+ private StaService staService;
@PostConstruct
public void init() {
@@ -58,4 +70,97 @@
}
}
+ public List<String> getAgvNosByTask(Task task) {
+ if (null == task) {
+ 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;
+ }
+
+ 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;
+ }
+
+ 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