From 5a2ec88cf71194456a371efda15f3cab5f6225ae Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期四, 20 六月 2024 20:48:41 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java |   62 +++++++++++-------------------
 1 files changed, 23 insertions(+), 39 deletions(-)

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 402c46e..230f15c 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
@@ -61,6 +61,8 @@
     private ShuttleAction shuttleAction;
     @Autowired
     private LiftAction liftAction;
+    @Autowired
+    private LiftDispatcher liftDispatcher;
 
     // 璁$畻
     public Boolean accept(Motion motion) {
@@ -141,11 +143,11 @@
                 }
 
                 // 鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂�
-                if (!liftThread.isIdle()) {
+                if (!liftThread.isIdle(MotionCtgType.SHUTTLE_MOVE_FROM_LIFT)) {
                     return false;
                 }
 
-                if (liftProtocol.getLev() != Utils.getLev(motion.getTarget())) {//鍒ゆ柇鎻愬崌鏈烘槸鍚﹁揪鍒扮洰鏍囧眰
+                if (liftProtocol.getLev() != liftDispatcher.getLiftLevOffset(liftThread.getDevice().getId().intValue(), Utils.getLev(motion.getTarget()))) {//鍒ゆ柇鎻愬崌鏈烘槸鍚﹁揪鍒扮洰鏍囧眰
                     return false;
                 }
 
@@ -156,24 +158,13 @@
                         return true;
                     }
                 })) {
-                    //閿佸畾鎻愬崌鏈�
-                    List<LiftCommand> lockCommand = liftThread.getLockCommand(motion.getTaskNo(), true);//鑾峰彇鎻愬崌鏈洪攣瀹氬懡浠�
-
-                    LiftAssignCommand liftAssignCommand = new LiftAssignCommand();
-                    liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo());
-                    liftAssignCommand.setTaskNo(motion.getTaskNo());
-                    ArrayList<LiftCommand> list = new ArrayList<>();
-                    list.addAll(lockCommand);
-                    liftAssignCommand.setCommands(list);
-
-                    liftAction.assignWork(liftThread.getDevice(), liftAssignCommand);
-                    return false;//绛夊緟涓嬩竴娆¤疆璇�
-                }
-
-                //鍒ゆ柇鎻愬崌鏈哄伐浣滃彿鏄惁鍜屽綋鍓嶄换鍔$浉鍚�
-                if (liftProtocol.getTaskNo().intValue() != motion.getTaskNo()) {
                     return false;
                 }
+
+//                //鍒ゆ柇鎻愬崌鏈哄伐浣滃彿鏄惁鍜屽綋鍓嶄换鍔$浉鍚�
+//                if (liftProtocol.getTaskNo().intValue() != motion.getTaskNo()) {
+//                    return false;
+//                }
 
                 shuttleCommands = this.shuttleAssignCommand(motion.getOrigin(), motion.getTarget(), NavigationMapType.NORMAL.id, assignCommand, shuttleThread);
                 shuttleTaskModeType = ShuttleTaskModeType.SHUTTLE_MOVE_LOC_NO;
@@ -189,11 +180,11 @@
                     return false;
                 }
                 // 鍒ゆ柇鎻愬崌鏈烘槸鍚︾┖闂�
-                if (!liftThread.isIdle()) {
+                if (!liftThread.isIdle(MotionCtgType.SHUTTLE_MOVE_TO_LIFT)) {
                     return false;
                 }
 
-                if (liftProtocol.getLev() != Utils.getLev(motion.getTarget())) {//鍒ゆ柇鎻愬崌鏈烘槸鍚﹁揪鍒扮洰鏍囧眰
+                if (liftProtocol.getLev() != liftDispatcher.getLiftLevOffset(liftThread.getDevice().getId().intValue(), Utils.getLev(motion.getTarget()))) {//鍒ゆ柇鎻愬崌鏈烘槸鍚﹁揪鍒扮洰鏍囧眰
                     return false;
                 }
 
@@ -204,27 +195,13 @@
                         return true;
                     }
                 })) {
-                    //閿佸畾鎻愬崌鏈�
-                    List<LiftCommand> lockCommand = liftThread.getLockCommand(motion.getTaskNo(), true);//鑾峰彇鎻愬崌鏈洪攣瀹氬懡浠�
-                    if (lockCommand == null) {
-                        return false;
-                    }
-
-                    LiftAssignCommand liftAssignCommand = new LiftAssignCommand();
-                    liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo());
-                    liftAssignCommand.setTaskNo(motion.getTaskNo());
-                    ArrayList<LiftCommand> list = new ArrayList<>();
-                    list.addAll(lockCommand);
-                    liftAssignCommand.setCommands(list);
-
-                    liftAction.assignWork(liftThread.getDevice(), liftAssignCommand);
-                    return false;//绛夊緟涓嬩竴娆¤疆璇�
-                }
-
-                //鍒ゆ柇鎻愬崌鏈哄伐浣滃彿鏄惁鍜屽綋鍓嶄换鍔$浉鍚�
-                if (liftProtocol.getTaskNo().intValue() != motion.getTaskNo()) {
                     return false;
                 }
+
+//                //鍒ゆ柇鎻愬崌鏈哄伐浣滃彿鏄惁鍜屽綋鍓嶄换鍔$浉鍚�
+//                if (liftProtocol.getTaskNo().intValue() != motion.getTaskNo()) {
+//                    return false;
+//                }
 
                 shuttleCommands = this.shuttleAssignCommand(motion.getOrigin(), motion.getTarget(), NavigationMapType.NORMAL.id, assignCommand, shuttleThread);
                 shuttleTaskModeType = ShuttleTaskModeType.SHUTTLE_MOVE_LOC_NO;
@@ -246,6 +223,10 @@
             case SHUTTLE_PALLET_DOWN://鎵樼洏涓嬮檷
                 shuttleTaskModeType = ShuttleTaskModeType.PALLET_DOWN;
                 shuttleCommands.add(shuttleThread.getLiftCommand(motion.getTaskNo(), false));
+                break;
+            case SHUTTLE_UPDATE_LOCATION://灏忚溅鍧愭爣鏇存柊
+                shuttleTaskModeType = ShuttleTaskModeType.SHUTTLE_UPDATE_LOCATION;
+                shuttleCommands.add(shuttleThread.getUpdateLocationCommand(motion.getTaskNo(), motion.getTarget()));
                 break;
             default:
                 throw new CoolException(motion.getMotionCtgEl() + "娌℃湁鎸囧畾浠诲姟浣滀笟娴佺▼锛侊紒锛�");
@@ -363,6 +344,7 @@
                             list.addAll(signalCommand);
                             liftAssignCommand.setCommands(list);
                             liftAction.assignWork(liftThread.getDevice(), liftAssignCommand);
+                            redisUtil.set(DeviceRedisConstant.COMMAND_TMP + motion.getTaskNo(), true, 120);
                             return false;
                         }
                     }
@@ -483,6 +465,8 @@
                     liftThread.setSyncTaskNo(0);
                 }
                 break;
+            case SHUTTLE_UPDATE_LOCATION://灏忚溅鍧愭爣鏇存柊
+                break;
             default:
                 break;
         }

--
Gitblit v1.9.1