From efabc6ba991acfd01d38bb0bf4e8cfd772416617 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 05 一月 2026 13:07:39 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java | 30 ++++++++++++++----------------
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java | 4 ++--
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java | 18 +++++++++++-------
3 files changed, 27 insertions(+), 25 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java
index d37a3c6..cbd0707 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java
@@ -24,6 +24,8 @@
@Component
public class AutoRunScheduler {
+ private static final AgvModelType DEFAULT_AGV_MODEL = AgvModelType.CTU_BOX_TRANSPORT_AGV;
+
private final RedisSupport redis = RedisSupport.defaultRedisSupport;
@Autowired
@@ -52,10 +54,13 @@
// @Scheduled(cron = "0/1 * * * * ? ")
private void execute() {
if (!configService.getVal("TaskAssignMode", Boolean.class)) { return; }
- this.autoRun();
+ AgvModel agvModel = agvModelService.getOne(new LambdaQueryWrapper<AgvModel>().eq(AgvModel::getType, DEFAULT_AGV_MODEL.toString()));
+ if (null == agvModel) { return; }
+
+ this.autoRun(agvModel);
}
- private void autoRun() {
+ private void autoRun(AgvModel agvModel) {
int availableAgvCount = this.getAvailableAgvCount();
if (0 == availableAgvCount) { return; }
@@ -64,18 +69,16 @@
String memo = "DEMO_STA_" + String.join("-", staPreNos);
// 鍏ュ簱
- this.runStaToLoc(memo);
+ this.runStaToLoc(agvModel, memo);
// 鍑哄簱
- this.runLocToSta(memo);
-
+ this.runLocToSta(agvModel, memo);
// 绉诲簱
- this.runLocToLoc(memo);
+ this.runLocToLoc(agvModel, memo);
}
// 鍏ュ簱
- private void runStaToLoc(String memo) {
- AgvModel agvModel = agvModelService.getOne(new LambdaQueryWrapper<AgvModel>().eq(AgvModel::getType, AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()));
- if (null == agvModel) { return; }
+ private void runStaToLoc(AgvModel agvModel, String memo) {
+
// STOCK STA
List<Sta> stockList = staService.queryAvailableOutSta(1);
@@ -131,9 +134,7 @@
}
// 鍑哄簱
- private void runLocToSta(String memo) {
- AgvModel agvModel = agvModelService.getOne(new LambdaQueryWrapper<AgvModel>().eq(AgvModel::getType, AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()));
- if (null == agvModel) { return; }
+ private void runLocToSta(AgvModel agvModel, String memo) {
// IDLE STA
List<Sta> idleList = staService.queryAvailableInSta(1);
@@ -189,7 +190,7 @@
}
// 绉诲簱
- private void runLocToLoc(String staTaskMemo) {
+ private void runLocToLoc(AgvModel agvModel, String staTaskMemo) {
String memo = "DEMO_LOC";
int availableAgvCount = this.getAvailableAgvCount();
@@ -199,9 +200,6 @@
.in(Bus::getBusSts, BusStsType.RECEIVE.val(), BusStsType.PROGRESS.val())
.in(Bus::getMemo, memo, staTaskMemo)
)) { return; }
-
- AgvModel agvModel = agvModelService.getOne(new LambdaQueryWrapper<AgvModel>().eq(AgvModel::getType, AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()));
- if (null == agvModel) { return; }
int maxCapacity = agvModel.getBackpack();
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java
index 4a11335..59cbb82 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AvoidWaveCalculator.java
@@ -14,7 +14,6 @@
import com.zy.acs.manager.manager.entity.AgvDetail;
import com.zy.acs.manager.manager.entity.AgvModel;
import com.zy.acs.manager.manager.entity.Code;
-import com.zy.acs.manager.manager.enums.AgvModelType;
import com.zy.acs.manager.manager.service.AgvDetailService;
import com.zy.acs.manager.manager.service.AgvModelService;
import com.zy.acs.manager.manager.service.AgvService;
@@ -83,7 +82,7 @@
}
- public boolean calcWaveScope() {
+ public boolean calcWaveScope(AgvModel agvModel) {
Integer lev = MapDataDispatcher.MAP_DEFAULT_LEV;
boolean lockAcquired = false;
@@ -96,7 +95,7 @@
}
// return this.calcWaveScopeByPython(lev);
- return this.calcWaveScopeByJava(lev);
+ return this.calcWaveScopeByJava(lev, agvModel);
} catch (Exception e) {
@@ -115,9 +114,12 @@
}
}
- private boolean calcWaveScopeByPython(Integer lev) throws Exception {
+ private boolean calcWaveScopeByPython(Integer lev, AgvModel agvModel) throws Exception {
+ if (null == agvModel.getDiameter() || agvModel.getDiameter() <= 0) {
+ log.warn("There is no diameter or diameter value was wrong...");
+ }
+
// python
- AgvModel agvModel = agvModelService.selectByType(AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()); // can be optimized
Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(agvModel.getDiameter(), MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR);
if (null == pythonFile) {
@@ -170,9 +172,11 @@
return true;
}
- private boolean calcWaveScopeByJava(Integer lev) throws Exception {
+ private boolean calcWaveScopeByJava(Integer lev, AgvModel agvModel) throws Exception {
+ if (null == agvModel.getDiameter() || agvModel.getDiameter() <= 0) {
+ log.warn("There is no diameter or diameter value was wrong...");
+ }
- AgvModel agvModel = agvModelService.selectByType(AgvModelType.CTU_BOX_TRANSPORT_AGV.toString()); // can be optimized
Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(agvModel.getDiameter(), MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR);
// java
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
index a386a16..bb3cd44 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java
@@ -201,7 +201,7 @@
// ArrayList<List<TaskPosDto>> list = JSON.parseObject(travel.getTaskContent(), new TypeReference<ArrayList<List<TaskPosDto>>>() {});
// * sync wave scope
- if (!avoidWaveCalculator.calcWaveScope()) {
+ if (!avoidWaveCalculator.calcWaveScope(agvModelService.getByAgvId(agv.getId()))) {
log.error("failed to calculate avoid wave matrix ...");
return;
}
@@ -672,7 +672,7 @@
// the wave of first node
Double avoidDistance = MapDataUtils.getVehicleWaveSafeDistance(
- agvModelService.getById(jamAgv.getAgvModel()).getDiameter(),
+ agvModelService.getByAgvId(jamAgv.getAgvModel()).getDiameter(),
MapDataConstant.MAX_DISTANCE_BETWEEN_ADJACENT_AGV_FACTOR
);
List<String> waveCodeList = mapService.getWaveScopeByCode(lev, firstCodeNode, avoidDistance)
--
Gitblit v1.9.1