package com.iailab.module.shasteel.job.task; import com.iailab.module.model.api.mdk.MdkApi; import com.iailab.module.model.api.mdk.dto.MdkScheduleReqDTO; import com.iailab.module.model.api.mdk.dto.MdkScheduleRespDTO; import com.iailab.module.shasteel.job.entity.MessageInfoEntity; import com.iailab.module.shasteel.job.service.MessageInfoService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Calendar; import java.util.Date; /** * 执行调度方案定时任务 * */ @Component("runScheduleModuleTask") public class RunScheduleModuleTask implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private MdkApi mdkApi; @Autowired private MessageInfoService messageInfoService; @Override public void run(String params) { logger.info("runScheduleModuleTask定时任务正在执行,参数为:{}",params ); try { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.SECOND,0); calendar.set(Calendar.MILLISECOND,0); MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); dto.setScheduleTime(calendar.getTime()); dto.setScheduleCode(params); MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); logger.info(params + "调度方案执行完成," + mdkScheduleRespDTO); logger.info("调度方案结果开始下发"); if(params.equals("shaNitrogenSos")&&Integer.parseInt(mdkScheduleRespDTO.getResult().get("adviceValues").toString())>0&&!messageInfoService.getIsSuggestKeep("氮气应急预案")){ MessageInfoEntity messageInfoEntity = new MessageInfoEntity(); messageInfoEntity.setTitle("氮气应急预案"); messageInfoEntity.setContent(mdkScheduleRespDTO.getResult().get("advice").toString()); messageInfoEntity.setSendTime(mdkScheduleRespDTO.getScheduleTime()); messageInfoEntity.setReadStatus("0"); messageInfoEntity.setBusinessKey(mdkScheduleRespDTO.getScheduleCode()); messageInfoEntity.setMessageSource("系统运行预警"); messageInfoEntity.setCreateDate(new Date()); messageInfoService.create(messageInfoEntity); } if(params.equals("oxygenSos")&&Integer.parseInt(mdkScheduleRespDTO.getResult().get("adviceValues").toString())>0&&!messageInfoService.getIsSuggestKeep("氧气应急预案")){ MessageInfoEntity messageInfoEntity = new MessageInfoEntity(); messageInfoEntity.setTitle("氧气应急预案"); messageInfoEntity.setContent(mdkScheduleRespDTO.getResult().get("advice").toString()); messageInfoEntity.setSendTime(mdkScheduleRespDTO.getScheduleTime()); messageInfoEntity.setReadStatus("0"); messageInfoEntity.setBusinessKey(mdkScheduleRespDTO.getScheduleCode()); messageInfoEntity.setMessageSource("系统运行预警"); messageInfoEntity.setCreateDate(new Date()); messageInfoService.create(messageInfoEntity); } if (mdkApi.scheduleModelOut(mdkScheduleRespDTO)) { logger.info("调度方案结果下发成功"); }else { logger.error("调度方案结果下发失败"); } } catch (Exception ex) { logger.error("runScheduleModuleTask运行异常"); ex.printStackTrace(); } logger.info("runScheduleModuleTask运行完成"); } }