From 43412c20ac444392471ea8ea8bc4a93af39efe87 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 19 一月 2026 13:17:27 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Loc.java | 70 +++++++++--------------
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Sta.java | 18 +++--
zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java | 37 ++++++++++++
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvAreaDispatcher.java | 23 ++++++-
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java | 4
5 files changed, 95 insertions(+), 57 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 0814a51..4cedd28 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
@@ -75,6 +75,8 @@
private PatrolService patrolService;
@Autowired
private StaReserveService staReserveService;
+ @Autowired
+ private AgvAreaDispatcher agvAreaDispatcher;
@PreAuthorize("hasAuthority('manager:agv:update')")
@OperationLog("Locate All Agv")
@@ -193,6 +195,9 @@
if (null == endCode) {
return R.error();
}
+ if (!agvAreaDispatcher.match(agv.getId(), endCode.getId())) {
+ throw new BusinessException("AGV " + agv.getUuid() + " failed to reach target code " + endCode.getData());
+ }
if (!taskService.removeById(task.getId())) {
throw new BusinessException("failed to remove task");
}
@@ -222,6 +227,10 @@
if (null == oriLoc) {
return R.error();
}
+ if (!agvAreaDispatcher.match(agv.getId(), oriLoc.getCode())) {
+// throw new BusinessException("AGV " + agv.getUuid() + " failed to reach target code " + oriLoc.getCode$());
+ throw new BusinessException("AGV銆�" + agv.getUuid() + "銆戞棤娉曞埌杈捐捣濮嬪簱浣嶃��" + oriLoc.getLocNo() + "銆�");
+ }
if (!oriLoc.getLocSts().equals(LocStsType.STOCK.val())) {
throw new BusinessException("oriLoc锛�" + oriLoc.getLocNo() + " 涓嶆槸鍦ㄥ簱鐘舵��");
}
@@ -240,6 +249,10 @@
}
if (null == destLoc) {
return R.error();
+ }
+ if (!agvAreaDispatcher.match(agv.getId(), destLoc.getCode())) {
+// throw new BusinessException("AGV " + agv.getUuid() + " failed to reach target code " + destLoc.getCode$());
+ throw new BusinessException("AGV銆�" + agv.getUuid() + "銆戞棤娉曞埌杈剧洰鏍囧簱浣嶃��" + destLoc.getLocNo() + "銆�");
}
if (!destLoc.getLocSts().equals(LocStsType.IDLE.val())) {
throw new BusinessException("destLoc锛�" + destLoc.getLocNo() + " 涓嶆槸绌洪棽鐘舵��");
@@ -267,6 +280,10 @@
if (null == oriLoc) {
return R.error();
}
+ if (!agvAreaDispatcher.match(agv.getId(), oriLoc.getCode())) {
+// throw new BusinessException("AGV " + agv.getUuid() + " failed to reach target code " + oriLoc.getCode$());
+ throw new BusinessException("AGV銆�" + agv.getUuid() + "銆戞棤娉曞埌杈捐捣濮嬪簱浣嶃��" + oriLoc.getLocNo() + "銆�");
+ }
if (!oriLoc.getLocSts().equals(LocStsType.STOCK.val())) {
throw new BusinessException("oriLoc锛�" + oriLoc.getLocNo() + " 涓嶆槸鍦ㄥ簱鐘舵��");
}
@@ -285,6 +302,10 @@
}
if (null == destSta) {
return R.error();
+ }
+ if (!agvAreaDispatcher.match(agv.getId(), destSta.getCode())) {
+// throw new BusinessException("AGV " + agv.getUuid() + " failed to reach target code " + destSta.getCode$());
+ throw new BusinessException("AGV銆�" + agv.getUuid() + "銆戞棤娉曞埌杈剧洰鏍囩珯鐐广��" + destSta.getStaNo() + "銆�");
}
if (null == staReserveService.reserveStaIn(destSta, task, 1)) {
throw new BusinessException("destSta锛�" + destSta.getStaNo() + " 棰勭害澶辫触");
@@ -308,6 +329,10 @@
if (null == oriSta) {
return R.error();
}
+ if (!agvAreaDispatcher.match(agv.getId(), oriSta.getCode())) {
+// throw new BusinessException("AGV " + agv.getUuid() + " failed to reach target code " + oriSta.getCode$());
+ throw new BusinessException("AGV銆�" + agv.getUuid() + "銆戞棤娉曞埌杈捐捣濮嬬珯鐐广��" + oriSta.getStaNo() + "銆�");
+ }
if (null == staReserveService.reserveStaOut(oriSta, task, 1)) {
throw new BusinessException("oriSta锛�" + oriSta.getStaNo() + " 棰勭害澶辫触");
}
@@ -321,6 +346,10 @@
}
if (null == destLoc) {
return R.error();
+ }
+ if (!agvAreaDispatcher.match(agv.getId(), destLoc.getCode())) {
+// throw new BusinessException("AGV " + agv.getUuid() + " failed to reach target code " + destLoc.getCode$());
+ throw new BusinessException("AGV銆�" + agv.getUuid() + "銆戞棤娉曞埌杈剧洰鏍囧簱浣嶃��" + destLoc.getLocNo() + "銆�");
}
if (!destLoc.getLocSts().equals(LocStsType.IDLE.val())) {
throw new BusinessException("destLoc锛�" + destLoc.getLocNo() + " 涓嶆槸绌洪棽鐘舵��");
@@ -350,6 +379,10 @@
if (null == oriSta) {
return R.error();
}
+ if (!agvAreaDispatcher.match(agv.getId(), oriSta.getCode())) {
+// throw new BusinessException("AGV " + agv.getUuid() + " failed to reach target code " + oriSta.getCode$());
+ throw new BusinessException("AGV銆�" + agv.getUuid() + "銆戞棤娉曞埌杈捐捣濮嬬珯鐐广��" + oriSta.getStaNo() + "銆�");
+ }
if (null == staReserveService.reserveStaOut(oriSta, task, 1)) {
throw new BusinessException("oriSta锛�" + oriSta.getStaNo() + " 棰勭害澶辫触");
}
@@ -365,6 +398,10 @@
if (null == destSta) {
return R.error();
}
+ if (!agvAreaDispatcher.match(agv.getId(), destSta.getCode())) {
+// throw new BusinessException("AGV " + agv.getUuid() + " failed to reach target code " + destSta.getCode$());
+ throw new BusinessException("AGV銆�" + agv.getUuid() + "銆戞棤娉曞埌杈剧洰鏍囩珯鐐广��" + destSta.getStaNo() + "銆�");
+ }
if (null == staReserveService.reserveStaIn(destSta, task, 1)) {
throw new BusinessException("destSta锛�" + destSta.getStaNo() + " 棰勭害澶辫触");
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvAreaDispatcher.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvAreaDispatcher.java
index 605293b..22a9888 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvAreaDispatcher.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvAreaDispatcher.java
@@ -36,7 +36,7 @@
public void init() {
}
- public List<Long> getAgvNosByTask(Task task) {
+ public List<Long> getAgvIdsByTask(Task task) {
if (null == task) {
return null;
}
@@ -67,11 +67,11 @@
return null;
}
- public List<Long> getAgvIdsByCode(String code) {
- if (Cools.isEmpty(code)) {
+ public List<Long> getAgvIdsByCode(String codeData) {
+ if (Cools.isEmpty(codeData)) {
return new ArrayList<>();
}
- List<Long> areaIds = areaGovernService.queryAreas(code);
+ List<Long> areaIds = areaGovernService.queryAreas(codeData);
List<Long> agvIds = areaAgvService.queryAgvIdsByAreaIds(areaIds);
agvIds.addAll(areaAgvService.findAgvIdsWithoutAreaAgv());
return agvIds;
@@ -81,6 +81,21 @@
return null;
}
+ public Boolean match(Long agvId, Long codeId) {
+ Code code = codeService.getCacheById(codeId);
+ if (Cools.isEmpty(agvId, code)) {
+ return false;
+ }
+ List<Long> agvIds = this.getAgvIdsByCode(code.getData());
+ if (Cools.isEmpty(agvIds)) {
+ return false;
+ }
+ if (!agvIds.contains(agvId)) {
+ return false;
+ }
+ return true;
+ }
+
// 濡傛灉閮芥病鏈夊懡涓紝灏辫繑鍥炲叏閮╟ode
public List<String> getCodesByAgvId(Long agvId) {
List<Long> areaIds = areaAgvService.queryAreaIdsByAgvId(agvId);
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
index 2918e16..0dc1f6f 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java
@@ -121,7 +121,7 @@
return null;
}
- List<String> availableAgvNos = this.getAvailableAgvNos(agvAreaDispatcher.getAgvNosByTask(task), true);
+ List<String> availableAgvNos = this.getAvailableAgvNos(agvAreaDispatcher.getAgvIdsByTask(task), true);
FilterLaneDto filterLaneDto = this.filterThroughLane(task, availableAgvNos);
if (filterLaneDto == null) {
return null;
@@ -155,7 +155,7 @@
* it can break the limit of the number of agv backpack
*/
public synchronized String normalExecute(Task task) {
- List<String> availableAgvNos = this.getAvailableAgvNos(agvAreaDispatcher.getAgvNosByTask(task), false);
+ List<String> availableAgvNos = this.getAvailableAgvNos(agvAreaDispatcher.getAgvIdsByTask(task), false);
// List<String> availableAgvNos = this.getAvailableAgvNos(null);
if (Cools.isEmpty(availableAgvNos)) {
// log.warn("No available agv to assign the task[{}]", task.getSeqNum());
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Loc.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Loc.java
index 478733c..d34dc3b 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Loc.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Loc.java
@@ -7,8 +7,6 @@
import com.zy.acs.framework.common.SpringUtils;
import com.zy.acs.manager.manager.service.CodeService;
import com.zy.acs.manager.manager.service.LocStsService;
-import com.zy.acs.manager.manager.service.LocTypeService;
-import com.zy.acs.manager.manager.service.ZoneService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -208,32 +206,32 @@
// null // 澶囨敞
// );
- public String getZoneId$(){
- ZoneService service = SpringUtils.getBean(ZoneService.class);
- Zone zone = service.getById(this.zoneId);
- if (!Cools.isEmpty(zone)){
- return String.valueOf(zone.getName());
- }
- return null;
- }
+// public String getZoneId$(){
+// ZoneService service = SpringUtils.getBean(ZoneService.class);
+// Zone zone = service.getById(this.zoneId);
+// if (!Cools.isEmpty(zone)){
+// return String.valueOf(zone.getName());
+// }
+// return null;
+// }
public String getCode$(){
CodeService service = SpringUtils.getBean(CodeService.class);
- Code code = service.getById(this.code);
+ Code code = service.getCacheById(this.code);
if (!Cools.isEmpty(code)){
return String.valueOf(code.getData());
}
return null;
}
- public String getLocSts$(){
- LocStsService service = SpringUtils.getBean(LocStsService.class);
- LocSts locSts = service.getById(this.locSts);
- if (!Cools.isEmpty(locSts)){
- return String.valueOf(locSts.getName());
- }
- return null;
- }
+// public String getLocSts$(){
+// LocStsService service = SpringUtils.getBean(LocStsService.class);
+// LocSts locSts = service.getById(this.locSts);
+// if (!Cools.isEmpty(locSts)){
+// return String.valueOf(locSts.getName());
+// }
+// return null;
+// }
public String getLocStsEl(){
LocStsService service = SpringUtils.getBean(LocStsService.class);
@@ -244,36 +242,22 @@
return null;
}
- public String getLocType$(){
- LocTypeService service = SpringUtils.getBean(LocTypeService.class);
- LocType locType = service.getById(this.locType);
- if (!Cools.isEmpty(locType)){
- return String.valueOf(locType.getName());
- }
- return null;
- }
-
- public String getStatus$(){
- if (null == this.status){ return null; }
- switch (this.status){
- case 1:
- return "姝e父";
- case 0:
- return "鍐荤粨";
- default:
- return String.valueOf(this.status);
- }
- }
-
-
+// public String getLocType$(){
+// LocTypeService service = SpringUtils.getBean(LocTypeService.class);
+// LocType locType = service.getById(this.locType);
+// if (!Cools.isEmpty(locType)){
+// return String.valueOf(locType.getName());
+// }
+// return null;
+// }
public String getCompDirect$(){
if (null == this.compDirect){ return null; }
switch (this.compDirect){
case 1:
- return "澶т簬";
+ return "RIGHT";
case 0:
- return "灏忎簬";
+ return "LEFT";
default:
return String.valueOf(this.deleted);
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Sta.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Sta.java
index 8347a1f..ff9e23a 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Sta.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/Sta.java
@@ -4,6 +4,8 @@
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zy.acs.framework.common.Cools;
+import com.zy.acs.framework.common.SpringUtils;
+import com.zy.acs.manager.manager.service.CodeService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -116,14 +118,14 @@
// return null;
// }
//
-// public String getCode$(){
-// CodeService service = SpringUtils.getBean(CodeService.class);
-// Code code = service.getById(this.code);
-// if (!Cools.isEmpty(code)){
-// return String.valueOf(code.getUuid());
-// }
-// return null;
-// }
+ public String getCode$(){
+ CodeService service = SpringUtils.getBean(CodeService.class);
+ Code code = service.getCacheById(this.code);
+ if (!Cools.isEmpty(code)){
+ return String.valueOf(code.getData());
+ }
+ return null;
+ }
//
// public String getStaSts$(){
// StaStsService service = SpringUtils.getBean(StaStsService.class);
--
Gitblit v1.9.1