|  |  | 
 |  |  | package com.zy.asrs.controller; | 
 |  |  |  | 
 |  |  | import com.alibaba.fastjson.JSON; | 
 |  |  | import com.alibaba.fastjson.JSONArray; | 
 |  |  | import com.alibaba.fastjson.JSONObject; | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.core.common.R; | 
 |  |  | import com.zy.common.web.BaseController; | 
 |  |  | import com.zy.core.cache.MessageQueue; | 
 |  |  | import com.zy.core.enums.CommandStatusType; | 
 |  |  | import com.zy.core.enums.SlaveType; | 
 |  |  | import com.zy.core.model.Task; | 
 |  |  | import com.zy.core.model.command.CommandPackage; | 
 |  |  | import com.zy.core.model.command.CrnCommand; | 
 |  |  | import com.zy.core.model.protocol.StaProtocol; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.web.bind.annotation.*; | 
 |  |  |  | 
 |  |  | 
 |  |  |         EntityWrapper<CommandInfo> wrapper = new EntityWrapper<>(); | 
 |  |  |         excludeTrash(param); | 
 |  |  |         convert(param, wrapper); | 
 |  |  |         wrapper.in("command_status", "1,2"); | 
 |  |  |         if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} | 
 |  |  |         return R.ok(commandInfoService.selectPage(new Page<>(curr, limit), wrapper)); | 
 |  |  |     } | 
 |  |  | 
 |  |  |         EntityWrapper<CommandInfo> wrapper = new EntityWrapper<>(); | 
 |  |  |         excludeTrash(param); | 
 |  |  |         convert(param, wrapper); | 
 |  |  |         wrapper.in("command_status", "3"); | 
 |  |  |         if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} | 
 |  |  |         return R.ok(commandInfoService.selectPage(new Page<>(curr, limit), wrapper)); | 
 |  |  |     } | 
 |  |  | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PostMapping(value = "/commandInfo/executeCommand") | 
 |  |  |     @ManagerAuth | 
 |  |  |     public R executeCommand(@RequestParam("id") Integer id) { | 
 |  |  |         CommandInfo commandInfo = commandInfoService.selectById(id); | 
 |  |  |         if (commandInfo == null) { | 
 |  |  |             return R.error("指令不存在"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         commandInfo.setCommandStatus(CommandStatusType.EXECUTE.id);//执行状态 | 
 |  |  |         commandInfo.setExecuteTime(new Date()); | 
 |  |  |         if (commandInfoService.updateById(commandInfo)) { | 
 |  |  |             //将指令进行投递 | 
 |  |  |             CommandPackage commandPackage = JSON.parseObject(commandInfo.getCommand(), CommandPackage.class); | 
 |  |  |             SlaveType type = SlaveType.findInstance(commandInfo.getDevice()); | 
 |  |  |             if (type == null) { | 
 |  |  |                 return R.error("未知设备"); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             switch (type) { | 
 |  |  |                 case Crn: | 
 |  |  |                     CrnCommand crnCommand = JSON.parseObject(commandPackage.getCommand().toString(), CrnCommand.class); | 
 |  |  |                     MessageQueue.offer(type, crnCommand.getCrnNo(), new Task(5, crnCommand)); | 
 |  |  |                     break; | 
 |  |  |                 case Devp: | 
 |  |  |                     StaProtocol staProtocol = JSON.parseObject(commandPackage.getCommand().toString(), StaProtocol.class); | 
 |  |  |                     MessageQueue.offer(type, staProtocol.getSiteId(), new Task(3, staProtocol)); | 
 |  |  |                     break; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PostMapping(value = "/commandInfo/completeCommand") | 
 |  |  |     @ManagerAuth | 
 |  |  |     public R completeCommand(@RequestParam("id") Integer id) { | 
 |  |  |         CommandInfo commandInfo = commandInfoService.selectById(id); | 
 |  |  |         if (commandInfo == null) { | 
 |  |  |             return R.error("指令不存在"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         commandInfo.setCommandStatus(CommandStatusType.COMPLETE.id);//完成状态 | 
 |  |  |         commandInfo.setCompleteTime(new Date()); | 
 |  |  |         commandInfoService.updateById(commandInfo); | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |