From 37733cc39c04b863a0b997c7fa3d9ac6a24e08be Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期三, 19 六月 2024 15:58:19 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java | 52 ++++++++++++++++++++++++++++++++-------------------- 1 files changed, 32 insertions(+), 20 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java index 707680b..402c46e 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java @@ -73,9 +73,19 @@ if (null == shuttleProtocol) { return false; } - if (!shuttleThread.isIdle()) {//璁惧涓嶇┖闂� + + if (!shuttleThread.isIdle(new ExecuteSupport() { + @Override + public Boolean judgement() { + if (Objects.equals(MotionCtgType.get(motion.getMotionCtgEl()), MotionCtgType.SHUTTLE_CHARGE_OFF)) {//闈炲叧闂厖鐢祄otion锛岄渶瑕佸垽鏂澶囩姸鎬� + return false;//涓嶉渶瑕佸垽鏂姸鎬� + } + return true;//闇�瑕佸垽鏂姸鎬� + } + })) {//璁惧涓嶇┖闂� return false; } + if (motionService.count(new LambdaQueryWrapper<Motion>() .eq(Motion::getDeviceCtg, DeviceCtgType.SHUTTLE.val()) .eq(Motion::getDevice, motion.getDevice()) @@ -147,13 +157,13 @@ } })) { //閿佸畾鎻愬崌鏈� - LiftCommand lockCommand = liftThread.getLockCommand(motion.getTaskNo(), true);//鑾峰彇鎻愬崌鏈洪攣瀹氬懡浠� + List<LiftCommand> lockCommand = liftThread.getLockCommand(motion.getTaskNo(), true);//鑾峰彇鎻愬崌鏈洪攣瀹氬懡浠� LiftAssignCommand liftAssignCommand = new LiftAssignCommand(); liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo()); liftAssignCommand.setTaskNo(motion.getTaskNo()); ArrayList<LiftCommand> list = new ArrayList<>(); - list.add(lockCommand); + list.addAll(lockCommand); liftAssignCommand.setCommands(list); liftAction.assignWork(liftThread.getDevice(), liftAssignCommand); @@ -195,7 +205,7 @@ } })) { //閿佸畾鎻愬崌鏈� - LiftCommand lockCommand = liftThread.getLockCommand(motion.getTaskNo(), true);//鑾峰彇鎻愬崌鏈洪攣瀹氬懡浠� + List<LiftCommand> lockCommand = liftThread.getLockCommand(motion.getTaskNo(), true);//鑾峰彇鎻愬崌鏈洪攣瀹氬懡浠� if (lockCommand == null) { return false; } @@ -204,7 +214,7 @@ liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo()); liftAssignCommand.setTaskNo(motion.getTaskNo()); ArrayList<LiftCommand> list = new ArrayList<>(); - list.add(lockCommand); + list.addAll(lockCommand); liftAssignCommand.setCommands(list); liftAction.assignWork(liftThread.getDevice(), liftAssignCommand); @@ -275,11 +285,13 @@ //鍏呯數浠诲姟 if (Objects.requireNonNull(MotionCtgType.get(motion.getMotionCtgEl())).equals(MotionCtgType.SHUTTLE_CHARGE_ON)) { - // 澶嶄綅绌挎杞� - shuttleThread.setSyncTaskNo(0); - shuttleThread.setProtocolStatus(ShuttleProtocolStatusType.IDLE); - shuttleThread.setPakMk(true); - return true; + if (shuttleProtocol.getHasCharge() || shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.CHARGING_WAITING)) { + // 澶嶄綅绌挎杞� + shuttleThread.setSyncTaskNo(0); + shuttleThread.setProtocolStatus(ShuttleProtocolStatusType.IDLE); + shuttleThread.setPakMk(true); + return true; + } } if (!shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.WAITING) @@ -325,13 +337,13 @@ } })) { //瑙i攣鎻愬崌鏈� - LiftCommand lockCommand = liftThread.getLockCommand(motion.getTaskNo(), false);//鑾峰彇鎻愬崌鏈鸿В閿佸懡浠� + List<LiftCommand> lockCommand = liftThread.getLockCommand(motion.getTaskNo(), false);//鑾峰彇鎻愬崌鏈鸿В閿佸懡浠� LiftAssignCommand liftAssignCommand = new LiftAssignCommand(); liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo()); liftAssignCommand.setTaskNo(motion.getTaskNo()); ArrayList<LiftCommand> list = new ArrayList<>(); - list.add(lockCommand); + list.addAll(lockCommand); liftAssignCommand.setCommands(list); liftAction.assignWork(liftThread.getDevice(), liftAssignCommand); @@ -340,7 +352,7 @@ //鍒ゆ柇灏忚溅鏄惁宸插埌浣� if (liftProtocol.getHasCar()) { - LiftCommand signalCommand = liftThread.getShuttleSignalCommand(motion.getTaskNo(), true);//鑾峰彇灏忚溅宸插埌浣嶅懡浠� + List<LiftCommand> signalCommand = liftThread.getShuttleSignalCommand(motion.getTaskNo(), true);//鑾峰彇灏忚溅宸插埌浣嶅懡浠� if(signalCommand != null) { boolean hasKey = redisUtil.hasKey(DeviceRedisConstant.COMMAND_TMP + motion.getTaskNo()); if (!hasKey) { @@ -348,7 +360,7 @@ liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo()); liftAssignCommand.setTaskNo(motion.getTaskNo()); ArrayList<LiftCommand> list = new ArrayList<>(); - list.add(signalCommand); + list.addAll(signalCommand); liftAssignCommand.setCommands(list); liftAction.assignWork(liftThread.getDevice(), liftAssignCommand); return false; @@ -385,13 +397,13 @@ } })) { //瑙i攣鎻愬崌鏈� - LiftCommand lockCommand = liftThread.getLockCommand(motion.getTaskNo(), false);//鑾峰彇鎻愬崌鏈鸿В閿佸懡浠� + List<LiftCommand> lockCommand = liftThread.getLockCommand(motion.getTaskNo(), false);//鑾峰彇鎻愬崌鏈鸿В閿佸懡浠� LiftAssignCommand liftAssignCommand = new LiftAssignCommand(); liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo()); liftAssignCommand.setTaskNo(motion.getTaskNo()); ArrayList<LiftCommand> list = new ArrayList<>(); - list.add(lockCommand); + list.addAll(lockCommand); liftAssignCommand.setCommands(list); liftAction.assignWork(liftThread.getDevice(), liftAssignCommand); @@ -400,7 +412,7 @@ //鍒ゆ柇灏忚溅鏄惁宸茬寮� if (!liftProtocol.getHasCar()) { - LiftCommand signalCommand = liftThread.getShuttleSignalCommand(motion.getTaskNo(), false);//鑾峰彇灏忚溅宸查┚绂诲懡浠� + List<LiftCommand> signalCommand = liftThread.getShuttleSignalCommand(motion.getTaskNo(), false);//鑾峰彇灏忚溅宸查┚绂诲懡浠� if(signalCommand != null) { boolean hasKey = redisUtil.hasKey(DeviceRedisConstant.COMMAND_TMP + motion.getTaskNo()); if (!hasKey) { @@ -409,7 +421,7 @@ liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo()); liftAssignCommand.setTaskNo(motion.getTaskNo()); ArrayList<LiftCommand> list = new ArrayList<>(); - list.add(signalCommand); + list.addAll(signalCommand); liftAssignCommand.setCommands(list); liftAction.assignWork(liftThread.getDevice(), liftAssignCommand); return false; @@ -448,13 +460,13 @@ } })) { //瑙i攣鎻愬崌鏈� - LiftCommand lockCommand = liftThread.getLockCommand(motion.getTaskNo(), false);//鑾峰彇鎻愬崌鏈鸿В閿佸懡浠� + List<LiftCommand> lockCommand = liftThread.getLockCommand(motion.getTaskNo(), false);//鑾峰彇鎻愬崌鏈鸿В閿佸懡浠� LiftAssignCommand liftAssignCommand = new LiftAssignCommand(); liftAssignCommand.setLiftNo(liftThread.getStatus().getLiftNo()); liftAssignCommand.setTaskNo(motion.getTaskNo()); ArrayList<LiftCommand> list = new ArrayList<>(); - list.add(lockCommand); + list.addAll(lockCommand); liftAssignCommand.setCommands(list); liftAction.assignWork(liftThread.getDevice(), liftAssignCommand); -- Gitblit v1.9.1