From 33b4d29eb2ba86f3480b5060f863c45818592ba3 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 16 四月 2024 14:47:31 +0800
Subject: [PATCH] Merge branch 'Four-Way-Rack' of http://47.97.1.152:5880/r/zy-asrs-master into Four-Way-Rack

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java |   53 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 43 insertions(+), 10 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
index 91a9a72..2734158 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java
@@ -15,11 +15,11 @@
 import com.zy.asrs.wcs.core.model.NavigateNode;
 import com.zy.asrs.wcs.core.model.command.ShuttleCommand;
 import com.zy.asrs.wcs.core.model.command.ShuttleRedisCommand;
-import com.zy.asrs.wcs.core.model.enums.ShuttleCommandModeType;
-import com.zy.asrs.wcs.core.model.enums.ShuttleRunDirection;
+import com.zy.asrs.wcs.core.model.enums.*;
 import com.zy.asrs.wcs.core.service.BasShuttleService;
 import com.zy.asrs.wcs.core.service.LocService;
 import com.zy.asrs.wcs.core.utils.NavigateUtils;
+import com.zy.asrs.wcs.core.utils.Utils;
 import com.zy.asrs.wcs.rcs.News;
 import com.zy.asrs.wcs.rcs.cache.OutputQueue;
 import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant;
@@ -208,7 +208,7 @@
 
     @Override
     public ShuttleProtocol getStatus() {
-        return this.shuttleProtocol;
+        return this.shuttleProtocol.clone();
     }
 
     @Override
@@ -274,7 +274,7 @@
             param.put("messageName", "runRoute");
             param.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
             param.put("deviceNo", device.getDeviceNo());
-            param.put("taskId", generateDeviceTaskNo(taskNo));
+            param.put("taskId", taskNo);
             param.put("nodeNum", nodes.size());
             param.put("modes", modes);
             String response = new HttpHandler.Builder()
@@ -515,6 +515,9 @@
                     return path;
                 }
                 List<NavigateNode> nodes = redisCommand.getAssignCommand().getNodes();//绌挎杞﹂璁¤矾寰�
+                if (nodes == null) {
+                    return path;
+                }
                 if (!nodes.isEmpty()) {
                     path.addAll(nodes);
                 }
@@ -524,12 +527,42 @@
     }
 
     @Override
-    public int generateDeviceTaskNo(int taskNo) {
-        int no = taskNo % 255;
-        if (no <= 1) {
-            no = 2;
+    public int generateDeviceTaskNo(int taskNo, MotionCtgType motionCtgType) {
+        int deviceTaskNo = taskNo;
+        try {
+            deviceTaskNo = Utils.getTaskNo("SURAY_SHUTTLE");
+        } catch (Exception e) {
+            return taskNo;
         }
-        return no;
+
+        switch (Objects.requireNonNull(MotionCtgType.get(String.valueOf(motionCtgType)))){
+            case SHUTTLE_MOVE://绌挎杞︾Щ鍔�
+            case SHUTTLE_MOVE_LIFT_PALLET://绌挎杞﹂《鍗囧苟绉诲姩
+            case SHUTTLE_MOVE_DOWN_PALLET://绌挎杞︾Щ鍔ㄥ苟鎵樼洏涓嬮檷
+            case SHUTTLE_MOVE_FROM_LIFT://鍑烘彁鍗囨満
+            case SHUTTLE_MOVE_TO_LIFT://杩涙彁鍗囨満
+                return deviceTaskNo;
+            default:
+                return taskNo;
+        }
+    }
+
+    @Override
+    public synchronized boolean setProtocolStatus(ShuttleProtocolStatusType status) {
+        this.shuttleProtocol.setProtocolStatus(status);
+        return true;
+    }
+
+    @Override
+    public synchronized boolean setSyncTaskNo(Integer taskNo) {
+        this.shuttleProtocol.setSyncTaskNo(taskNo);
+        return true;
+    }
+
+    @Override
+    public synchronized boolean setPakMk(boolean pakMk) {
+        this.shuttleProtocol.setPakMk(pakMk);
+        return true;
     }
 
     @Override
@@ -538,7 +571,7 @@
         body.put("messageName", "runOrder");
         body.put("msgTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
         body.put("deviceNo", Integer.parseInt(this.device.getDeviceNo()));
-        body.put("taskId", generateDeviceTaskNo(taskNo));
+        body.put("taskId", taskNo);
 
         LocService locService = SpringUtils.getBean(LocService.class);
         Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>()

--
Gitblit v1.9.1