package com.iailab.module.shasteel.job.task; import com.iailab.module.model.api.mdk.MdkApi; import com.iailab.module.model.api.mdk.dto.MdkPredictReqDTO; import com.iailab.module.shasteel.mq.common.constant.RoutingConstant; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.*; /** * 执行模块预测定时任务 */ @Component("runPredictModuleTask") public class RunPredictModuleTask implements ITask { private Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private MdkApi mdkApi; @Autowired private RabbitTemplate rabbitTemplate; @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); Date predictTime = calendar.getTime(); if (StringUtils.isEmpty(params)) { logger.info("参数为空"); return; } List moduleTypeList = Arrays.asList(params.split(",")); moduleTypeList.forEach(type -> { MdkPredictReqDTO dto = new MdkPredictReqDTO(); dto.setPredictTime(predictTime); dto.setModuleType(type); mdkApi.predictModule(dto); logger.info(type + "模块预测完成。"); Map msg = new HashMap<>(); msg.put("moduleType", type); msg.put("predictTime", predictTime); rabbitTemplate.convertAndSend(RoutingConstant.EXCHANGE, RoutingConstant.Iailab_Model_PredictFinish, msg); }); } catch (Exception ex) { logger.error("runPredictModuleTask运行异常"); ex.printStackTrace(); } logger.info("runPredictModuleTask运行完成"); } }