From 2d07710d47f88a1d76e12cda1144cb2f288bf5ae Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期二, 23 四月 2024 13:14:15 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 105 insertions(+), 5 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java index ad43d4e..e3ef211 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java @@ -972,16 +972,16 @@ // locNo String locNo = task.getDestLoc(); - Device device = deviceService.getOne(new LambdaQueryWrapper<Device>() + Device shuttleDevice = deviceService.getOne(new LambdaQueryWrapper<Device>() .eq(Device::getDeviceNo, task.getShuttleNo()) .eq(Device::getDeviceType, DeviceCtgType.SHUTTLE.val()) .eq(Device::getHostId, task.getHostId()) .eq(Device::getStatus, 1)); - if (device == null) { + if (shuttleDevice == null) { return motionList; } - ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getId().intValue()); + ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, shuttleDevice.getId().intValue()); if (shuttleThread == null) { return motionList; } @@ -999,11 +999,111 @@ // 绌挎杞﹁蛋琛岃嚦鐩爣搴撲綅 motionList.addAll(kernelService.shuttleMove( MotionDto.build((dto -> { - dto.setShuttleNo(device.getId().intValue()); + dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLocNo(shuttleLocNo); })), MotionDto.build((dto -> { - dto.setShuttleNo(device.getId().intValue()); + dto.setShuttleNo(shuttleDevice.getId().intValue()); + dto.setLocNo(locNo); + })), + MotionCtgType.SHUTTLE_MOVE + )); + + } else { + //灏忚溅璺ㄥ眰 + + //鑾峰彇璺濈鐩爣浣嶇疆鏈�杩戠殑绌洪棽鎻愬崌鏈� + LiftThread liftThread = liftDispatcher.searchIdleLift(locNo, task.getHostId()); + if (liftThread == null) { + return motionList; + } + Device liftDevice = liftThread.getDevice(); + + //绌挎杞﹀埌鎻愬崌鏈哄簱浣嶅彿 + String liftLocNoTo = liftDispatcher.getLiftLocNo(liftThread, Utils.getLev(shuttleLocNo)); + + //绌挎杞﹀嚭鎻愬崌鏈哄簱浣嶅彿 + String liftLocNoFrom = liftDispatcher.getLiftLocNo(liftThread, Utils.getLev(task.getDestLoc())); + + //绌挎杞﹀埌鎻愬崌鏈哄緟鏈轰綅搴撲綅鍙� + String standbyLocNoTo = liftDispatcher.getLiftStandByLocNo(liftThread, Utils.getLev(shuttleLocNo)); + + //绌挎杞﹀嚭鎻愬崌鏈哄緟鏈轰綅搴撲綅鍙� + String standbyLocNoFrom = liftDispatcher.getLiftStandByLocNo(liftThread, Utils.getLev(task.getDestLoc())); + + + // 绌挎杞﹁蛋琛岃嚦鎻愬崌鏈哄簱浣嶅緟鏈轰綅 + motionList.addAll(kernelService.shuttleMove( + MotionDto.build((dto -> { + dto.setShuttleNo(shuttleDevice.getId().intValue()); + dto.setLocNo(shuttleLocNo); + })), + MotionDto.build((dto -> { + dto.setShuttleNo(shuttleDevice.getId().intValue()); + dto.setLiftNo(liftDevice.getId().intValue()); + dto.setLocNo(standbyLocNoTo); + })), + MotionCtgType.SHUTTLE_MOVE + )); + + // 鎻愬崌鏈虹┖杞界Щ鍔ㄥ埌绌挎杞﹀眰 + motionList.addAll(kernelService.liftMove( + null + , MotionDto.build((dto -> { + dto.setLiftNo(liftDevice.getId().intValue()); + dto.setLev(Utils.getLev(shuttleLocNo)); + })) + )); + + // 绌挎杞﹀緟鏈轰綅鑷虫彁鍗囨満搴撲綅 + motionList.addAll(kernelService.shuttleMove( + MotionDto.build((dto -> { + dto.setShuttleNo(shuttleDevice.getId().intValue()); + dto.setLocNo(standbyLocNoTo); + })), + MotionDto.build((dto -> { + dto.setShuttleNo(shuttleDevice.getId().intValue()); + dto.setLiftNo(liftDevice.getId().intValue()); + dto.setLocNo(liftLocNoTo); + })), + MotionCtgType.SHUTTLE_MOVE_TO_LIFT + )); + + // 鎻愬崌鏈烘惉杞� 鑷� 鐩爣浣嶇疆灞� + motionList.addAll(kernelService.liftMoveShuttle( + MotionDto.build((dto -> { + dto.setLiftNo(liftDevice.getId().intValue()); + dto.setLev(Utils.getLev(shuttleLocNo)); + })), + MotionDto.build((dto -> { + dto.setLiftNo(liftDevice.getId().intValue()); + dto.setLev(Utils.getLev(locNo)); + })) + )); + + // 绌挎杞﹁蛋琛岃嚦鎻愬崌鏈哄緟鏈轰綅 + motionList.addAll(kernelService.shuttleMove( + MotionDto.build((dto -> { + dto.setShuttleNo(shuttleDevice.getId().intValue()); + dto.setLiftNo(liftDevice.getId().intValue()); + dto.setLocNo(liftLocNoFrom); + })), + MotionDto.build((dto -> { + dto.setShuttleNo(shuttleDevice.getId().intValue()); + dto.setLocNo(standbyLocNoFrom); + })), + MotionCtgType.SHUTTLE_MOVE_FROM_LIFT + )); + + // 绌挎杞︽彁鍗囨満寰呮満浣嶈嚦鐩爣浣嶇疆 + motionList.addAll(kernelService.shuttleMove( + MotionDto.build((dto -> { + dto.setShuttleNo(shuttleDevice.getId().intValue()); + dto.setLiftNo(liftDevice.getId().intValue()); + dto.setLocNo(standbyLocNoFrom); + })), + MotionDto.build((dto -> { + dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLocNo(locNo); })), MotionCtgType.SHUTTLE_MOVE -- Gitblit v1.9.1