From 9372f61dcb41eeb2e09871caefce0f764d6ab021 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期五, 21 六月 2024 15:17:04 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java |   58 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 43 insertions(+), 15 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java
index 5e3a669..371cf83 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/LiftCommandService.java
@@ -52,11 +52,6 @@
             return false;
         }
 
-        //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
-        if (!liftThread.isIdle()) {
-            return false;
-        }
-
         if (motionService.count(new LambdaQueryWrapper<Motion>()
                 .eq(Motion::getDeviceCtg, DeviceCtgType.LIFT.val())
                 .eq(Motion::getDevice, motion.getDevice())
@@ -83,6 +78,11 @@
         List<LiftCommand> command = new ArrayList<>();
         switch (Objects.requireNonNull(MotionCtgType.get(motion.getMotionCtgEl()))){
             case LIFT_MOVE:
+                //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+                if (!liftThread.isIdle()) {
+                    return false;
+                }
+
                 // 濡傛灉宸茬粡鍦ㄧ洰鏍囧眰锛岄偅杈瑰眰杩囨护
                 if (liftProtocol.getLev().equals(Integer.valueOf(motion.getTarget()))) {
                     liftThread.setSyncTaskNo(motion.getTaskNo());
@@ -93,6 +93,10 @@
                 list.addAll(command);
                 return liftAction.assignWork(liftThread.getDevice(), assignCommand);
             case LIFT_WITH_GOODS:
+                //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+                if (!liftThread.isIdle()) {
+                    return false;
+                }
 //                if (liftProtocol.getHasTray()) {
 //                    return false;
 //                }
@@ -101,6 +105,11 @@
                 list.addAll(command);
                 return liftAction.assignWork(liftThread.getDevice(), assignCommand);
             case LIFT_WITH_SHUTTLE:
+                //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+                if (!liftThread.isIdle()) {
+                    return false;
+                }
+
                 if (!liftProtocol.getHasCar()) {
                     return false;
                 }
@@ -109,30 +118,46 @@
                 list.addAll(command);
                 return liftAction.assignWork(liftThread.getDevice(), assignCommand);
             case LIFT_WITH_GOODS_AND_SHUTTLE:
+                //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+                if (!liftThread.isIdle()) {
+                    return false;
+                }
+
                 return false;
-//                if (!liftProtocol.getPlatShuttleCheck()) {
-//                    return false;
-//                }
-//
-//                command = liftThread.getLiftUpDownCommand(Integer.parseInt(motion.getTarget()));
-//                command.setLiftNo(deviceNo.shortValue());
-//                command.setTaskNo(motion.getWrkNo().shortValue());
-//                return liftThread.assignWork(command);
             case LIFT_TRANSPORT_TO_CONVEYOR:
                 return false;
             case LIFT_LOCK:
                 //閿佸畾鎻愬崌鏈�
+                //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+                if (!liftThread.isIdle(MotionCtgType.LIFT_LOCK)) {
+                    return false;
+                }
+
                 command = liftThread.getLockCommand(motion.getTaskNo(), true);//鑾峰彇鎻愬崌鏈洪攣瀹氬懡浠�
                 list.addAll(command);
                 return liftAction.assignWork(liftThread.getDevice(), assignCommand);
             case LIFT_UNLOCK:
-                //閿佸畾鎻愬崌鏈�
+                //瑙i攣鎻愬崌鏈�
+                //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+                if (!liftThread.isIdle(MotionCtgType.LIFT_UNLOCK)) {
+                    return false;
+                }
+
                 command = liftThread.getLockCommand(motion.getTaskNo(), false);//鑾峰彇鎻愬崌鏈鸿В瀹氬懡浠�
+                list.addAll(command);
+                return liftAction.assignWork(liftThread.getDevice(), assignCommand);
+            case LIFT_SHUTTLE_ARRIVAL:
+                //鎻愬崌鏈�-灏忚溅宸插埌浣�
+                //鍒ゆ柇鎻愬崌鏈烘槸鍚﹁嚜鍔�
+                if (!liftThread.isIdle(MotionCtgType.LIFT_SHUTTLE_ARRIVAL)) {
+                    return false;
+                }
+
+                command = liftThread.getShuttleSignalCommand(motion.getTaskNo(), true);//鑾峰彇灏忚溅宸插埌浣嶅懡浠�
                 list.addAll(command);
                 return liftAction.assignWork(liftThread.getDevice(), assignCommand);
             default:
                 break;
-
         }
 
         return Boolean.TRUE;
@@ -223,6 +248,9 @@
                     return false;
                 }
                 break;
+            case LIFT_SHUTTLE_ARRIVAL:
+
+                break;
             default:
                 return false;
         }

--
Gitblit v1.9.1