From 25c69020ee46b88cda22f56631c4fdb149d211cd Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期二, 16 四月 2024 09:32:07 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/SurayShuttleThread.java        |   30 +++++++++++++++++++++---------
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/command/ShuttleAssignCommand.java   |    5 +++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/command/ShuttleRedisCommand.java    |    2 +-
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java                 |   10 +++++-----
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java |    3 ++-
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java                  |    3 ++-
 6 files changed, 36 insertions(+), 17 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java
index 791709f..8ce012d 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/action/ShuttleAction.java
@@ -63,7 +63,7 @@
         ShuttleRedisCommand redisCommand = new ShuttleRedisCommand();
 
         redisCommand.setShuttleNo(assignCommand.getShuttleNo());//鍥涘悜绌挎杞﹀彿
-        redisCommand.setWrkNo(assignCommand.getTaskNo());//宸ヤ綔鍙�
+        redisCommand.setTaskNo(assignCommand.getTaskNo());//宸ヤ綔鍙�
         redisCommand.setCommandStep(0);//鍛戒护鎵ц姝ュ簭
         redisCommand.setAssignCommand(assignCommand);//鍛戒护
         //浠诲姟鏁版嵁淇濆瓨鍒皉edis
@@ -73,7 +73,7 @@
                     || assignCommand.getTaskMode() == ShuttleTaskModeType.MOVE_LOC_NO.id
                     || assignCommand.getTaskMode() == ShuttleTaskModeType.SHUTTLE_MOVE_LOC_NO.id) {
                 //涓嬪彂琛岄┒璺緞
-                boolean result = shuttleThread.movePath(assignCommand.getNodes(), assignCommand.getTaskNo());
+                boolean result = shuttleThread.movePath(assignCommand.getNodes(), assignCommand.getDeviceTaskNo());
                 if (!result) {
                     return false;
                 }
@@ -182,7 +182,7 @@
             }
 
             // 鏇存柊redis鏁版嵁
-            redisUtil.set(DeviceRedisConstant.SHUTTLE_WORK_FLAG + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand));
+            redisUtil.set(DeviceRedisConstant.SHUTTLE_WORK_FLAG + redisCommand.getTaskNo(), JSON.toJSONString(redisCommand));
 
             if (!command.getComplete()) {
                 return false;
@@ -215,7 +215,7 @@
                 }
 
                 //鍒犻櫎redis
-                redisUtil.del(DeviceRedisConstant.SHUTTLE_WORK_FLAG + redisCommand.getWrkNo());
+                redisUtil.del(DeviceRedisConstant.SHUTTLE_WORK_FLAG + redisCommand.getTaskNo());
                 return false;//绂佹鍐嶄笅鍙戝懡浠�
             }
         }
@@ -234,7 +234,7 @@
         //鏇存柊redis鏁版嵁
         redisCommand.setCommandStep(commandStep);
         //浠诲姟鏁版嵁淇濆瓨鍒皉edis
-        redisUtil.set(DeviceRedisConstant.SHUTTLE_WORK_FLAG + redisCommand.getWrkNo(), JSON.toJSONString(redisCommand));
+        redisUtil.set(DeviceRedisConstant.SHUTTLE_WORK_FLAG + redisCommand.getTaskNo(), JSON.toJSONString(redisCommand));
         return true;
     }
 
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java
index 541a762..e799b7b 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java
@@ -82,6 +82,7 @@
         ShuttleAssignCommand assignCommand = new ShuttleAssignCommand();
         assignCommand.setShuttleNo(deviceNo);
         assignCommand.setTaskNo(motion.getTaskNo());
+        assignCommand.setDeviceTaskNo(shuttleThread.generateDeviceTaskNo(motion.getTaskNo(), MotionCtgType.get(motion.getMotionCtgEl())));
         assignCommand.setSourceLocNo(motion.getOrigin());
         assignCommand.setLocNo(motion.getTarget());
         assignCommand.setDeviceId(Integer.parseInt(motion.getDevice()));
@@ -361,7 +362,7 @@
             //閫氳繃xy鍧愭爣灏忚溅浜岀淮鐮�
             String distCodeNum = NavigatePositionConvert.xyToPosition(endPath.getX(), endPath.getY(), endPath.getZ(), hostId);
             //鑾峰彇绉诲姩鍛戒护
-            ShuttleCommand command = shuttleThread.getMoveCommand(assignCommand.getTaskNo(), startCodeNum, distCodeNum, allDistance, ShuttleRunDirection.get(startPath.getDirection()).id.intValue(), runSpeed);
+            ShuttleCommand command = shuttleThread.getMoveCommand(assignCommand.getDeviceTaskNo(), startCodeNum, distCodeNum, allDistance, ShuttleRunDirection.get(startPath.getDirection()).id.intValue(), runSpeed);
             command.setNodes(nodes);//灏嗚璧拌妭鐐规坊鍔犲埌姣忎竴姝ュ懡浠や腑
             commands.add(command);
         }
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/command/ShuttleAssignCommand.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/command/ShuttleAssignCommand.java
index cedc3c2..c5bc8b7 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/command/ShuttleAssignCommand.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/command/ShuttleAssignCommand.java
@@ -28,6 +28,11 @@
     private Integer taskNo = 0;
 
     /**
+     * 璁惧宸ヤ綔鍙�
+     */
+    private Integer deviceTaskNo = 0;
+
+    /**
      * 浣滀笟绫诲瀷
      * 1:  鍏ュ簱
      * 2锛� 鍑哄簱
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/command/ShuttleRedisCommand.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/command/ShuttleRedisCommand.java
index 534d3a3..ca85df1 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/command/ShuttleRedisCommand.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/model/command/ShuttleRedisCommand.java
@@ -16,7 +16,7 @@
     private Integer shuttleNo;
 
     //宸ヤ綔鍙�
-    private Integer wrkNo;
+    private Integer taskNo;
 
     //鍛戒护鎵ц姝ュ簭
     private Integer commandStep;
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java
index 3162221..f00efde 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/ShuttleThread.java
@@ -3,6 +3,7 @@
 import com.zy.asrs.wcs.common.ExecuteSupport;
 import com.zy.asrs.wcs.core.model.NavigateNode;
 import com.zy.asrs.wcs.core.model.command.ShuttleCommand;
+import com.zy.asrs.wcs.core.model.enums.MotionCtgType;
 import com.zy.asrs.wcs.rcs.entity.Device;
 import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType;
 import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
@@ -39,7 +40,7 @@
 
     List<NavigateNode> getMoveAdvancePath();//鑾峰彇绌挎杞︿换鍔¤矾寰�
 
-    int generateDeviceTaskNo(int taskNo);//鐢熸垚纭欢璁惧宸ヤ綔鍙�
+    int generateDeviceTaskNo(int taskNo, MotionCtgType motionCtgType);//鐢熸垚纭欢璁惧宸ヤ綔鍙�
 
     boolean setProtocolStatus(ShuttleProtocolStatusType status);//璁剧疆宸ヤ綔鐘舵��
 
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 9311484..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;
@@ -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()
@@ -527,12 +527,24 @@
     }
 
     @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
@@ -559,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