| | |
| | | //将此map存入redis中 |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | |
| | | //提升机号 |
| | | map.put("lift_no", assignCommand.getLiftNo()); |
| | | //工作号 |
| | | map.put("wrk_no", assignCommand.getTaskNo()); |
| | | //命令执行步序 |
| | | map.put("commandStep", 0); |
| | | //命令 |
| | | map.put("assignCommand", assignCommand); |
| | | //任务数据保存到redis |
| | | redisUtil.set("lift_wrk_no_" + assignCommand.getTaskNo(), JSON.toJSONString(map)); |
| | | liftProtocol.setAssignCommand(assignCommand); |
| | | liftProtocol.setProtocolStatus(LiftProtocolStatusType.WORKING); |
| | | //执行下发任务 |
| | | executeWork(assignCommand); |
| | | } |
| | | |
| | | //执行任务 |
| | | private boolean executeWork(LiftAssignCommand assignCommand) { |
| | | //读取redis数据 |
| | | if (assignCommand == null) { |
| | | return false; |
| | | } |
| | | |
| | | //将标记置为false(防止重发) |
| | | liftProtocol.setPakMk(false); |
| | | |
| | | //手动模式指令 |
| | | if (!assignCommand.getAuto()) { |
| | | LiftCommand command = new LiftCommand(); |
| | |
| | | case 5://复位 |
| | | command.setRun((short) 0); |
| | | command.setLiftLock(false); |
| | | liftProtocol.setTaskNo((short) 0); |
| | | liftProtocol.setShuttleNo((short) 0); |
| | | liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE); |
| | | liftProtocol.setPakMk(true); |
| | | break; |
| | | default: |
| | | } |
| | | commands.add(command); |
| | | assignCommand.setCommands(commands); |
| | | } |
| | | |
| | | //提升机号 |
| | | map.put("lift_no", assignCommand.getLiftNo()); |
| | | //工作号 |
| | | map.put("wrk_no", assignCommand.getTaskNo()); |
| | | //命令执行步序 |
| | | map.put("commandStep", 0); |
| | | //命令 |
| | | map.put("assignCommand", assignCommand); |
| | | //任务数据保存到redis |
| | | redisUtil.set("lift_wrk_no_" + assignCommand.getTaskNo(), JSON.toJSONString(map)); |
| | | liftProtocol.setAssignCommand(assignCommand); |
| | | liftProtocol.setProtocolStatus(LiftProtocolStatusType.WORKING); |
| | | //执行下发任务 |
| | | executeWork(assignCommand); |
| | | } |
| | | |
| | | //执行任务 |
| | | private boolean executeWork(LiftAssignCommand assignCommand) { |
| | | //读取redis数据 |
| | | if (assignCommand == null) { |
| | | return false; |
| | | } |
| | | |
| | | //将标记置为false(防止重发) |
| | | liftProtocol.setPakMk(false); |
| | | |
| | | Object o = redisUtil.get("lift_wrk_no_" + assignCommand.getTaskNo()); |
| | | if (o == null) { |
| | |
| | | News.info("提升机任务执行完成等待确认中,提升机号={},任务数据={}", command.getLiftNo(), JSON.toJSON(command)); |
| | | }else { |
| | | //手动模式不抛出等待状态 |
| | | if (assignCommand.getTaskMode() == 5) { |
| | | liftProtocol.setTaskNo((short) 0); |
| | | liftProtocol.setShuttleNo((short) 0); |
| | | liftProtocol.setProtocolStatus(LiftProtocolStatusType.IDLE); |
| | | liftProtocol.setPakMk(true); |
| | | liftProtocol.setSecurityMk(false); |
| | | } |
| | | News.info("提升机手动任务执行完成,提升机号={},任务数据={}", command.getLiftNo(), JSON.toJSON(command)); |
| | | } |
| | | |
| | | //下发一条提升机解锁命令 |
| | | LiftCommand liftCommand = new LiftCommand(); |
| | | liftCommand.setRun((short) 0); |
| | | liftCommand.setLiftNo(command.getLiftNo()); |
| | | liftCommand.setLiftLock(false); |
| | | if (write(liftCommand)) { |
| | | News.info("提升机状态已解锁,提升机号={},任务数据={}", command.getLiftNo(), JSON.toJSON(command)); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |