From 0f69561e397093b5165c4aac58530721d5c62178 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 25 十一月 2024 11:03:16 +0800
Subject: [PATCH] #led

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java |   68 ++++++++++++++-------------------
 1 files changed, 29 insertions(+), 39 deletions(-)

diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java
index 6c3b59b..94afb9f 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java
@@ -15,17 +15,28 @@
 import com.zy.asrs.wcs.core.service.TaskService;
 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;
 import com.zy.asrs.wcs.rcs.thread.ShuttleThread;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 
 public class Utils {
 
     public static final String _LINK = "-";
+
+    public static Integer getStaByLev(Integer lev) {
+        HashMap<Integer, Integer> map = new HashMap<>();
+        map.put(1, 31006);
+        map.put(2, 31007);
+        map.put(3, 31008);
+
+        return map.get(lev);
+    }
 
     /**
      * 閫氳繃搴撲綅鍙疯幏鍙� 鎺�
@@ -139,6 +150,14 @@
                 continue;
             }
 
+            if (shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.OFFLINE)) {
+                continue;
+            }
+
+            if (shuttleProtocol.getCurrentLocNo() == null) {
+                continue;
+            }
+
             if (shuttleProtocol.getCurrentLocNo().equals(locNo)) {
                 return true;
             }
@@ -186,9 +205,9 @@
     /**
      * 妫�娴嬬┛姊溅鏄惁鏈変换鍔$粦瀹�
      */
-    public static boolean checkShuttleHasBinding(Device device) {
+    public static boolean checkShuttleHasBinding(Device device, String taskNo) {
         TaskService taskService = SpringUtils.getBean(TaskService.class);
-        List<Task> tasks = taskService.selectWorkingByShuttle(Integer.parseInt(device.getDeviceNo()));
+        List<Task> tasks = taskService.selectWorkingByShuttle(Integer.parseInt(device.getDeviceNo()), taskNo);
         if (tasks.isEmpty()) {
             return false;//鏃犱换鍔$粦瀹�
         }
@@ -199,48 +218,19 @@
      * 妫�娴嬫彁鍗囨満鏄惁鏈変换鍔$粦瀹�
      */
     public static boolean checkLiftHasBinding(Integer liftNo) {
+        return checkLiftHasBinding(liftNo, null);
+    }
+
+    /**
+     * 妫�娴嬫彁鍗囨満鏄惁鏈変换鍔$粦瀹�
+     */
+    public static boolean checkLiftHasBinding(Integer liftNo, String taskNo) {
         TaskService taskService = SpringUtils.getBean(TaskService.class);
-        List<Task> tasks = taskService.selectWorkingByLift(liftNo);
+        List<Task> tasks = taskService.selectWorkingByLift(liftNo, taskNo);
         if (tasks.isEmpty()) {
             return false;//鏃犱换鍔$粦瀹�
         }
         return true;//鏈変换鍔$粦瀹�
-    }
-
-    /**
-     * 鑾峰彇璺濈鐩爣搴撲綅鏈�杩戠殑鎻愬崌鏈�
-     */
-    public static Device getRecentTransferLift(String locNo, Integer shuttleNo) {
-        BasLiftService basLiftService = SpringUtils.getBean(BasLiftService.class);
-        DeviceService deviceService = SpringUtils.getBean(DeviceService.class);
-        if (basLiftService == null) {
-            return null;
-        }
-
-        Integer distance = Integer.MAX_VALUE;
-        Long liftDeviceId = null;
-        for (BasLift basLift : basLiftService.list(new LambdaQueryWrapper<BasLift>()
-                .eq(BasLift::getStatus, 1)
-                .eq(BasLift::getTransfer, 1))) {
-            int lev = Utils.getLev(locNo);
-            String liftLocNo = Utils.getLocNo(basLift.getRow(), basLift.getBay(), lev);
-            List<NavigateNode> nodeList = NavigateUtils.calc(locNo, liftLocNo, NavigationMapType.NONE.id, Utils.getShuttlePoints(shuttleNo, Utils.getLev(locNo)));
-            Integer originPathAllDistance = NavigateUtils.getOriginPathAllDistance(nodeList);//鎬昏窛绂�
-            if (originPathAllDistance < distance) {
-                distance = originPathAllDistance;
-                liftDeviceId = basLift.getDeviceId();
-            }
-        }
-
-        if (liftDeviceId == null) {
-            return null;
-        }
-
-        Device device = deviceService.getById(liftDeviceId);
-        if (device == null) {
-            return null;
-        }
-        return device;
     }
 
 }

--
Gitblit v1.9.1