From dc7913f05cdef24530cf8d2b651ba6d22c53b471 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 09 十二月 2024 16:48:49 +0800
Subject: [PATCH] #
---
/dev/null | 372 ----------------------------------------------
zy-acs-manager/src/main/java/com/zy/acs/manager/core/utils/RouteGenerator.java | 73 +++++++++
2 files changed, 73 insertions(+), 372 deletions(-)
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/TestController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/TestController.java
deleted file mode 100644
index 0888b3c..0000000
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/TestController.java
+++ /dev/null
@@ -1,372 +0,0 @@
-//package com.zy.acs.manager.core;
-//
-//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-//import com.zy.acs.manager.common.domain.TaskDto;
-//import com.zy.acs.manager.core.service.MainService;
-//import com.zy.acs.manager.core.service.MapService;
-//import com.zy.acs.manager.manager.controller.param.OpenBusSubmitParam;
-//import com.zy.acs.manager.manager.entity.*;
-//import com.zy.acs.manager.manager.enums.BusStsType;
-//import com.zy.acs.manager.manager.enums.LocStsType;
-//import com.zy.acs.manager.manager.enums.TaskStsType;
-//import com.zy.acs.manager.manager.enums.TaskTypeType;
-//import com.zy.acs.manager.manager.service.*;
-//import com.zy.acs.manager.system.controller.BaseController;
-//import com.zy.acs.manager.system.service.ConfigService;
-//import com.zy.acs.framework.common.Cools;
-//import com.zy.acs.framework.common.R;
-//import com.zy.acs.framework.common.SnowflakeIdWorker;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.scheduling.annotation.Scheduled;
-//import org.springframework.web.bind.annotation.GetMapping;
-//import org.springframework.web.bind.annotation.RequestMapping;
-//import org.springframework.web.bind.annotation.RequestParam;
-//import org.springframework.web.bind.annotation.RestController;
-//
-//import java.util.ArrayList;
-//import java.util.Collections;
-//import java.util.List;
-//
-///**
-// * Created by vincent on 2023/6/20
-// */
-//@RestController
-//@RequestMapping("/test")
-//public class TestController extends BaseController {
-//
-// @Autowired
-// private BusService busService;
-// @Autowired
-// private MainService mainService;
-// @Autowired
-// private SnowflakeIdWorker snowflakeIdWorker;
-// @Autowired
-// private AgvModelService agvModelService;
-// @Autowired
-// private AgvService agvService;
-// @Autowired
-// private AgvDetailService agvDetailService;
-// @Autowired
-// private TaskService taskService;
-// @Autowired
-// private CodeService codeService;
-// @Autowired
-// private MapService mapService;
-//
-//
-///*
-//TRUNCATE man_bus;
-//TRUNCATE man_task;
-//TRUNCATE man_action;
-//UPDATE man_loc SET loc_sts = 16 WHERE loc_sts = 18;
-//UPDATE man_loc SET loc_sts = 15 WHERE loc_sts = 17;
-//*/
-//
-// @Value("${auto.move}")
-// private Boolean autoMove;
-// @Value("${auto.demo}")
-// private Boolean autoDemo;
-// @Value("${auto.demo1}")
-// private Boolean autoDemo1;
-// @Value("${auto.demo2}")
-// private Boolean autoDemo2;
-// @Value("${auto.size}")
-// private Integer autoSize;
-// @Autowired
-// private LocService locService;
-// @Autowired
-// private ConfigService configService;
-//
-// // http://localhost:9090/test/auto/move
-// @GetMapping("/auto/move")
-// public R autoMove() {
-// this.autoMove = !this.autoMove;
-// return R.ok().add(Cools.add("autoMove", this.autoMove));
-// }
-//
-// @Scheduled(cron = "0/1 * * * * ? ")
-// private void move1() throws InterruptedException {
-// if (!this.autoMove) { return; }
-// Agv agv = agvService.selectByUuid("1");
-// 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())) {
-// System.out.println(agv.getUuid() + "寮�濮嬭蛋琛屾紨绀�...");
-// }
-// }
-//// @Scheduled(cron = "0 */3 * * * ? ")
-// @Scheduled(cron = "0/1 * * * * ? ")
-// private void move2() throws InterruptedException {
-// if (!this.autoMove) { return; }
-// Agv agv = agvService.selectByUuid("2");
-// 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())) {
-// System.out.println(agv.getUuid() + "寮�濮嬭蛋琛屾紨绀�...");
-// }
-// }
-//
-// public Code getRandomCode(AgvDetail agvDetail) {
-// Code startCode = codeService.getById(agvDetail.getRecentCode());
-// List<String> notInCodeList = new ArrayList<>();
-// notInCodeList.add("00000024");
-// notInCodeList.add("00000025");
-// notInCodeList.add("00000026");
-// notInCodeList.add("00000027");
-// notInCodeList.add("00000028");
-// notInCodeList.add("00000029");
-// notInCodeList.add("00000023");
-// notInCodeList.add("00000035");
-// 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);
-// }
-//
-// // http://localhost:9090/test/auto?size=1
-// @GetMapping("/auto")
-// public R auto(@RequestParam(value = "size", required = false) Integer size) {
-// if (null != size) {
-// this.autoSize = size;
-// }
-// this.autoDemo = !this.autoDemo;
-// return R.ok(Cools.add("autoDemo", this.autoDemo));
-// }
-//
-// @Scheduled(cron = "0/1 * * * * ? ")
-// private void demo() throws InterruptedException {
-// if (!this.autoDemo) { return; }
-// int busLimit = configService.getVal("busLimit", Integer.class);
-// if (autoSize != null) {
-// busLimit = autoSize;
-// }
-// busLimit = 2;
-// AgvModel agvModel = agvModelService.list(new LambdaQueryWrapper<>()).stream().findFirst().orElse(null);
-// if (null != agvModel) {
-// busLimit = agvModel.getBackpack() * 2;
-// }
-// // 鍦ㄥ簱
-// int stock = 0;
-// List<Loc> stockList = locService.list(new LambdaQueryWrapper<Loc>()
-// .eq(Loc::getLocSts, LocStsType.STOCK.val())
-// .ge(Loc::getRow, 1)
-// .le(Loc::getRow, 2)
-// );
-// Collections.shuffle(stockList);
-// if (stockList.size() > busLimit) {
-// stockList = stockList.subList(0, busLimit);
-// }
-// stock = stockList.size();
-// if (stock == 0) { return;}
-//
-// // 绌洪棽
-// List<Loc> idleList = locService.list(new LambdaQueryWrapper<Loc>()
-// .eq(Loc::getLocSts, LocStsType.IDLE.val())
-// .ge(Loc::getRow, 1)
-// .le(Loc::getRow, 2)
-// );
-// Collections.shuffle(idleList);
-// if (idleList.size() > stock) {
-// idleList = idleList.subList(0, stock);
-// }
-//
-// if (stockList.size() == idleList.size()) {
-// OpenBusSubmitParam param = new OpenBusSubmitParam();
-// param.setBatch("batchNo");
-// for (int i = 0; i < stock; i++) {
-// Loc stockLoc = stockList.get(i);
-// Loc idleLoc = idleList.get(i);
-//
-// TaskDto taskDto = new TaskDto();
-// taskDto.setOriLoc(stockLoc.getLocNo());
-// taskDto.setDestLoc(idleLoc.getLocNo());
-// taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19));
-//
-// param.getTaskList().add(taskDto);
-//
-// }
-//
-// if (Cools.isEmpty(busService.selectBySts(BusStsType.RECEIVE, "autoDemo"))
-// && Cools.isEmpty(busService.selectBySts(BusStsType.PROGRESS, "autoDemo"))
-// ) {
-// mainService.generateBusAndTask(param, "autoDemo");
-// }
-//
-// }
-//
-// }
-//
-//
-// // http://localhost:9090/test/auto1?size=1
-// @GetMapping("/auto1")
-// public R auto1(@RequestParam(value = "size", required = false) Integer size) {
-// if (null != size) {
-// this.autoSize = size;
-// }
-// this.autoDemo1 = !this.autoDemo1;
-// return R.ok(Cools.add("autoDemo", this.autoDemo1));
-// }
-//
-// @Scheduled(cron = "0/3 * * * * ? ")
-// private void demo1() throws InterruptedException {
-// if (!this.autoDemo1) { return; }
-// int busLimit = configService.getVal("busLimit", Integer.class);
-// if (autoSize != null) {
-// busLimit = autoSize;
-// }
-// // 鍦ㄥ簱
-// int stock = 0;
-// List<Loc> stockList = locService.list(new LambdaQueryWrapper<Loc>()
-// .eq(Loc::getLocSts, LocStsType.STOCK.val())
-// .ge(Loc::getRow, 1)
-// .le(Loc::getRow, 2)
-// );
-// Collections.shuffle(stockList);
-// if (stockList.size() > busLimit) {
-// stockList = stockList.subList(0, busLimit);
-// }
-// stock = stockList.size();
-// if (stock == 0) { return;}
-//
-// // 绌洪棽
-// List<Loc> idleList = locService.list(new LambdaQueryWrapper<Loc>()
-// .eq(Loc::getLocSts, LocStsType.IDLE.val())
-// .ge(Loc::getRow, 1)
-// .le(Loc::getRow, 2)
-// );
-// Collections.shuffle(idleList);
-// if (idleList.size() > stock) {
-// idleList = idleList.subList(0, stock);
-// }
-//
-// if (stockList.size() == idleList.size()) {
-// OpenBusSubmitParam param = new OpenBusSubmitParam();
-// param.setBatch("batchNo");
-// for (int i = 0; i < stock; i++) {
-// Loc stockLoc = stockList.get(i);
-// Loc idleLoc = idleList.get(i);
-//
-// TaskDto taskDto = new TaskDto();
-// taskDto.setOriLoc(stockLoc.getLocNo());
-// taskDto.setDestLoc(idleLoc.getLocNo());
-// taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19));
-//
-// param.getTaskList().add(taskDto);
-//
-// }
-//
-// if (Cools.isEmpty(busService.selectBySts(BusStsType.RECEIVE, "autoDemo1"))
-// && Cools.isEmpty(busService.selectBySts(BusStsType.PROGRESS, "autoDemo1"))
-// ) {
-// mainService.generateBusAndTask(param, "autoDemo1");
-// }
-//
-// }
-//
-// }
-//
-// // http://localhost:9090/test/auto2?size=1
-// @GetMapping("/auto2")
-// public R auto2(@RequestParam(value = "size", required = false) Integer size) {
-// if (null != size) {
-// this.autoSize = size;
-// }
-// this.autoDemo2 = !this.autoDemo2;
-// return R.ok(Cools.add("autoDemo", this.autoDemo2));
-// }
-//
-// @Scheduled(cron = "0/3 * * * * ? ")
-// private void demo2() throws InterruptedException {
-// if (!this.autoDemo2) { return; }
-// int busLimit = configService.getVal("busLimit", Integer.class);
-// if (autoSize != null) {
-// busLimit = autoSize;
-// }
-// // 鍦ㄥ簱
-// int stock = 0;
-// List<Loc> stockList = locService.list(new LambdaQueryWrapper<Loc>()
-// .eq(Loc::getLocSts, LocStsType.STOCK.val())
-// .ge(Loc::getRow, 3)
-// .le(Loc::getRow, 4)
-// );
-// Collections.shuffle(stockList);
-// if (stockList.size() > busLimit) {
-// stockList = stockList.subList(0, busLimit);
-// }
-// stock = stockList.size();
-// if (stock == 0) { return;}
-//
-// // 绌洪棽
-// List<Loc> idleList = locService.list(new LambdaQueryWrapper<Loc>()
-// .eq(Loc::getLocSts, LocStsType.IDLE.val())
-// .ge(Loc::getRow, 3)
-// .le(Loc::getRow, 4)
-// );
-// Collections.shuffle(idleList);
-// if (idleList.size() > stock) {
-// idleList = idleList.subList(0, stock);
-// }
-//
-// if (stockList.size() == idleList.size()) {
-// OpenBusSubmitParam param = new OpenBusSubmitParam();
-// param.setBatch("batchNo");
-// for (int i = 0; i < stock; i++) {
-// Loc stockLoc = stockList.get(i);
-// Loc idleLoc = idleList.get(i);
-//
-// TaskDto taskDto = new TaskDto();
-// taskDto.setOriLoc(stockLoc.getLocNo());
-// taskDto.setDestLoc(idleLoc.getLocNo());
-// taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19));
-//
-// param.getTaskList().add(taskDto);
-//
-// }
-//
-// if (Cools.isEmpty(busService.selectBySts(BusStsType.RECEIVE, "autoDemo2"))
-// && Cools.isEmpty(busService.selectBySts(BusStsType.PROGRESS, "autoDemo2"))
-// ) {
-// mainService.generateBusAndTask(param, "autoDemo2");
-// }
-//
-// }
-//
-// }
-//
-//}
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/utils/RouteGenerator.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/utils/RouteGenerator.java
new file mode 100644
index 0000000..f2c9b62
--- /dev/null
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/utils/RouteGenerator.java
@@ -0,0 +1,73 @@
+package com.zy.acs.manager.core.utils;
+
+import com.zy.acs.framework.common.Cools;
+import com.zy.acs.manager.core.service.astart.CodeNodeType;
+import com.zy.acs.manager.core.service.astart.MapDataDispatcher;
+import com.zy.acs.manager.manager.entity.Code;
+import com.zy.acs.manager.manager.entity.Route;
+import com.zy.acs.manager.manager.service.CodeGapService;
+import com.zy.acs.manager.manager.service.CodeService;
+import com.zy.acs.manager.manager.service.RouteService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by vincent on 12/9/2024
+ */
+@Component
+public class RouteGenerator {
+
+ @Autowired
+ private MapDataDispatcher mapDataDispatcher;
+ @Autowired
+ private CodeService codeService;
+ @Autowired
+ private RouteService routeService;
+ @Autowired
+ private CodeGapService codeGapService;
+
+ public List<Route> generateRoutes(String[][] codeMatrix) {
+ List<Route> routes = new ArrayList<>();
+
+ int rows = codeMatrix.length;
+ int cols = codeMatrix[0].length;
+
+ // 閬嶅巻浜岀淮鏁扮粍锛岀敓鎴愮浉閭绘潯鐮佷箣闂寸殑 Route
+ for (int i = 0; i < rows; i++) {
+ for (int j = 0; j < cols; j++) {
+ String currentCodeData = codeMatrix[i][j];
+
+ // 璺宠繃 NONE 鏉$爜
+ if (currentCodeData == null || CodeNodeType.NONE.val.equals(currentCodeData)) {
+ continue;
+ }
+ Code currCode = codeService.selectByData(currentCodeData);
+
+ // 妫�鏌ュ彸杈圭浉閭绘潯鐮�
+ if (j + 1 < cols) {
+ String rightCodeData = codeMatrix[i][j + 1];
+ if (!Cools.isEmpty(rightCodeData) && !CodeNodeType.NONE.val.equals(rightCodeData)) {
+ Code rightCode = codeService.selectByData(rightCodeData);
+ routeService.createRouteByCode(currCode, rightCode, 0, null);
+ }
+ }
+
+ // 妫�鏌ヤ笅杈圭浉閭绘潯鐮�
+ if (i + 1 < rows) {
+ String bottomCodeData = codeMatrix[i + 1][j];
+ if (!Cools.isEmpty(bottomCodeData) && !CodeNodeType.NONE.val.equals(bottomCodeData)) {
+ Code bottomCode = codeService.selectByData(bottomCodeData);
+ routeService.createRouteByCode(currCode, bottomCode, 0, null);
+ }
+ }
+ }
+ }
+
+ return routes;
+ }
+
+
+}
--
Gitblit v1.9.1