From 472fb990c1c6216f6f375eb65ba957aaf75b3a00 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 05 一月 2026 13:26:44 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java | 151 ++++++++++++++++++++++++++-----------------------
1 files changed, 80 insertions(+), 71 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
index e33f1f6..daa7470 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -899,6 +899,8 @@
AgvModel agvModel = agvModelService.getByAgvId(agvId);
Double workDirection = agvModel.getWorkDirection();
+ boolean backupAction = null != agvModel.getBackupAction() && agvModel.getBackupActionBool();
+ boolean needUndocking = null != agvModel.getNeedUndocking() && agvModel.getNeedUndockingBool();
AgvSpeedType agvSpeedType = AgvSpeedType.query(agvModel.getTravelSpeed());
assert agvSpeedType != null;
@@ -1063,7 +1065,6 @@
AgvDirectionType agvDirectionType;
Double staWorkDirection;
AgvBackpackType backpackType = AgvBackpackType.query(segment.getBackpack());
- // todo agvModel backpackAction ?
switch (Objects.requireNonNull(TaskPosDto.queryPosType(segment.getPosType()))) {
case ORI_LOC:
assert backpackType != null;
@@ -1090,22 +1091,24 @@
agvId, // AGV
now // 宸ヤ綔鏃堕棿
));
- // 鏆傚瓨鐐规斁璐�
- actionList.add(new Action(
- null, // 缂栧彿
- task.getBusId(), // 鎬荤嚎
- task.getId(), // 浠诲姟
- null, // 鍔ㄤ綔鍙�
- null, // 浼樺厛绾�
- ActionTypeType.ReadyReleaseToAgvSite.desc, // 鍚嶇О
- (double) backpackType.lev, // 灞炴�у��
- lastCode.getData(), // 鍦伴潰鐮�
- String.valueOf(backpackType.height), // 鍔ㄤ綔鍙傛暟
- ActionTypeType.ReadyReleaseToAgvSite.val(), // 鍔ㄤ綔绫诲瀷
- actionPrepareSts, // 鍔ㄤ綔杩涘害
- agvId, // AGV
- now // 宸ヤ綔鏃堕棿
- ));
+ // 鑳岀瘬鏀捐揣
+ if (backupAction) {
+ actionList.add(new Action(
+ null, // 缂栧彿
+ task.getBusId(), // 鎬荤嚎
+ task.getId(), // 浠诲姟
+ null, // 鍔ㄤ綔鍙�
+ null, // 浼樺厛绾�
+ ActionTypeType.ReadyReleaseToAgvSite.desc, // 鍚嶇О
+ (double) backpackType.lev, // 灞炴�у��
+ lastCode.getData(), // 鍦伴潰鐮�
+ String.valueOf(backpackType.height), // 鍔ㄤ綔鍙傛暟
+ ActionTypeType.ReadyReleaseToAgvSite.val(), // 鍔ㄤ綔绫诲瀷
+ actionPrepareSts, // 鍔ㄤ綔杩涘害
+ agvId, // AGV
+ now // 宸ヤ綔鏃堕棿
+ ));
+ }
break;
case DEST_LOC:
assert backpackType != null;
@@ -1113,22 +1116,24 @@
if (!lastDirection.equals(workDirection)) {
throw new CoolException(agvNo + "鍙峰皬杞︽柟鍚戦敊璇紝璇锋帹鑷宠浆寮偣鎵嬪姩璋冩暣");
}
- // 鏆傚瓨鐐瑰彇璐ц揣
- actionList.add(new Action(
- null, // 缂栧彿
- task.getBusId(), // 鎬荤嚎
- task.getId(), // 浠诲姟
- null, // 鍔ㄤ綔鍙�
- null, // 浼樺厛绾�
- ActionTypeType.ReadyTakeFromAgvSite.desc, // 鍚嶇О
- (double) backpackType.lev, // 灞炴�у��
- lastCode.getData(), // 鍦伴潰鐮�
- String.valueOf(backpackType.height), // 鍔ㄤ綔鍙傛暟
- ActionTypeType.ReadyTakeFromAgvSite.val(), // 鍔ㄤ綔绫诲瀷
- actionPrepareSts, // 鍔ㄤ綔杩涘害
- agvId, // AGV
- now // 宸ヤ綔鏃堕棿
- ));
+ // 鑳岀瘬鍙栬揣
+ if (backupAction) {
+ actionList.add(new Action(
+ null, // 缂栧彿
+ task.getBusId(), // 鎬荤嚎
+ task.getId(), // 浠诲姟
+ null, // 鍔ㄤ綔鍙�
+ null, // 浼樺厛绾�
+ ActionTypeType.ReadyTakeFromAgvSite.desc, // 鍚嶇О
+ (double) backpackType.lev, // 灞炴�у��
+ lastCode.getData(), // 鍦伴潰鐮�
+ String.valueOf(backpackType.height), // 鍔ㄤ綔鍙傛暟
+ ActionTypeType.ReadyTakeFromAgvSite.val(), // 鍔ㄤ綔绫诲瀷
+ actionPrepareSts, // 鍔ㄤ綔杩涘害
+ agvId, // AGV
+ now // 宸ヤ綔鏃堕棿
+ ));
+ }
// 璐ф灦鏀捐揣
Loc destLoc = locService.getById(task.getDestLoc());
@@ -1194,23 +1199,25 @@
agvId, // AGV
now // 宸ヤ綔鏃堕棿
));
- // 鏆傚瓨鐐规斁璐�
- assert backpackType != null;
- actionList.add(new Action(
- null, // 缂栧彿
- task.getBusId(), // 鎬荤嚎
- task.getId(), // 浠诲姟
- null, // 鍔ㄤ綔鍙�
- null, // 浼樺厛绾�
- ActionTypeType.ReadyReleaseToAgvSite.desc, // 鍚嶇О
- (double) backpackType.lev, // 灞炴�у��
- lastCode.getData(), // 鍦伴潰鐮�
- String.valueOf(backpackType.height), // 鍔ㄤ綔鍙傛暟
- ActionTypeType.ReadyReleaseToAgvSite.val(), // 鍔ㄤ綔绫诲瀷
- actionPrepareSts, // 鍔ㄤ綔杩涘害
- agvId, // AGV
- now // 宸ヤ綔鏃堕棿
- ));
+ // 鑳岀瘬鏀捐揣
+ if (backupAction) {
+ assert backpackType != null;
+ actionList.add(new Action(
+ null, // 缂栧彿
+ task.getBusId(), // 鎬荤嚎
+ task.getId(), // 浠诲姟
+ null, // 鍔ㄤ綔鍙�
+ null, // 浼樺厛绾�
+ ActionTypeType.ReadyReleaseToAgvSite.desc, // 鍚嶇О
+ (double) backpackType.lev, // 灞炴�у��
+ lastCode.getData(), // 鍦伴潰鐮�
+ String.valueOf(backpackType.height), // 鍔ㄤ綔鍙傛暟
+ ActionTypeType.ReadyReleaseToAgvSite.val(), // 鍔ㄤ綔绫诲瀷
+ actionPrepareSts, // 鍔ㄤ綔杩涘害
+ agvId, // AGV
+ now // 宸ヤ綔鏃堕棿
+ ));
+ }
break;
case DEST_STA:
// 绔欑偣鏀捐揣
@@ -1239,23 +1246,25 @@
));
lastDirection = destStaWorkDirection;
}
- // 鏆傚瓨鐐瑰彇璐�
- assert backpackType != null;
- actionList.add(new Action(
- null, // 缂栧彿
- task.getBusId(), // 鎬荤嚎
- task.getId(), // 浠诲姟
- null, // 鍔ㄤ綔鍙�
- null, // 浼樺厛绾�
- ActionTypeType.ReadyTakeFromAgvSite.desc, // 鍚嶇О
- (double) backpackType.lev, // 灞炴�у��
- lastCode.getData(), // 鍦伴潰鐮�
- String.valueOf(backpackType.height), // 鍔ㄤ綔鍙傛暟
- ActionTypeType.ReadyTakeFromAgvSite.val(), // 鍔ㄤ綔绫诲瀷
- actionPrepareSts, // 鍔ㄤ綔杩涘害
- agvId, // AGV
- now // 宸ヤ綔鏃堕棿
- ));
+ // 鑳岀瘬鍙栬揣
+ if (backupAction) {
+ assert backpackType != null;
+ actionList.add(new Action(
+ null, // 缂栧彿
+ task.getBusId(), // 鎬荤嚎
+ task.getId(), // 浠诲姟
+ null, // 鍔ㄤ綔鍙�
+ null, // 浼樺厛绾�
+ ActionTypeType.ReadyTakeFromAgvSite.desc, // 鍚嶇О
+ (double) backpackType.lev, // 灞炴�у��
+ lastCode.getData(), // 鍦伴潰鐮�
+ String.valueOf(backpackType.height), // 鍔ㄤ綔鍙傛暟
+ ActionTypeType.ReadyTakeFromAgvSite.val(), // 鍔ㄤ綔绫诲瀷
+ actionPrepareSts, // 鍔ㄤ綔杩涘害
+ agvId, // AGV
+ now // 宸ヤ綔鏃堕棿
+ ));
+ }
// 璁$畻璐у弶宸ヤ綔鏂瑰悜
staWorkDirection = mapService.calculateAgvWorkDirectionByStation(destStaWorkDirection, lastDirection);
actionList.add(new Action(
@@ -1362,8 +1371,7 @@
}
// 濡傛灉鍏呯數涓紝鍒欏厛鏂紑鍏呯數
- // todo agvModel backpackAction ?
- if (agvModel.getNeedUndockingBool() && agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) {
+ if (needUndocking && agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) {
String undockingCode = Cools.isEmpty(actionList) ? lastCode.getData() : actionList.get(0).getCode();
// undocking charge
actionList.add(0, new Action(
@@ -1400,8 +1408,6 @@
now // 宸ヤ綔鏃堕棿
));
- // todo asr need optimize sort ?
- List<Action> newActionList = actionSorter.optimizeSort(actionList);
String groupId = String.valueOf(snowflakeIdWorker.nextId()).substring(3);
// update segment
@@ -1436,6 +1442,9 @@
// }
// }
+ // optimize action list, must have backpack
+ List<Action> newActionList = backupAction ? actionSorter.optimizeSort(actionList) : actionList;
+
// save action
int i = newActionList.size();
for (Action action : newActionList) {
--
Gitblit v1.9.1