From 99573d3503e32befd853dda7cc0180e01a4c8597 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期日, 13 十月 2024 12:17:44 +0800
Subject: [PATCH] #

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java |   57 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 53 insertions(+), 4 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java
index 9648ec7..18d9451 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/ShuttleDispatcher.java
@@ -9,14 +9,12 @@
 import com.zy.asrs.wcs.core.entity.*;
 import com.zy.asrs.wcs.core.kernel.AnalyzeService;
 import com.zy.asrs.wcs.core.model.NavigateNode;
-import com.zy.asrs.wcs.core.model.enums.DeviceCtgType;
-import com.zy.asrs.wcs.core.model.enums.NavigationMapType;
-import com.zy.asrs.wcs.core.model.enums.TaskCtgType;
-import com.zy.asrs.wcs.core.model.enums.TaskStsType;
+import com.zy.asrs.wcs.core.model.enums.*;
 import com.zy.asrs.wcs.core.service.*;
 import com.zy.asrs.wcs.rcs.News;
 import com.zy.asrs.wcs.rcs.cache.SlaveConnection;
 import com.zy.asrs.wcs.rcs.entity.Device;
+import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType;
 import com.zy.asrs.wcs.rcs.model.enums.SlaveType;
 import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
 import com.zy.asrs.wcs.rcs.service.DeviceService;
@@ -373,6 +371,18 @@
                 continue;
             }
 
+            if (shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.OFFLINE)) {
+                continue;
+            }
+
+            if(!shuttleThread.isDeviceIdle()) {
+                continue;
+            }
+
+            if(shuttleProtocol.getCurrentLocNo() == null) {
+                continue;
+            }
+
             if (Utils.getLev(shuttleProtocol.getCurrentLocNo()) == lev) {
                 if (shuttleProtocol.getHasCharge()) {
                     continue;//鍏呯數涓�
@@ -402,6 +412,45 @@
 
         }
 
+        //鎼滅储鏄惁瀛樺湪鍓嶅線鐩爣妤煎眰鐨勫皬杞﹀伐浣滄。
+        for (Task task : taskService.list(new LambdaQueryWrapper<Task>()
+                .in(Task::getTaskSts, TaskStsType.NEW_INBOUND.sts, TaskStsType.ANALYZE_INBOUND.sts, TaskStsType.EXECUTE_INBOUND.sts, TaskStsType.COMPLETE_INBOUND.sts
+                        , TaskStsType.NEW_OUTBOUND.sts, TaskStsType.ANALYZE_OUTBOUND.sts, TaskStsType.EXECUTE_OUTBOUND.sts, TaskStsType.COMPLETE_OUTBOUND.sts))) {
+
+            List<Motion> motions = motionService.list(new LambdaQueryWrapper<Motion>()
+                    .eq(Motion::getTaskNo, task.getTaskNo())
+                    .in(Motion::getMotionCtg, MotionCtgType.SHUTTLE_MOVE
+                            , MotionCtgType.SHUTTLE_MOVE_LIFT_PALLET
+                            , MotionCtgType.SHUTTLE_MOVE_DOWN_PALLET
+                            , MotionCtgType.SHUTTLE_MOVE_FROM_LIFT
+                            , MotionCtgType.SHUTTLE_MOVE_TO_LIFT
+                            , MotionCtgType.SHUTTLE_MOVE_FROM_CONVEYOR
+                            , MotionCtgType.SHUTTLE_MOVE_TO_CONVEYOR
+                            , MotionCtgType.SHUTTLE_MOVE_FROM_LIFT_TO_CONVEYOR
+                    ));
+
+            boolean isUpdateLev = false;
+            for (Motion motion : motions) {
+                if (motion.getOrigin() == null || motion.getTarget() == null) {
+                    continue;
+                }
+
+                int sourceLev = Utils.getLev(motion.getOrigin());//鍔ㄤ綔婧愭ゼ灞�
+                int targetLev = Utils.getLev(motion.getTarget());//鍔ㄤ綔鐩爣妤煎眰
+                if (sourceLev != targetLev) {
+                    isUpdateLev = true;
+                    break;
+                }
+            }
+
+            if(isUpdateLev) {
+                levCount++;//宸ヤ綔妗e睘浜庤法灞備换鍔★紝灏忚溅褰掑睘浜庣洰鏍囨ゼ灞�
+                continue;
+            }
+
+        }
+
+
         return levCount < Integer.parseInt(dict.getValue());
     }
 

--
Gitblit v1.9.1