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.*; /** * 无功优化模型 * * @author PanZhibao * @Description * @createTime 2025年04月02日 */ @Component("runOffPowerOptimTask") public class RunOffPowerOptimTask implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private MdkApi mdkApi; @Autowired private McsApi mcsApi; @Override public void run(String params) { logger.info("runPredictModuleTask定时任务正在执行,参数为:{}", 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); Map result = mdkScheduleRespDTO.getResult(); for(Map.Entry entry : result.entrySet()) { String key = entry.getKey(); this.saveScheduleSuggest("无功优化", entry.getValue(), "WGYH", calendar.getTime()); } } catch (Exception ex) { logger.error("runPredictModuleTask运行异常",ex); } logger.info("runPredictModuleTask运行完成"); } private void saveScheduleSuggest(String title, Object content, String scheduleObj, Date scheduleTime) { if (content == null || StringUtils.isBlank(content.toString()) || "0".equals(content.toString())) { logger.info(title + "content为空"); return; } ScheduleSuggestRespDTO suggest = new ScheduleSuggestRespDTO(); suggest.setTitle(title); suggest.setContent(content.toString()); suggest.setScheduleObj(scheduleObj); suggest.setScheduleTime(scheduleTime); suggest.setSort(0); mcsApi.createScheduleSuggest(suggest); } }