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.*;
|
|
/**
|
* 执行模块预测定时任务
|
* 1、高炉
|
* 2、焦炉
|
* 3、转炉
|
* 3.1、氧气
|
* 3.2、蒸汽
|
* 4、氮气
|
*/
|
@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<String> 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<String, Object> 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运行完成");
|
}
|
}
|