From 0d04bc5d8080b82338302fba0a59fccff2eaedfc Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期日, 06 七月 2025 11:28:29 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/Utils.java | 106 ++++++++++++++++++++++++++++++++++------------------- 1 files changed, 68 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..a982931 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,17 +4,20 @@ 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.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; @@ -78,50 +81,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) { @@ -184,4 +183,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