From 46a1c6c2437c1341e1d7994d61b66eb27d40ae1b Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期六, 09 十一月 2024 15:58:46 +0800
Subject: [PATCH] #
---
zy-acs-manager/src/main/java/com/zy/acs/manager/common/CodeBuilder.java | 22 ++++++-----
zy-acs-manager/src/main/java/com/zy/acs/manager/core/PatrolService.java | 75 +++++++++++++++++++++++++++++++++++--
zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java | 3 +
zy-acs-flow/src/i18n/zh.js | 4 +-
4 files changed, 86 insertions(+), 18 deletions(-)
diff --git a/zy-acs-flow/src/i18n/zh.js b/zy-acs-flow/src/i18n/zh.js
index 607b965..ab0c193 100644
--- a/zy-acs-flow/src/i18n/zh.js
+++ b/zy-acs-flow/src/i18n/zh.js
@@ -646,8 +646,8 @@
enable: '鍚敤',
reset: '閲嶇疆',
restoreALl: '鎭㈠鎵�鏈�',
- startPatrol: '寮�鍚贰閫�',
- stopPatrol: '鍋滄宸¢��',
+ startPatrol: '寮�鍚� 宸¢��',
+ stopPatrol: '鍋滄 宸¢��',
},
mode: {
observer: '瑙傚療妯″紡',
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/CodeBuilder.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/CodeBuilder.java
index 6cfd2fa..8a0a868 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/common/CodeBuilder.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/common/CodeBuilder.java
@@ -48,18 +48,20 @@
}
/**
*
- * TRUNCATE man_action;
* TRUNCATE man_bus;
- * TRUNCATE man_code;
- * TRUNCATE man_code_gap;
- * TRUNCATE man_func_sta;
- * TRUNCATE man_jam;
- * TRUNCATE man_loc;
- * TRUNCATE man_nav_map;
- * TRUNCATE man_route;
- * TRUNCATE man_segment;
- * TRUNCATE man_sta;
* TRUNCATE man_task;
* TRUNCATE man_travel;
+ * TRUNCATE man_segment;
+ * TRUNCATE man_jam;
+ * TRUNCATE man_action;
+ *
+ * TRUNCATE man_code;
+ * TRUNCATE man_code_gap;
+ * TRUNCATE man_route;
+ *
+ * TRUNCATE man_func_sta;
+ * TRUNCATE man_loc;
+ * TRUNCATE man_sta;
+ * TRUNCATE man_nav_map;
*
*/
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/PatrolService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/PatrolService.java
index a40d879..e647b0c 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/PatrolService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/PatrolService.java
@@ -2,15 +2,28 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.acs.framework.common.R;
+import com.zy.acs.manager.core.service.MainService;
+import com.zy.acs.manager.core.service.MapService;
import com.zy.acs.manager.manager.entity.Agv;
+import com.zy.acs.manager.manager.entity.AgvDetail;
+import com.zy.acs.manager.manager.entity.Code;
+import com.zy.acs.manager.manager.entity.Task;
import com.zy.acs.manager.manager.enums.StatusType;
+import com.zy.acs.manager.manager.enums.TaskStsType;
+import com.zy.acs.manager.manager.enums.TaskTypeType;
+import com.zy.acs.manager.manager.service.AgvDetailService;
import com.zy.acs.manager.manager.service.AgvService;
+import com.zy.acs.manager.manager.service.CodeService;
+import com.zy.acs.manager.manager.service.TaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.*;
@@ -28,6 +41,63 @@
@Autowired
private AgvService agvService;
+ @Autowired
+ private AgvDetailService agvDetailService;
+ @Autowired
+ private TaskService taskService;
+ @Autowired
+ private MainService mainService;
+ @Autowired
+ private CodeService codeService;
+ @Autowired
+ private MapService mapService;
+
+ private void executePatrolLogic(String agvNo) {
+ this.patrolOfMove(agvNo);
+ }
+
+ private void patrolOfMove(String agvNo) {
+ Agv agv = agvService.selectByUuid(agvNo);
+ AgvDetail agvDetail = agvDetailService.selectByAgvId(agv.getId());
+ if (taskService.count(new LambdaQueryWrapper<Task>()
+ .eq(Task::getAgvId, agv.getId())
+ .and(i -> {
+ i.eq(Task::getTaskSts, TaskStsType.WAITING.val())
+ .or().eq(Task::getTaskSts, TaskStsType.ASSIGN.val())
+ .or().eq(Task::getTaskSts, TaskStsType.PROGRESS.val());
+ })) > 0) {
+ return;
+ }
+ if (!agvService.judgeEnable(agv.getId())) {
+ return;
+ }
+ Code randomCode = this.getRandomCode(agvDetail);
+ if (null == randomCode) {
+ return;
+ }
+ if (mainService.buildMinorTask(agv, agvDetail, TaskTypeType.MOVE, randomCode.getData())) {
+ log.info(agv.getUuid() + "寮�濮嬭蛋琛屾紨绀�...");
+ }
+ }
+
+ public Code getRandomCode(AgvDetail agvDetail) {
+ Code startCode = codeService.getById(agvDetail.getRecentCode());
+ List<String> notInCodeList = new ArrayList<>();
+ notInCodeList.add("00000061");
+ List<Code> list = codeService.list(new LambdaQueryWrapper<Code>().notIn(Code::getData, notInCodeList));
+ Collections.shuffle(list);
+ for (Code endCode : list) {
+ List<String> pathList = mapService.validFeasibility(startCode, endCode);
+ if (pathList.size() >= 5) {
+ return endCode;
+ }
+ }
+ return list.stream().findFirst().orElse(null);
+ }
+
+
+
+ // ---------------------------------------------------------------------------
public boolean isPatrolling(String agvNo) {
ScheduledFuture<?> scheduledFuture = AGV_PATROL_MAP.get(agvNo);
@@ -74,11 +144,6 @@
log.error("鏈兘鎴愬姛鍋滄AGV " + agvNo + " 鐨勮窇搴撲换鍔°��");
return R.error("鏈兘鎴愬姛鍋滄AGV " + agvNo + " 鐨勮窇搴撲换鍔°��");
}
- }
-
- private void executePatrolLogic(String agvNo) {
- // TODO: 鍦ㄨ繖閲屽疄鐜板叿浣撶殑璺戝簱涓氬姟閫昏緫
- log.info("鎵цAGV " + agvNo + " 鐨勮窇搴撲换鍔°��");
}
@PostConstruct
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java
index a126df9..0e99caf 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/floyd/FloydNavigateService.java
@@ -13,6 +13,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -63,8 +64,8 @@
return this.matrixHeader.get(idx);
}
-// @PostConstruct
@SuppressWarnings("all")
+ @PostConstruct
public void generateMatrix() {
log.info("銆怓LOYD銆戞鍦ㄨ绠楃煩闃垫暟鎹�......");
List<Code> codeList = codeService.list(new LambdaQueryWrapper<Code>().eq(Code::getStatus, 1).eq(Code::getDeleted, false));
--
Gitblit v1.9.1