From 6cbb420754e6e29fa134a6afca4514b8dfd62918 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期二, 13 一月 2026 16:14:49 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java | 100 +++++++++++++++++++++++---------------------------
1 files changed, 46 insertions(+), 54 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
index 7f210e5..0814a51 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
@@ -73,6 +73,8 @@
private AvoidWaveCalculator avoidWaveCalculator;
@Autowired
private PatrolService patrolService;
+ @Autowired
+ private StaReserveService staReserveService;
@PreAuthorize("hasAuthority('manager:agv:update')")
@OperationLog("Locate All Agv")
@@ -149,12 +151,29 @@
.eq(Task::getTaskSts, TaskStsType.ASSIGN.val())
.or().eq(Task::getTaskSts, TaskStsType.PROGRESS.val());
})) > 0) {
- log.info(agv.getUuid() + "鍙稟GV涓嶅彲鐢紝宸茬粡瀛樺湪杩涜涓殑浠诲姟...");
+ log.info("{}鍙稟GV涓嶅彲鐢紝宸茬粡瀛樺湪杩涜涓殑浠诲姟...", agv.getUuid());
return R.error();
}
if (!agvService.judgeEnable(agv.getId())) {
- log.info(agv.getUuid() + "鍙稟GV涓嶅彲鐢紝浠诲姟鏃犳硶璁$畻...");
+ log.info("{}鍙稟GV涓嶅彲鐢紝浠诲姟鏃犳硶璁$畻...", agv.getUuid());
return R.error();
+ }
+
+ Task task = new Task();
+ task.setAgvId(agv.getId());
+ task.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
+ List<Task> lastTasks = taskService.list(new LambdaQueryWrapper<Task>().orderByDesc(Task::getId));
+ task.setSeqNum(Utils.generateSeqNum(Cools.isEmpty(lastTasks)?null:lastTasks.get(0).getSeqNum()));
+
+ task.setTaskType(param.getTaskMode().val());
+ task.setTaskSts(TaskStsType.WAITING.val());
+
+ task.setPriority(999);
+ task.setIoTime(now);
+ task.setStartTime(now);
+ task.setMemo("AUTO");
+ if (!taskService.save(task)) {
+ throw new BusinessException(task.getSeqNum() + "浠诲姟淇濆瓨澶辫触");
}
// generate
@@ -162,7 +181,6 @@
Loc destLoc = null;
Sta oriSta = null;
Sta destSta = null;
- Task task = null;
switch (param.getTaskMode()) {
case MOVE:
Code endCode = null;
@@ -175,12 +193,20 @@
if (null == endCode) {
return R.error();
}
+ if (!taskService.removeById(task.getId())) {
+ throw new BusinessException("failed to remove task");
+ }
+ task = null;
if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), endCode.getData(), null)) {
return R.error();
}
break;
case TO_CHARGE:
case TO_STANDBY:
+ if (!taskService.removeById(task.getId())) {
+ throw new BusinessException("failed to remove task");
+ }
+ task = null;
if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), null, null)) {
return R.error();
}
@@ -225,8 +251,6 @@
}
// task
- task = new Task();
-
task.setOriLoc(oriLoc.getId());
task.setOriCode(oriLoc.getCode());
task.setDestLoc(destLoc.getId());
@@ -262,22 +286,16 @@
if (null == destSta) {
return R.error();
}
- if (!destSta.getStaSts().equals(StaStsType.IDLE.val())) {
- throw new BusinessException("destSta锛�" + destSta.getStaNo() + " 涓嶆槸鏃犺揣鐘舵��");
+ if (null == staReserveService.reserveStaIn(destSta, task, 1)) {
+ throw new BusinessException("destSta锛�" + destSta.getStaNo() + " 棰勭害澶辫触");
}
- destSta.setStaSts(StaStsType.READY_RELEASE.val());
- destSta.setUpdateTime(now);
- if (!staService.updateById(destSta)) {
- throw new BusinessException("destSta锛�" + destSta.getStaNo() + " 淇敼绔欑偣鐘舵�佸け璐�");
- }
-
// task
- task = new Task();
-
task.setOriLoc(oriLoc.getId());
task.setOriCode(oriLoc.getCode());
task.setDestSta(destSta.getId());
task.setDestCode(destSta.getCode());
+
+ staReserveService.allocateCallBack(task, agv.getId());
break;
case STA_TO_LOC:
// oriSta
@@ -290,13 +308,8 @@
if (null == oriSta) {
return R.error();
}
- if (!oriSta.getStaSts().equals(StaStsType.STOCK.val())) {
- throw new BusinessException("oriSta锛�" + oriSta.getStaNo() + " 涓嶆槸鏈夎揣鐘舵��");
- }
- oriSta.setStaSts(StaStsType.READY_TAKE.val());
- oriSta.setUpdateTime(now);
- if (!staService.updateById(oriSta)) {
- throw new BusinessException("oriSta锛�" + oriSta.getStaNo() + " 淇敼绔欑偣鐘舵�佸け璐�");
+ if (null == staReserveService.reserveStaOut(oriSta, task, 1)) {
+ throw new BusinessException("oriSta锛�" + oriSta.getStaNo() + " 棰勭害澶辫触");
}
// destLoc
@@ -319,12 +332,12 @@
}
// task
- task = new Task();
-
task.setOriSta(oriSta.getId());
task.setOriCode(oriSta.getCode());
task.setDestLoc(destLoc.getId());
task.setDestCode(destLoc.getCode());
+
+ staReserveService.allocateCallBack(task, agv.getId());
break;
case STA_TO_STA:
// oriSta
@@ -337,14 +350,10 @@
if (null == oriSta) {
return R.error();
}
- if (!oriSta.getStaSts().equals(StaStsType.STOCK.val())) {
- throw new BusinessException("oriSta锛�" + oriSta.getStaNo() + " 涓嶆槸鏈夎揣鐘舵��");
+ if (null == staReserveService.reserveStaOut(oriSta, task, 1)) {
+ throw new BusinessException("oriSta锛�" + oriSta.getStaNo() + " 棰勭害澶辫触");
}
- oriSta.setStaSts(StaStsType.READY_TAKE.val());
- oriSta.setUpdateTime(now);
- if (!staService.updateById(oriSta)) {
- throw new BusinessException("oriSta锛�" + oriSta.getStaNo() + " 淇敼绔欑偣鐘舵�佸け璐�");
- }
+
// destSta
if (!Cools.isEmpty(param.getEndStaNo())) {
@@ -356,44 +365,27 @@
if (null == destSta) {
return R.error();
}
- if (!destSta.getStaSts().equals(StaStsType.IDLE.val())) {
- throw new BusinessException("destSta锛�" + destSta.getStaNo() + " 涓嶆槸鏃犺揣鐘舵��");
- }
- destSta.setStaSts(StaStsType.READY_RELEASE.val());
- destSta.setUpdateTime(now);
- if (!staService.updateById(destSta)) {
- throw new BusinessException("destSta锛�" + destSta.getStaNo() + " 淇敼绔欑偣鐘舵�佸け璐�");
+ if (null == staReserveService.reserveStaIn(destSta, task, 1)) {
+ throw new BusinessException("destSta锛�" + destSta.getStaNo() + " 棰勭害澶辫触");
}
// task
- task = new Task();
-
task.setOriSta(oriSta.getId());
task.setOriCode(oriSta.getCode());
task.setDestSta(destSta.getId());
task.setDestCode(destSta.getCode());
+
+ staReserveService.allocateCallBack(task, agv.getId());
break;
default:
break;
}
if (null != task) {
- task.setAgvId(agv.getId());
- task.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3));
- List<Task> lastTasks = taskService.list(new LambdaQueryWrapper<Task>().orderByDesc(Task::getId));
- task.setSeqNum(Utils.generateSeqNum(Cools.isEmpty(lastTasks)?null:lastTasks.get(0).getSeqNum()));
-
- task.setTaskType(param.getTaskMode().val());
- task.setTaskSts(TaskStsType.WAITING.val());
-
- task.setPriority(999);
- task.setIoTime(now);
- task.setStartTime(now);
- if (!taskService.save(task)) {
- throw new BusinessException(task.getSeqNum() + "浠诲姟淇濆瓨澶辫触");
+ if (!taskService.updateById(task)) {
+ throw new BusinessException("浠诲姟鏇存柊澶辫触");
}
}
-
return R.ok();
}
--
Gitblit v1.9.1