package com.iailab.module.ansteel.job.task; import com.iailab.module.model.api.mcs.McsApi; import com.iailab.module.model.api.mcs.dto.ScheduleSuggestRespDTO; 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 org.apache.commons.lang3.StringUtils; 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("runDayScheduleModuleTask") public class RunDayScheduleModuleTask implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); private String AnStellCOAL = "AnStellCOAL"; //焦化备煤管控 @Autowired private MdkApi mdkApi; @Autowired private McsApi mcsApi; @Override public void run(String params) { logger.info("runDayScheduleModuleTask定时任务正在执行,参数为:{}", params); try { String[] split = params.split(","); String code; String day = "0"; if (split.length > 1) { code = split[0]; day = split[1]; }else { code = split[0]; } Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.MINUTE,0); calendar.set(Calendar.HOUR_OF_DAY,0); calendar.add(Calendar.DAY_OF_YEAR,Integer.parseInt(day)); MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); dto.setScheduleTime(calendar.getTime()); dto.setScheduleCode(code); MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); logger.info(code + "调度方案执行完成," + mdkScheduleRespDTO); logger.info("调度方案结果开始下发"); if (mdkApi.scheduleModelOut(mdkScheduleRespDTO)) { logger.info("调度方案结果下发成功"); } else { logger.error("调度方案结果下发失败"); } //焦化备煤建议保存 if (AnStellCOAL.equals(code)) { Object equipOperationInfo = mdkScheduleRespDTO.getResult().get("EquipOperationInfo"); if(equipOperationInfo != null && StringUtils.isNotBlank(equipOperationInfo.toString())) { ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO(); suggestDto.setTitle("焦化备煤建议"); suggestDto.setContent(equipOperationInfo.toString()); suggestDto.setScheduleObj("COAL"); suggestDto.setScheduleTime(dto.getScheduleTime()); suggestDto.setCreateTime(new Date()); mcsApi.createScheduleSuggest(suggestDto); } } } catch (Exception ex) { logger.error("runDayScheduleModuleTask运行异常",ex); } logger.info("runDayScheduleModuleTask运行完成"); } }