From 41ace7c0738ba39750b2809d5077dd0d7640ced8 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 07 四月 2026 10:03:34 +0800
Subject: [PATCH] #入库条码站异常信号点

---
 src/main/java/com/zy/asrs/controller/StationController.java |   44 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/StationController.java b/src/main/java/com/zy/asrs/controller/StationController.java
index 1d3b63d..cecae35 100644
--- a/src/main/java/com/zy/asrs/controller/StationController.java
+++ b/src/main/java/com/zy/asrs/controller/StationController.java
@@ -7,6 +7,8 @@
 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) {
@@ -73,7 +75,11 @@
         if (command == null) {
             return R.error("鐢熸垚杈撻�佸懡浠ゅけ璐ワ紝璺緞涓虹┖鎴栦笉鍙揪");
         }
-        MessageQueue.offer(SlaveType.Devp, devpNo, new Task(2, command));
+        StationCommandDispatchResult dispatchResult = stationCommandDispatcher
+                .dispatch(devpNo, command, "station-controller", "manual-move");
+        if (!dispatchResult.isAccepted()) {
+            return R.error("杈撻�佸懡浠や笅鍙戝け璐�:" + dispatchResult.getReason());
+        }
         return R.ok();
     }
 
@@ -118,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();
     }
 
@@ -135,7 +145,7 @@
 
     @PostMapping("/command/clearPath")
     public R commandClearPath(@RequestBody StationCommandMoveParam param) {
-        if (Cools.isEmpty(param) || Cools.isEmpty(param.getStationId()) || Cools.isEmpty(param.getTaskNo())) {
+        if (param == null || Cools.isEmpty(param.getStationId()) || param.getTaskNo() == null) {
             return R.error("缂哄皯鍙傛暟");
         }
 
@@ -156,6 +166,29 @@
         return R.ok("娓呯悊璺緞鎴愬姛");
     }
 
+    @PostMapping("/command/clearPathBySlot")
+    public R commandClearPathBySlot(@RequestBody StationCommandMoveParam param) {
+        if (param == null || Cools.isEmpty(param.getStationId()) || param.getSlotIdx() == null) {
+            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.clearPathByStationSlot(param.getStationId(), param.getSlotIdx());
+        if (!cleared) {
+            return R.error("鏈尮閰嶅埌鍙竻鐞嗘Ы浣嶆垨娓呯悊澶辫触");
+        }
+        return R.ok("娓呯悊璺緞鎴愬姛");
+    }
+
     private StationObjModel findStation(Integer stationId) {
         if (Cools.isEmpty(stationId)) {
             return null;
@@ -172,5 +205,4 @@
         }
         return null;
     }
-
 }

--
Gitblit v1.9.1