From 2a6e27f1c0064690d6fc6ab137d64c02fc0742da Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期一, 16 六月 2025 16:16:09 +0800
Subject: [PATCH] 1
---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java | 7 ++++---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java | 2 +-
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java | 4 ++--
zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java | 8 +++++---
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java | 4 ++--
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java | 4 ++--
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java | 2 +-
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java | 2 +-
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java | 23 +++++++++++++++++++----
9 files changed, 37 insertions(+), 19 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 8f6a78e..dc9d4dc 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
@@ -134,10 +134,12 @@
log.info(agv.getUuid() + "鍙稟GV涓嶅彲鐢紝宸茬粡瀛樺湪杩涜涓殑浠诲姟...");
return R.error();
}
- if (!agvService.judgeEnable(agv.getId())) {
+ // zhangc 鍦ㄧ敤鎴锋墜鍔ㄦ帶鍒舵椂锛岄渶瑕佺敤鎴蜂富瑙傚垽鏂紝鎵�浠ュ皬杞﹀彧瑕侀珮浜庝綆鐢甸噺闃堝�煎氨鍙互鎵嬪姩鎺у埗锛屾墍浠ユ敞閲�
+ if (!agvService.judgeEnable(agv.getId(),true,true)) {
log.info(agv.getUuid() + "鍙稟GV涓嶅彲鐢紝浠诲姟鏃犳硶璁$畻...");
return R.error();
}
+
// generate
Loc oriLoc = null;
@@ -157,13 +159,13 @@
if (null == endCode) {
return R.error();
}
- if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), endCode.getData(), null)) {
+ if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), endCode.getData(), null, true)) {
return R.error();
}
break;
case TO_CHARGE:
case TO_STANDBY:
- if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), null, null)) {
+ if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), null, null, true)) {
return R.error();
}
break;
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
index d5b5c73..b8ff15e 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
@@ -81,7 +81,7 @@
continue;
}
- mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_CHARGE, null, null);
+ mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_CHARGE, null, null,false);
}
}
}
@@ -144,7 +144,7 @@
}
// }
- mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_STANDBY, null, null);
+ mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_STANDBY, null, null,false);
}
}
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 7204350..3d3b55c 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
@@ -82,7 +82,7 @@
continue;
}
// 2. in idle status
- if (!agvService.judgeEnable(agv.getId(), true)) {
+ if (!agvService.judgeEnable(agv.getId(), true,false)) {
continue;
}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java
index 0021542..108e789 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java
@@ -46,7 +46,7 @@
}
}
- public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam) {
+ public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam, Boolean force) {
boolean lockAcquired = false;
try {
if (!(lockAcquired = this.lock.tryLock(LOCK_TIMEOUT, TimeUnit.SECONDS))) {
@@ -54,7 +54,7 @@
}
// log.info("buildMinorTask AGV[{}] lock time: {}", agv.getUuid(), System.currentTimeMillis());
- return mainService.buildMinorTask(agvId, taskType, destination, jam);
+ return mainService.buildMinorTask(agvId, taskType, destination, jam,force);
} catch (Exception e) {
log.error("MainLockWrapService.buildMinorTask[task]", e);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
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 dbf5fd2..8f9d1bf 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
@@ -288,7 +288,7 @@
try {
// valid -----------------------------------------------
Agv agv = agvService.getById(agvId);
- if (!agvService.judgeEnable(agv.getId(), false)) {
+ if (!agvService.judgeEnable(agv.getId(), false, false)) {
return;
}
if (!Cools.isEmpty(taskService.selectInSts(agvId, TaskStsType.ASSIGN, TaskStsType.PROGRESS))) {
@@ -529,13 +529,14 @@
/**
* 鍏呯數 鍥炲緟鏈轰綅浠诲姟
+ * zc 鏂板浜嗘槸鍚﹀己鍒讹紝寮哄埗璇存槑鐢辩敤鎴峰彂璧凤紝灏忚溅鍦ㄨ秴杩囦綆鐢甸噺灏卞彲浠ュ仛绉诲姩鍏呯數鍘诲緟鏈轰綅
*/
@Transactional(propagation = Propagation.REQUIRES_NEW) // although there is a Transactional here that the lock is isolated, but we can't join the caller's Transactional
- public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam) {
+ public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam,boolean force) {
if (Cools.isEmpty(agvId, taskType)) { return false; }
try {
String agvNo = agvService.getAgvNo(agvId);
- if (!agvService.judgeEnable(agvId)) {
+ if (!agvService.judgeEnable(agvId,false, force)) {
return false;
}
if (!Cools.isEmpty(taskService.selectInSts(agvId, TaskStsType.ASSIGN, TaskStsType.PROGRESS))) {
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
index 2fdaf0b..86fb4cc 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java
@@ -125,7 +125,7 @@
return;
}
- if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null)) {
+ if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null,false)) {
log.info( "{}寮�濮嬩綔涓氭紨绀�...", agvNo);
CoreCache.AGV_MOCK_STEP_CACHE.put(agvId, CodeStepDto.build(destinationCodeData, jobType));
@@ -180,7 +180,7 @@
if (Cools.isEmpty(destinationCodeData)) {
return;
}
- if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null)) {
+ if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null,false)) {
log.info( "{}寮�濮嬭蛋琛屾紨绀�...", agvNo);
}
}
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 775f301..6e9066e 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
@@ -601,7 +601,7 @@
} else {
- return mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, endCodeData, jam);
+ return mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, endCodeData, jam, false);
}
return true;
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java
index 989a4e0..6b7e72f 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java
@@ -28,7 +28,7 @@
Boolean judgeEnable(Long agvId);
- Boolean judgeEnable(Long agvId, Boolean withBattery);
+ Boolean judgeEnable(Long agvId, Boolean withBattery, Boolean force);
Boolean judgeOnline(Long agvId);
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
index 1a08ec2..e153887 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
@@ -106,11 +106,18 @@
@Override
public Boolean judgeEnable(Long agvId) {
- return this.judgeEnable(agvId, false);
+ return this.judgeEnable(agvId, false,false);
}
+ /**
+ * 鍒ゆ柇AGV鏄惁鍙敤
+ * @param agvId
+ * @param isLowBattery 浣庣數閲忓垽鏂�
+ * @param force 鏄惁寮哄埗鎿嶄綔
+ * @return
+ */
@Override
- public Boolean judgeEnable(Long agvId, Boolean isLowBattery) {
+ public Boolean judgeEnable(Long agvId, Boolean isLowBattery, Boolean force) {
String agvNo = this.getAgvNo(agvId);
AgvModel agvModel = agvModelService.getByAgvId(agvId);
if (0 < segmentService.count(new LambdaQueryWrapper<Segment>()
@@ -137,8 +144,14 @@
return false;
}
if (agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) {
- if (agvDetail.getVol() < agvModel.getQuaBattery()) {
- return false;
+ if (force){
+ if (agvDetail.getVol() < agvModel.getLowBattery()) {
+ return false;
+ }
+ }else {
+ if (agvDetail.getVol() < agvModel.getQuaBattery()) {
+ return false;
+ }
}
}
if (!agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) {
@@ -163,6 +176,8 @@
return true;
}
+
+
@Override
public Boolean judgeOnline(Long agvId) {
Agv agv = this.getById(agvId);
--
Gitblit v1.9.1