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 |  125 +++++++++++++++++++++++++++++------------
 1 files changed, 87 insertions(+), 38 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 1a3efdc..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
@@ -4,25 +4,39 @@
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.SpringUtils;
 import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.wcs.core.entity.BasLift;
 import com.zy.asrs.wcs.core.entity.Task;
 import com.zy.asrs.wcs.core.entity.TaskSerialNo;
+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.service.BasLiftService;
 import com.zy.asrs.wcs.core.service.TaskSerialNoService;
 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.entity.DeviceType;
+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.service.DeviceTypeService;
 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);
+    }
 
     /**
      * 閫氳繃搴撲綅鍙疯幏鍙� 鎺�
@@ -78,50 +92,46 @@
 
     //鑾峰彇闄ょ櫧鍚嶅崟澶栫殑鎸囧畾妤煎眰鍏ㄩ儴绌挎杞y鍧愭爣鐐�
     public static List<int[]> getShuttlePoints(Integer whiteShuttle, Integer lev) {
-//        SlaveProperties slaveProperties = SpringUtils.getBean(SlaveProperties.class);
+        DeviceService deviceService = SpringUtils.getBean(DeviceService.class);
         ArrayList<int[]> list = new ArrayList<>();
-//        for (ShuttleSlave slave : slaveProperties.getShuttle()) {
-//            if (slave.getId().intValue() == whiteShuttle) {
-//                continue;//璺宠繃鐧藉悕鍗�
-//            }
-//
-//            //鑾峰彇绌挎杞︽墍鍦ㄨ妭鐐逛綅缃�
-//            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, slave.getId());
-//            if (shuttleThread == null) {
-//                continue;
-//            }
-//            ShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
-//            if (shuttleProtocol == null) {
-//                continue;
-//            }
-//
-//            if (shuttleProtocol.getCurrentLocNo() == null) {
-//                continue;
-//            }
-//
-//            if (lev != Utils.getLev(shuttleProtocol.getCurrentLocNo())) {
-//                continue;//妤煎眰涓嶅悓
-//            }
-//
-//            int[] xyPosition = NavigatePositionConvert.positionToXY(shuttleProtocol.getCurrentLocNo());//閫氳繃搴撲綅鍙疯幏鍙杧y鍧愭爣
-//            list.add(xyPosition);
-//        }
+
+        List<Device> devices = deviceService.list(new LambdaQueryWrapper<Device>()
+                .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())
+                .eq(Device::getStatus, 1));
+        for (Device device : devices) {
+            if (Integer.parseInt(device.getDeviceNo()) == whiteShuttle) {
+                continue;//璺宠繃鐧藉悕鍗�
+            }
+
+            //鑾峰彇绌挎杞︽墍鍦ㄨ妭鐐逛綅缃�
+            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getId().intValue());
+            if (shuttleThread == null) {
+                continue;
+            }
+            ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
+            if (shuttleProtocol == null) {
+                continue;
+            }
+
+            if (shuttleProtocol.getCurrentLocNo() == null) {
+                continue;
+            }
+
+            if (lev != Utils.getLev(shuttleProtocol.getCurrentLocNo())) {
+                continue;//妤煎眰涓嶅悓
+            }
+
+            int[] xyPosition = NavigatePositionConvert.positionToXY(shuttleProtocol.getCurrentLocNo());//閫氳繃搴撲綅鍙疯幏鍙杧y鍧愭爣
+            list.add(xyPosition);
+        }
         return list;
     }
 
     public static boolean hasShuttleInLoc(String locNo, Long deviceId) {
-        DeviceTypeService deviceTypeService = SpringUtils.getBean(DeviceTypeService.class);
         DeviceService deviceService = SpringUtils.getBean(DeviceService.class);
 
-        DeviceType deviceType = deviceTypeService.getOne(new LambdaQueryWrapper<DeviceType>()
-                .eq(DeviceType::getFlag, String.valueOf(SlaveType.Shuttle))
-                .eq(DeviceType::getStatus, 1));
-        if (deviceType == null) {
-            return false;
-        }
-
         List<Device> list = deviceService.list(new LambdaQueryWrapper<Device>()
-                .eq(Device::getDeviceType, deviceType.getId())
+                .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val())
                 .eq(Device::getStatus, 1));
 
         for (Device device : list) {
@@ -137,6 +147,14 @@
 
             ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
             if (shuttleProtocol == null) {
+                continue;
+            }
+
+            if (shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.OFFLINE)) {
+                continue;
+            }
+
+            if (shuttleProtocol.getCurrentLocNo() == null) {
                 continue;
             }
 
@@ -184,4 +202,35 @@
         throw new CoolException("宸ヤ綔鍙风敓鎴愬け璐�");
     }
 
+    /**
+     * 妫�娴嬬┛姊溅鏄惁鏈変换鍔$粦瀹�
+     */
+    public static boolean checkShuttleHasBinding(Device device, String taskNo) {
+        TaskService taskService = SpringUtils.getBean(TaskService.class);
+        List<Task> tasks = taskService.selectWorkingByShuttle(Integer.parseInt(device.getDeviceNo()), taskNo);
+        if (tasks.isEmpty()) {
+            return false;//鏃犱换鍔$粦瀹�
+        }
+        return true;//鏈変换鍔$粦瀹�
+    }
+
+    /**
+     * 妫�娴嬫彁鍗囨満鏄惁鏈変换鍔$粦瀹�
+     */
+    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, taskNo);
+        if (tasks.isEmpty()) {
+            return false;//鏃犱换鍔$粦瀹�
+        }
+        return true;//鏈変换鍔$粦瀹�
+    }
+
 }

--
Gitblit v1.9.1