From 4d45de01e35f8b271e5ba25439b574a8b67bc5eb Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期五, 26 十二月 2025 14:00:55 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java | 52 +++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 47 insertions(+), 5 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 9b744ed..7f210e5 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
@@ -13,6 +13,7 @@
import com.zy.acs.manager.common.exception.BusinessException;
import com.zy.acs.manager.core.service.*;
import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
+import com.zy.acs.manager.core.service.astart.domain.DynamicNode;
import com.zy.acs.manager.manager.entity.*;
import com.zy.acs.manager.manager.enums.*;
import com.zy.acs.manager.manager.service.*;
@@ -28,6 +29,7 @@
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
+import java.util.stream.Collectors;
/**
* Created by vincent on 8/1/2024
@@ -75,13 +77,53 @@
@PreAuthorize("hasAuthority('manager:agv:update')")
@OperationLog("Locate All Agv")
@PostMapping("/locateAllAgv")
- public synchronized R locateAllAgv() throws InterruptedException {
+ public synchronized R locateAllAgv() {
final Integer MAP_DEFAULT_LEV = 1;
redis.deleteValue(RedisConstant.AGV_MAP_ASTAR_DYNAMIC_FLAG, String.valueOf(MAP_DEFAULT_LEV));
avoidWaveCalculator.calcDynamicNodeWhenBoot();
return R.ok();
}
+ @PreAuthorize("hasAuthority('manager:agv:update')")
+ @PostMapping("/patrol/batch/startup")
+ public synchronized R patrolBatchStartup() {
+ List<Agv> list = agvService.list(new LambdaQueryWrapper<Agv>().eq(Agv::getStatus, StatusType.ENABLE.val));
+ DynamicNode[][] dynamicMatrix = mapDataDispatcher.getDynamicMatrix(MapDataDispatcher.MAP_DEFAULT_LEV);
+ int result = 0;
+ for (Agv agv : list) {
+ String agvNo = agv.getUuid();
+
+ boolean inMap = false;
+ label: for (int i = 0; i < dynamicMatrix.length; i++) {
+ for (int j = 0; j < dynamicMatrix[i].length; j++) {
+ DynamicNode dynamicNode = dynamicMatrix[i][j];
+ String vehicle = dynamicNode.getVehicle();
+ if (agvNo.equals(vehicle)) {
+ inMap = true;
+ break label;
+ }
+ }
+ }
+
+ if (inMap) {
+ patrolService.startupPatrol(agvNo);
+ result++;
+ }
+ }
+ return R.ok().add(result);
+ }
+
+ @PreAuthorize("hasAuthority('manager:agv:update')")
+ @PostMapping("/patrol/batch/shutdown")
+ public synchronized R patrolBatchShutdown() {
+ List<Agv> list = agvService.list(new LambdaQueryWrapper<Agv>());
+ for (String agvNo : list.stream().map(Agv::getUuid).collect(Collectors.toList())) {
+ if (patrolService.isPatrolling(agvNo)) {
+ patrolService.shutdownPatrol(agvNo);
+ }
+ }
+ return R.ok();
+ }
@RequestMapping(value = "/control/agv", method = {RequestMethod.GET, RequestMethod.POST})
@Transactional
@@ -149,7 +191,7 @@
oriLoc = locService.getById(param.getStartLocNo());
}
if (!Cools.isEmpty(param.getStartLocNoStr())) {
- oriLoc = locService.selecatByLocNo(param.getStartLocNoStr());
+ oriLoc = locService.selectByLocNo(param.getStartLocNoStr());
}
if (null == oriLoc) {
return R.error();
@@ -168,7 +210,7 @@
destLoc = locService.getById(param.getEndLocNo());
}
if (!Cools.isEmpty(param.getEndLocNoStr())) {
- destLoc = locService.selecatByLocNo(param.getEndLocNoStr());
+ destLoc = locService.selectByLocNo(param.getEndLocNoStr());
}
if (null == destLoc) {
return R.error();
@@ -196,7 +238,7 @@
oriLoc = locService.getById(param.getStartLocNo());
}
if (!Cools.isEmpty(param.getStartLocNoStr())) {
- oriLoc = locService.selecatByLocNo(param.getStartLocNoStr());
+ oriLoc = locService.selectByLocNo(param.getStartLocNoStr());
}
if (null == oriLoc) {
return R.error();
@@ -262,7 +304,7 @@
destLoc = locService.getById(param.getEndLocNo());
}
if (!Cools.isEmpty(param.getEndLocNoStr())) {
- destLoc = locService.selecatByLocNo(param.getEndLocNoStr());
+ destLoc = locService.selectByLocNo(param.getEndLocNoStr());
}
if (null == destLoc) {
return R.error();
--
Gitblit v1.9.1