From f305e5244e059c5e43566412f69b180e2e790026 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 05 三月 2026 19:11:43 +0800
Subject: [PATCH] #双工位堆垛机任务下发控制优化

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

diff --git a/src/main/java/com/zy/asrs/controller/DualCrnController.java b/src/main/java/com/zy/asrs/controller/DualCrnController.java
index 6fffffa..48cb7b8 100644
--- a/src/main/java/com/zy/asrs/controller/DualCrnController.java
+++ b/src/main/java/com/zy/asrs/controller/DualCrnController.java
@@ -5,11 +5,14 @@
 import com.core.common.Cools;
 import com.core.common.R;
 import com.zy.asrs.domain.param.DualCrnCommandParam;
+import com.zy.asrs.domain.param.DualCrnUpdateTaskNoParam;
 import com.zy.asrs.domain.vo.DualCrnStateTableVo;
 import com.zy.asrs.entity.BasDualCrnp;
 import com.zy.asrs.service.BasDualCrnpService;
+import com.zy.common.utils.RedisUtil;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.RedisKeyType;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.Task;
 import com.zy.core.model.command.DualCrnCommand;
@@ -31,6 +34,8 @@
 
     @Autowired
     private BasDualCrnpService basDualCrnpService;
+    @Autowired
+    private RedisUtil redisUtil;
 
     @PostMapping("/dualcrn/table/crn/state")
     @ManagerAuth(memo = "鍙屽伐浣嶅爢鍨涙満淇℃伅琛�")
@@ -51,6 +56,8 @@
             }
             vo.setTaskNo(p.getTaskNo());
             vo.setTaskNoTwo(p.getTaskNoTwo());
+            vo.setDeviceTaskNo(p.getDeviceTaskNo());
+            vo.setDeviceTaskNoTwo(p.getDeviceTaskNoTwo());
             vo.setMode(p.getModeType() == null ? "-" : p.getModeType().desc);
             vo.setStatus(p.getStatusType() == null ? "-" : p.getStatusType().desc);
             vo.setStatusTwo(p.getStatusTypeTwo() == null ? "-" : p.getStatusTypeTwo().desc);
@@ -181,4 +188,35 @@
         MessageQueue.offer(SlaveType.DualCrn, crnNo, new Task(3, command));
         return R.ok();
     }
+
+    @PostMapping("/dualcrn/command/updateTaskNo")
+    @ManagerAuth(memo = "鍙屽伐浣嶅爢鍨涙満缂栬緫浠诲姟鍙�")
+    public R dualCrnUpdateTaskNo(@RequestBody DualCrnUpdateTaskNoParam param) {
+        if (Cools.isEmpty(param) || param.getCrnNo() == null || param.getStation() == null || param.getTaskNo() == null) {
+            return R.error("缂哄皯鍙傛暟");
+        }
+        Integer station = param.getStation();
+        if (station != 1 && station != 2) {
+            return R.error("宸ヤ綅鍙傛暟閿欒");
+        }
+        Integer taskNo = param.getTaskNo();
+        if (taskNo < 0) {
+            return R.error("浠诲姟鍙蜂笉鑳藉皬浜�0");
+        }
+        Integer crnNo = param.getCrnNo();
+        DualCrnThread crnThread = (DualCrnThread) SlaveConnection.get(SlaveType.DualCrn, crnNo);
+        if (crnThread == null) {
+            return R.error("绾跨▼涓嶅瓨鍦�");
+        }
+        DualCrnProtocol protocol = crnThread.getStatus();
+        if (protocol == null) {
+            return R.error("璁惧鐘舵�佷笉瀛樺湪");
+        }
+        if (station == 1) {
+            redisUtil.set(RedisKeyType.DUAL_CRN_STATION1_FLAG.key + crnNo, taskNo, 60 * 60 * 24);
+        } else {
+            redisUtil.set(RedisKeyType.DUAL_CRN_STATION2_FLAG.key + crnNo, taskNo, 60 * 60 * 24);
+        }
+        return R.ok();
+    }
 }

--
Gitblit v1.9.1