##
luxiaotao1123
2020-12-30 986aca08c6202596ec8bfbbc220b9957904eec3f
src/main/java/com/zy/asrs/controller/CrnController.java
@@ -403,23 +403,39 @@
                if (crnProtocol == null) {
                    throw new CoolException("堆垛机不在线");
                }
                // 只有出现指定异常才进行复位
                if (crnProtocol.getCrnError3().leftTakeNoneErr
                        || crnProtocol.getCrnError3().rightTakeNoneErr
                        || crnProtocol.getCrnError3().leftTakeThenLoadErr
                        || crnProtocol.getCrnError3().rightTakeThenLoadErr) {
                    CrnCommand command = new CrnCommand();
                    command.setCrnNo(param.getCrnNo()); // 堆垛机编号
                    command.setAckFinish((short) 1);  // 任务完成确认位
                    command.setTaskMode(CrnTaskModeType.NONE); // 任务模式
                if (crn.getId() == 1) {
                    // 只有出现指定异常才进行复位
                    if (crnProtocol.getCrnError3().leftTakeNoneErr
                            || crnProtocol.getCrnError3().rightTakeNoneErr
                            || crnProtocol.getCrnError3().leftTakeThenLoadErr
                            || crnProtocol.getCrnError3().rightTakeThenLoadErr) {
                        CrnCommand command = new CrnCommand();
                        command.setCrnNo(param.getCrnNo()); // 堆垛机编号
                        command.setAckFinish((short) 1);  // 任务完成确认位
                        command.setTaskMode(CrnTaskModeType.NONE); // 任务模式
                        // 延时发送
                        Thread.sleep(3000L);
                        if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, command))) {
                            return R.ok();
                        } else {
                            throw new CoolException("命令下发失败");
                        }
                    }
                } else if (crn.getId() == 2) {
                    CrnCommand crnCommand = new CrnCommand();
                    crnCommand.setCrnNo(crn.getId()); // 堆垛机编号
                    crnCommand.setTaskMode(CrnTaskModeType.CANCEL);
                    crnCommand.setAckFinish((short) 0);  // 任务完成确认位
                    // 延时发送
                    Thread.sleep(3000L);
                    if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, command))) {
                    Thread.sleep(1000L);
                    if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, crnCommand))) {
                        return R.ok();
                    } else {
                        throw new CoolException("命令下发失败");
                    }
                }
            }
        }