package com.iailab.module.shasteel.job.task; import com.iailab.framework.common.util.date.DateUtils; 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.CommonConstant; 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", DateUtils.format(predictTime, DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)); rabbitTemplate.convertAndSend(RoutingConstant.EXCHANGE, RoutingConstant.Iailab_Model_PredictFinish, msg); if (type.equals(CommonConstant.NET_LDG)) { //转炉管网预测完æˆå‘é€å•ç‹¬æ¶ˆæ¯ï¼Œæ‰§è¡Œè½¬ç‚‰è°ƒåº¦ rabbitTemplate.convertAndSend(RoutingConstant.EXCHANGE, RoutingConstant.Iailab_Model_PredictFinish_LDG, msg); } if (type.equals(CommonConstant.TRIGGER_CONDITION_ELEC)) { //电力管网预测完æˆå‘é€å•ç‹¬æ¶ˆæ¯ï¼Œæ‰§è¡Œç”µåŠ›è°ƒåº¦ rabbitTemplate.convertAndSend(RoutingConstant.EXCHANGE, RoutingConstant.Iailab_Model_PredictFinish_Elec, msg); } }); } catch (Exception ex) { logger.error("runPredictModuleTaskè¿è¡Œå¼‚常",ex); } logger.info("runPredictModuleTaskè¿è¡Œå®Œæˆ"); } }