From ed266efb662c5b8460ecc22e31a070a718f35f9c Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 31 三月 2026 16:08:59 +0800
Subject: [PATCH] #地图编辑路径联通性导致算法计算失败问题修复
---
src/main/java/com/zy/asrs/controller/StationController.java | 53 ++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 44 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/StationController.java b/src/main/java/com/zy/asrs/controller/StationController.java
index 75a7367..f2fe531 100644
--- a/src/main/java/com/zy/asrs/controller/StationController.java
+++ b/src/main/java/com/zy/asrs/controller/StationController.java
@@ -1,12 +1,14 @@
package com.zy.asrs.controller;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zy.asrs.domain.param.StationCommandBarcodeParam;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.DeviceConfig;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.DeviceConfigService;
import com.zy.common.utils.RedisUtil;
+import com.zy.core.dispatch.StationCommandDispatchResult;
+import com.zy.core.dispatch.StationCommandDispatcher;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.enums.StationCommandType;
import com.zy.core.model.StationObjModel;
@@ -22,10 +24,8 @@
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.domain.param.StationCommandMoveParam;
-import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
-import com.zy.core.model.Task;
import com.zy.core.model.command.StationCommand;
import com.zy.core.thread.StationThread;
@@ -45,6 +45,8 @@
private ConfigService configService;
@Autowired
private DeviceConfigService deviceConfigService;
+ @Autowired
+ private StationCommandDispatcher stationCommandDispatcher;
@PostMapping("/command/move")
public R commandMove(@RequestBody StationCommandMoveParam param) {
@@ -70,7 +72,14 @@
}
StationCommand command = stationThread.getCommand(StationCommandType.MOVE, taskNo, stationId, targetStationId, 0);
- MessageQueue.offer(SlaveType.Devp, devpNo, new Task(2, command));
+ if (command == null) {
+ return R.error("鐢熸垚杈撻�佸懡浠ゅけ璐ワ紝璺緞涓虹┖鎴栦笉鍙揪");
+ }
+ StationCommandDispatchResult dispatchResult = stationCommandDispatcher
+ .dispatch(devpNo, command, "station-controller", "manual-move");
+ if (!dispatchResult.isAccepted()) {
+ return R.error("杈撻�佸懡浠や笅鍙戝け璐�:" + dispatchResult.getReason());
+ }
return R.ok();
}
@@ -84,7 +93,7 @@
return R.error("褰撳墠绯荤粺鏈惎鐢ㄤ豢鐪熸彃浠�");
}
- Config enableFakeConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "enableFake"));
+ Config enableFakeConfig = configService.getOne(new QueryWrapper<Config>().eq("code", "enableFake"));
if (enableFakeConfig == null || !"Y".equals(enableFakeConfig.getValue())) {
return R.error("褰撳墠闈炰豢鐪熻繍琛屾ā寮忥紝绂佹淇敼鏉$爜");
}
@@ -96,7 +105,7 @@
}
Integer devpNo = finalStation.getDeviceNo();
- DeviceConfig deviceConfig = deviceConfigService.selectOne(new EntityWrapper<DeviceConfig>()
+ DeviceConfig deviceConfig = deviceConfigService.getOne(new QueryWrapper<DeviceConfig>()
.eq("device_no", devpNo)
.eq("device_type", String.valueOf(SlaveType.Devp)));
if (deviceConfig == null || deviceConfig.getFake() == null || deviceConfig.getFake() != 1) {
@@ -115,7 +124,11 @@
StationCommand command = stationThread.getCommand(StationCommandType.WRITE_INFO, 9997, stationId, stationId, 0);
command.setBarcode(barcode.trim());
- MessageQueue.offer(SlaveType.Devp, devpNo, new Task(2, command));
+ StationCommandDispatchResult dispatchResult = stationCommandDispatcher
+ .dispatch(devpNo, command, "station-controller", "manual-barcode");
+ if (!dispatchResult.isAccepted()) {
+ return R.error("鏉$爜鍛戒护涓嬪彂澶辫触:" + dispatchResult.getReason());
+ }
return R.ok();
}
@@ -130,12 +143,35 @@
return R.ok();
}
+ @PostMapping("/command/clearPath")
+ public R commandClearPath(@RequestBody StationCommandMoveParam param) {
+ if (Cools.isEmpty(param) || Cools.isEmpty(param.getStationId()) || Cools.isEmpty(param.getTaskNo())) {
+ return R.error("缂哄皯鍙傛暟");
+ }
+
+ StationObjModel finalStation = findStation(param.getStationId());
+ if (finalStation == null) {
+ return R.error("绔欑偣涓嶅瓨鍦�");
+ }
+
+ StationThread stationThread = (StationThread) SlaveConnection.get(SlaveType.Devp, finalStation.getDeviceNo());
+ if (stationThread == null) {
+ return R.error("绾跨▼涓嶅瓨鍦�");
+ }
+
+ boolean cleared = stationThread.clearPath(param.getTaskNo());
+ if (!cleared) {
+ return R.error("鏈尮閰嶅埌鍙竻鐞嗚矾寰勬垨娓呯悊澶辫触");
+ }
+ return R.ok("娓呯悊璺緞鎴愬姛");
+ }
+
private StationObjModel findStation(Integer stationId) {
if (Cools.isEmpty(stationId)) {
return null;
}
- List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<BasDevp>());
+ List<BasDevp> basDevps = basDevpService.list(new QueryWrapper<BasDevp>());
for (BasDevp basDevp : basDevps) {
List<StationObjModel> list = basDevp.getStationList$();
for (StationObjModel entity : list) {
@@ -146,5 +182,4 @@
}
return null;
}
-
}
--
Gitblit v1.9.1