|  |  | 
 |  |  | import com.zy.asrs.service.CommandInfoService; | 
 |  |  | import com.zy.asrs.service.TaskWrkService; | 
 |  |  | import com.zy.core.cache.MessageQueue; | 
 |  |  | import com.zy.core.enums.CommandStatusType; | 
 |  |  | import com.zy.core.enums.CommandType; | 
 |  |  | import com.zy.core.enums.SlaveType; | 
 |  |  | import com.zy.core.model.Task; | 
 |  |  | import com.zy.core.model.command.CrnCommand; | 
 |  |  | 
 |  |  | public class CommandUtils { | 
 |  |  |  | 
 |  |  |     public static boolean offer(SlaveType type, Integer id, Task task) { | 
 |  |  |         return offer(type, id, task, true); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static boolean offer(SlaveType type, Integer id, Task task, Boolean auto) { | 
 |  |  |         CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class); | 
 |  |  |         if (commandInfoService == null) { | 
 |  |  |             return false; | 
 |  |  | 
 |  |  |             CommandPackage<CrnCommand> commandPackage = new CommandPackage<>(); | 
 |  |  |             CrnCommand command = (CrnCommand) task.getData(); | 
 |  |  |             wrkNo = command.getTaskNo(); | 
 |  |  |             if (wrkNo != 0) { | 
 |  |  |             if (auto && wrkNo != 0) { | 
 |  |  |                 taskWrk = taskWrkService.selectByWrkNo(wrkNo); | 
 |  |  |                 taskNo = taskWrk.getTaskNo(); | 
 |  |  |             } | 
 |  |  | 
 |  |  |             commandInfo = new CommandInfo(); | 
 |  |  |             commandInfo.setWrkNo(wrkNo); | 
 |  |  |             commandInfo.setTaskNo(taskNo); | 
 |  |  |             commandInfo.setCommandStatus(1); | 
 |  |  |             commandInfo.setCommandStatus(CommandStatusType.CREATE.id); | 
 |  |  |             commandInfo.setStartTime(new Date()); | 
 |  |  |             commandInfo.setDevice(SlaveType.Crn.toString()); | 
 |  |  |             commandInfo.setCommandType(auto? CommandType.AUTO.id : CommandType.MANUAL.id); | 
 |  |  |  | 
 |  |  |             commandInfoService.insert(commandInfo);//插入指令 | 
 |  |  |  | 
 |  |  | 
 |  |  |             commandInfo.setCommand(JSON.toJSONString(commandPackage)); | 
 |  |  |             commandInfoService.updateById(commandInfo); | 
 |  |  |  | 
 |  |  |             //将指令进行投递 | 
 |  |  |             if (!MessageQueue.offer(type, id, task)) { | 
 |  |  |                 return false; | 
 |  |  |             if (!auto) { | 
 |  |  |                 //将指令进行投递 | 
 |  |  |                 if (!MessageQueue.offer(type, id, task)) { | 
 |  |  |                     return false; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             return true; | 
 |  |  |         } else if (type == SlaveType.Devp) { | 
 |  |  |             CommandPackage<StaProtocol> commandPackage = new CommandPackage<>(); | 
 |  |  |             StaProtocol staProtocol = (StaProtocol) task.getData(); | 
 |  |  |             wrkNo = staProtocol.getWorkNo(); | 
 |  |  |             if (wrkNo != 0) { | 
 |  |  |             if (auto && wrkNo != 0) { | 
 |  |  |                 taskWrk = taskWrkService.selectByWrkNo(wrkNo); | 
 |  |  |                 taskNo = taskWrk.getTaskNo(); | 
 |  |  |             } | 
 |  |  | 
 |  |  |             commandInfo = new CommandInfo(); | 
 |  |  |             commandInfo.setWrkNo(wrkNo); | 
 |  |  |             commandInfo.setTaskNo(taskNo); | 
 |  |  |             commandInfo.setCommandStatus(1); | 
 |  |  |             commandInfo.setCommandStatus(CommandStatusType.CREATE.id); | 
 |  |  |             commandInfo.setStartTime(new Date()); | 
 |  |  |             commandInfo.setDevice(SlaveType.Devp.toString()); | 
 |  |  |             commandInfo.setCommandType(auto? CommandType.AUTO.id : CommandType.MANUAL.id); | 
 |  |  |  | 
 |  |  |             commandInfoService.insert(commandInfo);//插入指令 | 
 |  |  |  | 
 |  |  |             staProtocol.setCommandId(commandInfo.getId()); | 
 |  |  | //            staProtocol.setCommandId(commandInfo.getId()); | 
 |  |  |             commandPackage.setCommand(staProtocol); | 
 |  |  |             commandPackage.setWrkNo(wrkNo); | 
 |  |  |             commandPackage.setDevice("输送线"); | 
 |  |  |             commandInfo.setCommand(JSON.toJSONString(commandPackage));//保存命令报文 | 
 |  |  |             commandInfoService.updateById(commandInfo); | 
 |  |  |  | 
 |  |  |             //将指令进行投递 | 
 |  |  |             if (!MessageQueue.offer(type, id, task)) { | 
 |  |  |                 return false; | 
 |  |  |             if (!auto) { | 
 |  |  |                 //将指令进行投递 | 
 |  |  |                 if (!MessageQueue.offer(type, id, task)) { | 
 |  |  |                     return false; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             return true; | 
 |  |  |         } |