| | |
| | | package com.iailab.module.ansteel.job.task; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | 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 org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.List; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 执行天粒度调度方案定时任务 |
| | |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | private String AnStellCOAL = "AnStellCOAL"; //焦化备煤管控 |
| | | private String AnSteelCDQTrackImplv3 = "AnSteelCDQTrackImplv3"; //焦化干熄焦产蒸汽模型 |
| | | private String AnSteelChemProSteamTrack = "AnSteelChemProSteamTrack"; //焦化化产蒸汽消耗模型 |
| | | private String lianjiaoguankong = "lianjiaoguankong"; //焦化炼焦管控模型 |
| | | |
| | | @Autowired |
| | | private MdkApi mdkApi; |
| | | @Autowired |
| | | private McsApi mcsApi; |
| | | |
| | | private final String finalResultStrKey = "finalResultStr"; |
| | | private final String resultListKey = "resultList"; |
| | | |
| | | |
| | | @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(params); |
| | | dto.setScheduleCode(code); |
| | | MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); |
| | | logger.info(params + "调度方案执行完成," + mdkScheduleRespDTO); |
| | | logger.info(code + "调度方案执行完成," + mdkScheduleRespDTO); |
| | | logger.info("调度方案结果开始下发"); |
| | | if (mdkApi.scheduleModelOut(mdkScheduleRespDTO)) { |
| | | logger.info("调度方案结果下发成功"); |
| | |
| | | } |
| | | |
| | | //焦化备煤建议保存 |
| | | if (AnStellCOAL.equals(params)) { |
| | | if (AnStellCOAL.equals(code)) { |
| | | Object equipOperationInfo = mdkScheduleRespDTO.getResult().get("EquipOperationInfo"); |
| | | if(equipOperationInfo != null && StringUtils.isNotBlank(equipOperationInfo.toString())) { |
| | | JSONArray jsonArray = JSON.parseArray(equipOperationInfo.toString()); |
| | | if (jsonArray.size() > 0) { |
| | | for (Object suggest : jsonArray) { |
| | | ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO(); |
| | | suggestDto.setTitle("焦化备煤建议"); |
| | | suggestDto.setContent(suggest.toString()); |
| | | suggestDto.setScheduleObj("COAL"); |
| | | suggestDto.setScheduleTime(dto.getScheduleTime()); |
| | | suggestDto.setCreateTime(calendar.getTime()); |
| | | mcsApi.createScheduleSuggest(suggestDto); |
| | | } |
| | | } |
| | | ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO(); |
| | | suggestDto.setTitle("焦化备煤建议"); |
| | | suggestDto.setContent(equipOperationInfo.toString()); |
| | | suggestDto.setScheduleObj("COAL"); |
| | | suggestDto.setScheduleTime(dto.getScheduleTime()); |
| | | suggestDto.setCreateTime(new Date()); |
| | | mcsApi.createScheduleSuggest(suggestDto); |
| | | } |
| | | } |
| | | //焦化干熄焦产蒸汽模型 建议保存 |
| | | if (AnSteelCDQTrackImplv3.equals(code)) { |
| | | Object finalResultStr = mdkScheduleRespDTO.getResult().get(finalResultStrKey); |
| | | if(finalResultStr != null && StringUtils.isNotBlank(finalResultStr.toString())) { |
| | | ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO(); |
| | | suggestDto.setTitle("干熄焦产蒸汽建议"); |
| | | suggestDto.setContent(finalResultStr.toString()); |
| | | suggestDto.setScheduleObj("GXJCZQ"); |
| | | suggestDto.setScheduleTime(dto.getScheduleTime()); |
| | | suggestDto.setCreateTime(new Date()); |
| | | mcsApi.createScheduleSuggest(suggestDto); |
| | | } |
| | | |
| | | Object resultList = mdkScheduleRespDTO.getResult().get(resultListKey); |
| | | if(resultList != null && StringUtils.isNotBlank(resultList.toString())) { |
| | | ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO(); |
| | | suggestDto.setTitle("干熄焦产蒸汽异常溯源"); |
| | | suggestDto.setContent(resultList.toString()); |
| | | suggestDto.setScheduleObj("GXJCZQ_YCSY"); |
| | | suggestDto.setScheduleTime(dto.getScheduleTime()); |
| | | suggestDto.setCreateTime(new Date()); |
| | | mcsApi.createScheduleSuggest(suggestDto); |
| | | } |
| | | } |
| | | //焦化化产蒸汽消耗模型 建议保存 |
| | | if (AnSteelChemProSteamTrack.equals(code)) { |
| | | Object finalResultStr = mdkScheduleRespDTO.getResult().get(finalResultStrKey); |
| | | if(finalResultStr != null && StringUtils.isNotBlank(finalResultStr.toString())) { |
| | | ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO(); |
| | | suggestDto.setTitle("化产蒸汽消耗建议"); |
| | | suggestDto.setContent(finalResultStr.toString()); |
| | | suggestDto.setScheduleObj("HCZQXH"); |
| | | suggestDto.setScheduleTime(dto.getScheduleTime()); |
| | | suggestDto.setCreateTime(new Date()); |
| | | mcsApi.createScheduleSuggest(suggestDto); |
| | | } |
| | | |
| | | Object resultList = mdkScheduleRespDTO.getResult().get(resultListKey); |
| | | if(resultList != null && StringUtils.isNotBlank(resultList.toString())) { |
| | | ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO(); |
| | | suggestDto.setTitle("化产蒸汽消耗异常溯源"); |
| | | suggestDto.setContent(resultList.toString()); |
| | | suggestDto.setScheduleObj("HCZQXH_YCSY"); |
| | | suggestDto.setScheduleTime(dto.getScheduleTime()); |
| | | suggestDto.setCreateTime(new Date()); |
| | | mcsApi.createScheduleSuggest(suggestDto); |
| | | } |
| | | } |
| | | //焦化炼焦管控模型 建议保存 |
| | | if (lianjiaoguankong.equals(code)) { |
| | | Object finalResultStr = mdkScheduleRespDTO.getResult().get(finalResultStrKey); |
| | | if(finalResultStr != null && StringUtils.isNotBlank(finalResultStr.toString())) { |
| | | ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO(); |
| | | suggestDto.setTitle("炼焦管控建议"); |
| | | suggestDto.setContent(finalResultStr.toString()); |
| | | suggestDto.setScheduleObj("LJGK"); |
| | | suggestDto.setScheduleTime(dto.getScheduleTime()); |
| | | suggestDto.setCreateTime(new Date()); |
| | | mcsApi.createScheduleSuggest(suggestDto); |
| | | } |
| | | |
| | | Object resultList = mdkScheduleRespDTO.getResult().get(resultListKey); |
| | | if(resultList != null && StringUtils.isNotBlank(resultList.toString())) { |
| | | ScheduleSuggestRespDTO suggestDto = new ScheduleSuggestRespDTO(); |
| | | suggestDto.setTitle("炼焦管控异常溯源"); |
| | | suggestDto.setContent(resultList.toString()); |
| | | suggestDto.setScheduleObj("LJGK_YCSY"); |
| | | suggestDto.setScheduleTime(dto.getScheduleTime()); |
| | | suggestDto.setCreateTime(new Date()); |
| | | mcsApi.createScheduleSuggest(suggestDto); |
| | | } |
| | | } |
| | | } catch (Exception ex) { |
| | | logger.error("runDayScheduleModuleTask运行异常"); |
| | | ex.printStackTrace(); |
| | | logger.error("runDayScheduleModuleTask运行异常",ex); |
| | | } |
| | | logger.info("runDayScheduleModuleTask运行完成"); |
| | | } |