From fb8419ef141e16b8ec8b1d9802fa0d5a46768794 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期三, 20 九月 2023 08:24:21 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/LiftController.java | 89 ++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 80 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/LiftController.java b/src/main/java/com/zy/asrs/controller/LiftController.java index 5af0336..a2199df 100644 --- a/src/main/java/com/zy/asrs/controller/LiftController.java +++ b/src/main/java/com/zy/asrs/controller/LiftController.java @@ -12,16 +12,19 @@ import com.zy.asrs.entity.BasLift; import com.zy.asrs.service.BasLiftService; import com.zy.common.service.CommonService; +import com.zy.common.utils.NyLiftUtils; import com.zy.common.utils.RedisUtil; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.LiftProtocolStatusType; +import com.zy.core.enums.NyLiftTaskModelType; import com.zy.core.enums.SlaveType; import com.zy.core.model.LiftSlave; import com.zy.core.model.Task; import com.zy.core.model.command.*; import com.zy.core.model.protocol.LiftProtocol; +import com.zy.core.model.protocol.LiftStaProtocol; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.LiftThread; import lombok.extern.slf4j.Slf4j; @@ -189,18 +192,86 @@ throw new CoolException("鎻愬崌鏈轰笉鍦ㄧ嚎"); } - LiftAssignCommand assignCommand = new LiftAssignCommand(); - assignCommand.setLiftNo(liftSlave.getId().shortValue()); // 鎻愬崌鏈虹紪鍙� - assignCommand.setTaskNo((short) commonService.getWorkNo(3));//鑾峰彇浠诲姟鍙� - assignCommand.setTaskMode(param.getLiftTaskMode().shortValue()); - assignCommand.setAuto(false);//鎵嬪姩妯″紡 - assignCommand.setLev(param.getLev());//绉诲姩妤煎眰 + if (param.getLiftTaskMode() == 1) { + //鎻愬崌鏈哄崌闄嶆ゼ灞� + int workNo = commonService.getWorkNo(3);//鑾峰彇浠诲姟鍙� - if (MessageQueue.offer(SlaveType.Lift, liftSlave.getId(), new Task(3, assignCommand))) { - return R.ok(); + Integer startSta = null; + Integer targetSta = null; + for (LiftStaProtocol liftStaProtocol : liftThread.getLiftStaProtocols()) { + if (liftStaProtocol.getLev() == liftProtocol.getLev().intValue()) { + startSta = liftStaProtocol.getStaNo(); + } + + if (liftStaProtocol.getLev() == param.getLev()) { + targetSta = liftStaProtocol.getStaNo(); + } + } + + if (startSta == null || targetSta == null) { + throw new CoolException("璧风偣鎴栫洰鏍囩偣涓嶅瓨鍦�"); + } + + //鑾峰彇鎻愬崌鏈哄懡浠� + NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_CAR.id, startSta, targetSta, workNo); + ArrayList<NyLiftCommand> commands = new ArrayList<>(); + commands.add(liftCommand); + + //鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔 + LiftAssignCommand assignCommand = new LiftAssignCommand(); + assignCommand.setCommands(commands); + assignCommand.setLiftNo(liftProtocol.getLiftNo()); + assignCommand.setTaskNo((short) workNo); + assignCommand.setAuto(false);//鎵嬪姩妯″紡 + assignCommand.setTaskMode(NyLiftTaskModelType.MOVE_CAR.id.shortValue()); + + if (MessageQueue.offer(SlaveType.Lift, liftSlave.getId(), new Task(3, assignCommand))) { + return R.ok(); + } else { + throw new CoolException("鍛戒护涓嬪彂澶辫触"); + } + } else if (param.getLiftTaskMode() == 2) { + //绉诲姩鎵樼洏 + int workNo = commonService.getWorkNo(3);//鑾峰彇浠诲姟鍙� + + Integer startSta = null; + Integer targetSta = null; + for (LiftStaProtocol liftStaProtocol : liftThread.getLiftStaProtocols()) { + if (liftStaProtocol.getStaNo() == param.getSourceStaNo()) { + startSta = liftStaProtocol.getStaNo(); + } + + if (liftStaProtocol.getLev() == param.getStaNo()) { + targetSta = liftStaProtocol.getStaNo(); + } + } + + if (startSta == null || targetSta == null) { + throw new CoolException("璧风偣鎴栫洰鏍囩偣涓嶅瓨鍦�"); + } + + //鑾峰彇鎻愬崌鏈哄懡浠� + NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_TRAY.id, startSta, targetSta, workNo); + ArrayList<NyLiftCommand> commands = new ArrayList<>(); + commands.add(liftCommand); + + //鎻愪氦鍒扮嚎绋嬪幓宸ヤ綔 + LiftAssignCommand assignCommand = new LiftAssignCommand(); + assignCommand.setCommands(commands); + assignCommand.setLiftNo(liftProtocol.getLiftNo()); + assignCommand.setTaskNo((short) workNo); + assignCommand.setAuto(false);//鎵嬪姩妯″紡 + assignCommand.setTaskMode(NyLiftTaskModelType.MOVE_TRAY.id.shortValue()); + + if (MessageQueue.offer(SlaveType.Lift, liftSlave.getId(), new Task(3, assignCommand))) { + return R.ok(); + } else { + throw new CoolException("鍛戒护涓嬪彂澶辫触"); + } } else { - throw new CoolException("鍛戒护涓嬪彂澶辫触"); + throw new CoolException("鏈煡鍛戒护"); } + } } return R.error(); -- Gitblit v1.9.1