Merge remote-tracking branch 'origin/master'
| | |
| | | |
| | | <properties> |
| | | |
| | | <revision>0.0.1</revision> |
| | | <revision>1.0.0</revision> |
| | | <!-- Maven 相关 --> |
| | | <java.version>1.8</java.version> |
| | | <maven.compiler.source>${java.version}</maven.compiler.source> |
| | |
| | | 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.MdkPredictModuleRespDTO; |
| | | 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.Calendar; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 执行模块预测定时任务 |
| | | * 1、高炉 |
| | | * 2、焦炉 |
| | | * 3、转炉 |
| | | * 3.1、氧气 |
| | | * 3.2、蒸汽 |
| | | * 4、氮气 |
| | | */ |
| | | @Component("runPredictModuleTask") |
| | | public class RunPredictModuleTask implements ITask { |
| | |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.SECOND, 0); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | | |
| | | MdkPredictReqDTO dto = new MdkPredictReqDTO(); |
| | | dto.setPredictTime(calendar.getTime()); |
| | | dto.setModuleType(params); |
| | | MdkPredictModuleRespDTO mdkPredictModuleRespDTO = mdkApi.predictModule(dto); |
| | | logger.info(params + "模块预测完成," + mdkPredictModuleRespDTO); |
| | | rabbitTemplate.convertAndSend(RoutingConstant.EXCHANGE, RoutingConstant.Iailab_Model_PredictFinish, mdkPredictModuleRespDTO); |
| | | |
| | | 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); |
| | | }); |
| | | } catch (Exception ex) { |
| | | logger.error("runPredictModuleTask运行异常"); |
| | | ex.printStackTrace(); |
对比新文件 |
| | |
| | | package com.iailab.module.shasteel.job.task; |
| | | |
| | | import com.iailab.module.model.api.mcs.McsApi; |
| | | import com.iailab.module.model.api.mcs.dto.AlarmMessageRespDTO; |
| | | import com.iailab.module.model.api.mcs.dto.ScheduleSuggestRespDTO; |
| | | import com.iailab.module.model.api.mcs.dto.StScheduleSchemeDTO; |
| | | 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 com.iailab.module.model.enums.CommonConstant; |
| | | import com.iailab.module.model.enums.ScheduleTriggerMethodEnum; |
| | | 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 org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 压缩空气优化调度 |
| | | * 定时触发 30 0/2 * * * ? |
| | | * 压力低于下限预警信息 pressureLWarning |
| | | * 压力高于上限预警信息 pressureHWarning |
| | | * 空压机启动调度建议 dispatchStart |
| | | * 空压机关停调度建议 dispatchClose |
| | | * |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2025年01月07日 |
| | | */ |
| | | @Component("runScheduleAirDispatchTask") |
| | | public class RunScheduleAirDispatchTask implements ITask { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | @Autowired |
| | | private McsApi mcsApi; |
| | | |
| | | @Autowired |
| | | private MdkApi mdkApi; |
| | | |
| | | @Override |
| | | public void run(String params) { |
| | | logger.info("RunScheduleAirDispatchTask,参数为:{}", params); |
| | | try { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | | calendar.set(Calendar.SECOND, 0); |
| | | Date scheduleTime = calendar.getTime(); |
| | | if (StringUtils.isEmpty(params)) { |
| | | logger.info("参数为空"); |
| | | return; |
| | | } |
| | | |
| | | // 根据条件查找方案 |
| | | List<StScheduleSchemeDTO> schemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.JOB.getCode(), params); |
| | | if (CollectionUtils.isEmpty(schemeList)) { |
| | | logger.info("方案为空"); |
| | | return; |
| | | } |
| | | |
| | | StScheduleSchemeDTO scheme = schemeList.get(0); |
| | | MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); |
| | | dto.setScheduleTime(scheduleTime); |
| | | dto.setScheduleCode(scheme.getCode()); |
| | | MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); |
| | | if (!CommonConstant.MDK_STATUS_100.equals(mdkScheduleRespDTO.getStatusCode())) { |
| | | logger.info("调度结果异常,STATUS=" + mdkScheduleRespDTO.getStatusCode()); |
| | | return; |
| | | } |
| | | |
| | | // 保存预警信息 |
| | | if (mdkScheduleRespDTO.getResult().get("pressureLWarning") != null && |
| | | StringUtils.isNotEmpty(mdkScheduleRespDTO.getResult().get("pressureLWarning").toString())) { |
| | | String pressureLWarning = mdkScheduleRespDTO.getResult().get("pressureLWarning").toString(); |
| | | AlarmMessageRespDTO alarm = new AlarmMessageRespDTO(); |
| | | alarm.setTitle("压力低于下限预警"); |
| | | alarm.setContent(pressureLWarning); |
| | | alarm.setAlarmObj(scheme.getScheduleObj()); |
| | | alarm.setAlarmType("低于下限"); |
| | | alarm.setAlarmTime(scheduleTime); |
| | | mcsApi.createAlarmMessage(alarm); |
| | | } |
| | | |
| | | |
| | | if (mdkScheduleRespDTO.getResult().get("pressureHWarning") != null && |
| | | StringUtils.isNotEmpty(mdkScheduleRespDTO.getResult().get("pressureHWarning").toString())) { |
| | | String pressureHWarning = mdkScheduleRespDTO.getResult().get("pressureHWarning").toString(); |
| | | AlarmMessageRespDTO alarm = new AlarmMessageRespDTO(); |
| | | alarm.setTitle("压力高于上限预警"); |
| | | alarm.setContent(pressureHWarning); |
| | | alarm.setAlarmObj(scheme.getScheduleObj()); |
| | | alarm.setAlarmType("高于上限"); |
| | | alarm.setAlarmTime(scheduleTime); |
| | | mcsApi.createAlarmMessage(alarm); |
| | | } |
| | | |
| | | // 保存调度建议 |
| | | if (mdkScheduleRespDTO.getResult().get("dispatchStart") != null && |
| | | StringUtils.isNotEmpty(mdkScheduleRespDTO.getResult().get("dispatchStart").toString())) { |
| | | String dispatchStart = mdkScheduleRespDTO.getResult().get("dispatchStart").toString(); |
| | | ScheduleSuggestRespDTO suggest = new ScheduleSuggestRespDTO(); |
| | | suggest.setTitle("空压机启动调度建议"); |
| | | suggest.setContent(dispatchStart); |
| | | suggest.setScheduleObj(scheme.getScheduleObj()); |
| | | suggest.setScheduleTime(scheduleTime); |
| | | suggest.setSort(0); |
| | | mcsApi.createScheduleSuggest(suggest); |
| | | } |
| | | |
| | | if (mdkScheduleRespDTO.getResult().get("dispatchClose") != null && |
| | | StringUtils.isNotEmpty(mdkScheduleRespDTO.getResult().get("dispatchClose").toString())) { |
| | | String dispatchClose = mdkScheduleRespDTO.getResult().get("dispatchClose").toString(); |
| | | ScheduleSuggestRespDTO suggest = new ScheduleSuggestRespDTO(); |
| | | suggest.setTitle("空压机关停调度建议"); |
| | | suggest.setContent(dispatchClose); |
| | | suggest.setScheduleObj(scheme.getScheduleObj()); |
| | | suggest.setScheduleTime(scheduleTime); |
| | | suggest.setSort(0); |
| | | mcsApi.createScheduleSuggest(suggest); |
| | | } |
| | | |
| | | logger.info(params + "调度方案执行完成"); |
| | | } catch (Exception ex) { |
| | | logger.error("RunScheduleAirDispatchTask运行异常"); |
| | | ex.printStackTrace(); |
| | | } |
| | | logger.info("RunScheduleAirDispatchTask运行完成"); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.shasteel.job.task; |
| | | |
| | | import com.iailab.module.model.api.mcs.McsApi; |
| | | import com.iailab.module.model.api.mcs.dto.StScheduleSchemeDTO; |
| | | 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 com.iailab.module.model.enums.ScheduleTriggerMethodEnum; |
| | | 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 org.springframework.util.CollectionUtils; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 压缩空气运行指标(班) |
| | | * 8*60=480 数据 |
| | | * 每班更新,20 0 0,8,16 * * ? * |
| | | * |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2025年01月03日 |
| | | */ |
| | | @Component("runScheduleAirIndexClassTask") |
| | | public class RunScheduleAirIndexClassTask implements ITask { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | @Resource |
| | | private McsApi mcsApi; |
| | | |
| | | @Autowired |
| | | private MdkApi mdkApi; |
| | | |
| | | @Override |
| | | public void run(String params) { |
| | | logger.info("RunScheduleAirIndexClassTask,参数为:{}", params); |
| | | try { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | | calendar.set(Calendar.SECOND, 0); |
| | | Date scheduleTime = calendar.getTime(); |
| | | if (StringUtils.isEmpty(params)) { |
| | | logger.info("参数为空"); |
| | | return; |
| | | } |
| | | // 根据条件查找方案 |
| | | List<StScheduleSchemeDTO> schemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.JOB.getCode(), params); |
| | | if (CollectionUtils.isEmpty(schemeList)) { |
| | | logger.info("方案为空"); |
| | | return; |
| | | } |
| | | for (StScheduleSchemeDTO scheme : schemeList) { |
| | | MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); |
| | | dto.setScheduleTime(scheduleTime); |
| | | dto.setScheduleCode(scheme.getCode()); |
| | | MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); |
| | | // 结果写入测点 |
| | | mdkApi.scheduleModelOut(mdkScheduleRespDTO); |
| | | } |
| | | logger.info(params + "调度方案执行完成"); |
| | | } catch (Exception ex) { |
| | | logger.error("RunScheduleAirIndexClassTask运行异常"); |
| | | ex.printStackTrace(); |
| | | } |
| | | logger.info("RunScheduleAirIndexClassTask运行完成"); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.shasteel.job.task; |
| | | |
| | | import com.iailab.module.model.api.mcs.McsApi; |
| | | import com.iailab.module.model.api.mcs.dto.StScheduleSchemeDTO; |
| | | 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 com.iailab.module.model.enums.ScheduleTriggerMethodEnum; |
| | | 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 org.springframework.util.CollectionUtils; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.temporal.ChronoUnit; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 压缩空气运行指标(月) |
| | | * 动态数据长度,月初到当天 |
| | | * 每天更新,10 0 0 1/1 * ? |
| | | * |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年12月31日 |
| | | */ |
| | | @Component("runScheduleAirIndexMonthTask") |
| | | public class RunScheduleAirIndexMonthTask implements ITask { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | @Resource |
| | | private McsApi mcsApi; |
| | | |
| | | @Autowired |
| | | private MdkApi mdkApi; |
| | | |
| | | @Override |
| | | public void run(String params) { |
| | | logger.info("RunScheduleAirIndexMonthTask,参数为:{}", params); |
| | | try { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | | calendar.set(Calendar.SECOND, 0); |
| | | Date scheduleTime = calendar.getTime(); |
| | | if (StringUtils.isEmpty(params)) { |
| | | logger.info("参数为空"); |
| | | return; |
| | | } |
| | | // 根据条件查找方案 |
| | | List<StScheduleSchemeDTO> schemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.JOB.getCode(), params); |
| | | if (CollectionUtils.isEmpty(schemeList)) { |
| | | logger.info("方案为空"); |
| | | return; |
| | | } |
| | | |
| | | for (StScheduleSchemeDTO scheme : schemeList) { |
| | | MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); |
| | | dto.setScheduleTime(scheduleTime); |
| | | dto.setScheduleCode(scheme.getCode()); |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | LocalDate startOfMonth = LocalDate.now().withDayOfMonth(1); |
| | | LocalDateTime startOfMonthAtMidnight = startOfMonth.atStartOfDay(); |
| | | long timeDifference = ChronoUnit.MINUTES.between(startOfMonthAtMidnight, now); |
| | | Map<Integer, Integer> dynamicDataLength = new HashMap<>(); |
| | | dynamicDataLength.put(1, (int) timeDifference); |
| | | dynamicDataLength.put(2, (int) timeDifference); |
| | | dynamicDataLength.put(3, (int) timeDifference); |
| | | dto.setDynamicDataLength( dynamicDataLength); |
| | | Map<String, String> dynamicSettings = new HashMap<>(); |
| | | dynamicSettings.put("embedDim", String.valueOf(timeDifference)); |
| | | dto.setDynamicSettings(dynamicSettings); |
| | | MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); |
| | | // 结果写入测点 |
| | | mdkApi.scheduleModelOut(mdkScheduleRespDTO); |
| | | } |
| | | logger.info(params + "调度方案执行完成"); |
| | | } catch (Exception ex) { |
| | | logger.error("RunScheduleAirIndexMonthTask运行异常"); |
| | | ex.printStackTrace(); |
| | | } |
| | | logger.info("RunScheduleAirIndexMonthTask运行完成"); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.shasteel.job.task; |
| | | |
| | | import com.iailab.module.model.api.mcs.McsApi; |
| | | import com.iailab.module.model.api.mcs.dto.StScheduleSchemeDTO; |
| | | 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 com.iailab.module.model.enums.ScheduleTriggerMethodEnum; |
| | | 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 org.springframework.util.CollectionUtils; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 压缩空气运行指标(周) |
| | | * 最近7天的数据 |
| | | * 每天更新,20 0 0 1/1 * ? |
| | | * |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2025年01月03日 |
| | | */ |
| | | @Component("runScheduleAirIndexWeekTask") |
| | | public class RunScheduleAirIndexWeekTask implements ITask { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | @Resource |
| | | private McsApi mcsApi; |
| | | |
| | | @Autowired |
| | | private MdkApi mdkApi; |
| | | |
| | | @Override |
| | | public void run(String params) { |
| | | logger.info("RunScheduleAirIndexWeekTask,参数为:{}", params); |
| | | try { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | | calendar.set(Calendar.SECOND, 0); |
| | | Date scheduleTime = calendar.getTime(); |
| | | if (StringUtils.isEmpty(params)) { |
| | | logger.info("参数为空"); |
| | | return; |
| | | } |
| | | // 根据条件查找方案 |
| | | List<StScheduleSchemeDTO> schemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.JOB.getCode(), params); |
| | | if (CollectionUtils.isEmpty(schemeList)) { |
| | | logger.info("方案为空"); |
| | | return; |
| | | } |
| | | for (StScheduleSchemeDTO scheme : schemeList) { |
| | | MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); |
| | | dto.setScheduleTime(scheduleTime); |
| | | dto.setScheduleCode(scheme.getCode()); |
| | | MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); |
| | | // 结果写入测点 |
| | | mdkApi.scheduleModelOut(mdkScheduleRespDTO); |
| | | } |
| | | logger.info(params + "调度方案执行完成"); |
| | | } catch (Exception ex) { |
| | | logger.error("RunScheduleAirIndexWeekTask运行异常"); |
| | | ex.printStackTrace(); |
| | | } |
| | | logger.info("RunScheduleAirIndexWeekTask运行完成"); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.shasteel.job.task; |
| | | |
| | | import com.iailab.module.model.api.mcs.McsApi; |
| | | import com.iailab.module.model.api.mcs.dto.StScheduleSchemeDTO; |
| | | 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 com.iailab.module.model.enums.ScheduleTriggerMethodEnum; |
| | | 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 org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 压缩空气产消比例 |
| | | * 定时触发,30 0/1 * * * ? |
| | | * |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2025年01月06日 |
| | | */ |
| | | @Component("runScheduleAirRatioTask") |
| | | public class RunScheduleAirRatioTask implements ITask { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | @Autowired |
| | | private McsApi mcsApi; |
| | | |
| | | @Autowired |
| | | private MdkApi mdkApi; |
| | | |
| | | @Override |
| | | public void run(String params) { |
| | | logger.info("RunScheduleAirRatioTask,参数为:{}", params); |
| | | try { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | | calendar.set(Calendar.SECOND, 0); |
| | | Date scheduleTime = calendar.getTime(); |
| | | if (StringUtils.isEmpty(params)) { |
| | | logger.info("参数为空"); |
| | | return; |
| | | } |
| | | |
| | | // 根据条件查找方案 |
| | | List<StScheduleSchemeDTO> schemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.JOB.getCode(), params); |
| | | if (CollectionUtils.isEmpty(schemeList)) { |
| | | logger.info("方案为空"); |
| | | return; |
| | | } |
| | | for (StScheduleSchemeDTO scheme : schemeList) { |
| | | MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); |
| | | dto.setScheduleTime(scheduleTime); |
| | | dto.setScheduleCode(scheme.getCode()); |
| | | MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); |
| | | // 结果写入测点 |
| | | mdkApi.scheduleModelOut(mdkScheduleRespDTO); |
| | | } |
| | | logger.info(params + "调度方案执行完成"); |
| | | } catch (Exception ex) { |
| | | logger.error("RunScheduleAirRatioTask运行异常"); |
| | | ex.printStackTrace(); |
| | | } |
| | | logger.info("RunScheduleAirRatioTask运行完成"); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.shasteel.job.task; |
| | | |
| | | import com.iailab.module.model.api.mcs.McsApi; |
| | | import com.iailab.module.model.api.mcs.dto.StScheduleSchemeDTO; |
| | | 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 com.iailab.module.model.enums.ScheduleTriggerMethodEnum; |
| | | 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 org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 压空,计算机组比功率,计算结果写入测点 |
| | | * 定时触发,5 0/1 * * * ? |
| | | * |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2024年12月31日 |
| | | */ |
| | | @Component("runScheduleAirTask") |
| | | public class RunScheduleAirTask implements ITask { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | @Autowired |
| | | private McsApi mcsApi; |
| | | |
| | | @Autowired |
| | | private MdkApi mdkApi; |
| | | |
| | | @Override |
| | | public void run(String params) { |
| | | logger.info("RunScheduleAirTask,参数为:{}", params); |
| | | try { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | | calendar.set(Calendar.SECOND, 0); |
| | | Date scheduleTime = calendar.getTime(); |
| | | if (StringUtils.isEmpty(params)) { |
| | | logger.info("参数为空"); |
| | | return; |
| | | } |
| | | |
| | | // 根据条件查找方案 |
| | | List<StScheduleSchemeDTO> schemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.JOB.getCode(), params); |
| | | if (CollectionUtils.isEmpty(schemeList)) { |
| | | logger.info("方案为空"); |
| | | return; |
| | | } |
| | | for (StScheduleSchemeDTO scheme : schemeList) { |
| | | MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); |
| | | dto.setScheduleTime(scheduleTime); |
| | | dto.setScheduleCode(scheme.getCode()); |
| | | MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); |
| | | // 结果写入测点 |
| | | mdkApi.scheduleModelOut(mdkScheduleRespDTO); |
| | | } |
| | | logger.info(params + "调度方案执行完成"); |
| | | } catch (Exception ex) { |
| | | logger.error("RunScheduleAirTask运行异常"); |
| | | ex.printStackTrace(); |
| | | } |
| | | logger.info("RunScheduleAirTask运行完成"); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.shasteel.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.mcs.dto.StScheduleSchemeDTO; |
| | | 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 com.iailab.module.model.enums.CommonConstant; |
| | | import com.iailab.module.model.enums.ScheduleTriggerMethodEnum; |
| | | 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 org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 煤气调度 |
| | | * 高炉煤气调整量 adjustBFG |
| | | * 焦炉煤气调整量 adjustCOG |
| | | * 转炉煤气调整量 adjustLDG |
| | | * 高炉煤气调度建议 adviceBFG |
| | | * 焦炉煤气调度建议 adviceCOG |
| | | * 转炉煤气调度建议 adviceLDG |
| | | * 机组的煤气(折高)流量 gasConsumption |
| | | * 机组的负荷率 loadRates |
| | | * 机组的气耗 gasVolume |
| | | * |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2025年01月08日 |
| | | */ |
| | | @Component("runScheduleGasTask") |
| | | public class RunScheduleGasTask implements ITask { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | @Autowired |
| | | private McsApi mcsApi; |
| | | |
| | | @Autowired |
| | | private MdkApi mdkApi; |
| | | |
| | | @Override |
| | | public void run(String params) { |
| | | logger.info("RunScheduleGasTask,参数为:{}", params); |
| | | try { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | | calendar.set(Calendar.SECOND, 0); |
| | | Date scheduleTime = calendar.getTime(); |
| | | if (StringUtils.isEmpty(params)) { |
| | | logger.info("参数为空"); |
| | | return; |
| | | } |
| | | |
| | | // 根据条件查找方案 |
| | | List<StScheduleSchemeDTO> schemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.JOB.getCode(), params); |
| | | if (CollectionUtils.isEmpty(schemeList)) { |
| | | logger.info("方案为空"); |
| | | return; |
| | | } |
| | | StScheduleSchemeDTO scheme = schemeList.get(0); |
| | | MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); |
| | | dto.setScheduleTime(scheduleTime); |
| | | dto.setScheduleCode(scheme.getCode()); |
| | | MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); |
| | | if (!CommonConstant.MDK_STATUS_100.equals(mdkScheduleRespDTO.getStatusCode())) { |
| | | logger.info("调度结果异常,STATUS=" + mdkScheduleRespDTO.getStatusCode()); |
| | | return; |
| | | } |
| | | Object adviceBFG = mdkScheduleRespDTO.getResult().get("adviceBFG"); |
| | | saveScheduleSuggest("高炉煤气调度建议", adviceBFG, scheme.getScheduleObj(), scheduleTime); |
| | | Object adviceCOG = mdkScheduleRespDTO.getResult().get("adviceCOG"); |
| | | saveScheduleSuggest("焦炉煤气调度建议", adviceCOG, scheme.getScheduleObj(), scheduleTime); |
| | | Object adviceLDG = mdkScheduleRespDTO.getResult().get("adviceLDG"); |
| | | saveScheduleSuggest("转炉煤气调度建议", adviceLDG, scheme.getScheduleObj(), scheduleTime); |
| | | // 结果写入测点 |
| | | mdkApi.scheduleModelOut(mdkScheduleRespDTO); |
| | | logger.info(params + "调度方案执行完成"); |
| | | } catch (Exception ex) { |
| | | logger.error("RunScheduleGasTask运行异常"); |
| | | ex.printStackTrace(); |
| | | } |
| | | logger.info("RunScheduleGasTask运行完成"); |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.shasteel.job.task; |
| | | |
| | | import com.iailab.module.model.api.mcs.McsApi; |
| | | import com.iailab.module.model.api.mcs.dto.AlarmMessageRespDTO; |
| | | import com.iailab.module.model.api.mcs.dto.ScheduleSuggestRespDTO; |
| | | import com.iailab.module.model.api.mcs.dto.StScheduleSchemeDTO; |
| | | 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 com.iailab.module.model.enums.CommonConstant; |
| | | import com.iailab.module.model.enums.ScheduleTriggerMethodEnum; |
| | | 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 org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 06 |
| | | * 氧气班平衡计划 |
| | | * 法夜空建议送出量 faAdvice |
| | | * 盈德低压建议送出量 yingDiAdvice |
| | | * 盈德中压建议送出量 yingZhongAdvice |
| | | * 宏昌建议送出量 hongAdvice |
| | | * 润忠建议送出量 RunAdvice |
| | | * 调整值 adviceValues |
| | | * |
| | | * 05 |
| | | * 氧气系统优化调度决策 |
| | | * 盈德中压建议调整量 yingdiAdvice |
| | | * 法夜空建议调整量 faAdvice |
| | | * 宏昌建议调整量 hongAdvice |
| | | * 润忠建议调整量 RunAdvice |
| | | * |
| | | * 01 |
| | | * 氮气预警模型 |
| | | * 预警信号 advice |
| | | * |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2025年01月07日 |
| | | */ |
| | | @Component("runScheduleOnaOptTask") |
| | | public class RunScheduleOnaOptTask implements ITask { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | @Autowired |
| | | private McsApi mcsApi; |
| | | |
| | | @Autowired |
| | | private MdkApi mdkApi; |
| | | |
| | | private Map<String, StScheduleSchemeDTO> schemeMap = new HashMap<>(); |
| | | |
| | | private static final String CODE06 = "06"; |
| | | |
| | | private static final String CODE05 = "05"; |
| | | |
| | | private static final String CODE01 = "01"; |
| | | |
| | | @Override |
| | | public void run(String params) { |
| | | logger.info("RunScheduleOnaOptTask,参数为:{}", params); |
| | | try { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | | calendar.set(Calendar.SECOND, 0); |
| | | Date scheduleTime = calendar.getTime(); |
| | | if (StringUtils.isEmpty(params)) { |
| | | logger.info("参数为空"); |
| | | return; |
| | | } |
| | | |
| | | // 根据条件查找方案 |
| | | List<StScheduleSchemeDTO> schemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.JOB.getCode(), params); |
| | | if (CollectionUtils.isEmpty(schemeList)) { |
| | | logger.info("方案为空"); |
| | | return; |
| | | } |
| | | schemeMap.clear(); |
| | | Map<String, MdkScheduleRespDTO> resultMap = new HashMap<String, MdkScheduleRespDTO>(); |
| | | schemeList.forEach(item -> { |
| | | schemeMap.put(item.getCode(), item); |
| | | StScheduleSchemeDTO scheme = schemeList.get(0); |
| | | MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); |
| | | dto.setScheduleTime(scheduleTime); |
| | | dto.setScheduleCode(scheme.getCode()); |
| | | MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); |
| | | resultMap.put(item.getCode(), mdkScheduleRespDTO); |
| | | }); |
| | | if (CollectionUtils.isEmpty(resultMap)) { |
| | | logger.info("resultMap为空"); |
| | | return; |
| | | } |
| | | for (Map.Entry<String, MdkScheduleRespDTO> entry : resultMap.entrySet()) { |
| | | if (!CommonConstant.MDK_STATUS_100.equals(entry.getValue().getStatusCode())) { |
| | | logger.info("调度结果异常,STATUS=" + entry.getValue().getStatusCode()); |
| | | continue; |
| | | } |
| | | |
| | | if (entry.getKey().equals(CODE06)) { |
| | | // 氧气班平衡计划,建议值写入测点 |
| | | mdkApi.scheduleModelOut(entry.getValue()); |
| | | } else if (entry.getKey().equals(CODE05)) { |
| | | String scheduleObj = schemeMap.get(CODE05).getScheduleObj(); |
| | | // double[] adviceValues = (double[]) entry.getValue().getResult().get("adviceValues"); |
| | | String yingdiAdvice = entry.getValue().getResult().get("yingdiAdvice").toString(); |
| | | saveScheduleSuggest("盈德中压建议调整量", yingdiAdvice, scheduleObj, scheduleTime); |
| | | String faAdvice = entry.getValue().getResult().get("faAdvice").toString(); |
| | | saveScheduleSuggest("法夜空建议调整量", faAdvice, scheduleObj, scheduleTime); |
| | | String hongAdvice = entry.getValue().getResult().get("hongAdvice").toString(); |
| | | saveScheduleSuggest("宏昌建议调整量", hongAdvice, scheduleObj, scheduleTime); |
| | | String runAdvice = entry.getValue().getResult().get("RunAdvice").toString(); |
| | | saveScheduleSuggest("宏昌建议调整量", runAdvice, scheduleObj, scheduleTime); |
| | | } else if (entry.getKey().equals(CODE01)) { |
| | | String scheduleObj = schemeMap.get(CODE01).getScheduleObj(); |
| | | String advice = entry.getValue().getResult().get("advice").toString(); |
| | | saveScheduleSuggest("氮气预警", advice, scheduleObj, scheduleTime); |
| | | } |
| | | } |
| | | logger.info(params + "调度方案执行完成"); |
| | | } catch (Exception ex) { |
| | | logger.error("RunScheduleOnaOptTask运行异常"); |
| | | ex.printStackTrace(); |
| | | } |
| | | logger.info("RunScheduleOnaOptTask运行完成"); |
| | | } |
| | | |
| | | private void saveScheduleSuggest(String title, String content, String scheduleObj, Date scheduleTime) { |
| | | if (StringUtils.isBlank(content)) { |
| | | return; |
| | | } |
| | | ScheduleSuggestRespDTO suggest = new ScheduleSuggestRespDTO(); |
| | | suggest.setTitle(title); |
| | | suggest.setContent(content); |
| | | suggest.setScheduleObj(scheduleObj); |
| | | suggest.setScheduleTime(scheduleTime); |
| | | suggest.setSort(0); |
| | | mcsApi.createScheduleSuggest(suggest); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.shasteel.job.task; |
| | | |
| | | import com.iailab.module.model.api.mcs.McsApi; |
| | | import com.iailab.module.model.api.mcs.dto.AlarmMessageRespDTO; |
| | | import com.iailab.module.model.api.mcs.dto.ScheduleSuggestRespDTO; |
| | | import com.iailab.module.model.api.mcs.dto.StScheduleSchemeDTO; |
| | | 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 com.iailab.module.model.enums.CommonConstant; |
| | | import com.iailab.module.model.enums.ScheduleTriggerMethodEnum; |
| | | 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 org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 蒸汽调度 |
| | | * |
| | | * 参考点压力信号 pressure_flag |
| | | * 锦丰调度建议 jinfengAdvice |
| | | * 大新调度建议 daxinAdvice |
| | | * 大新预警 daxinWarning |
| | | * 锦丰预警 jinfengWarning |
| | | * 转炉一预警 zhuanlu1Warning |
| | | * 转炉二预警 zhuanlu2Warning |
| | | * |
| | | * @author PanZhibao |
| | | * @Description |
| | | * @createTime 2025年01月08日 |
| | | */ |
| | | @Component("runScheduleSteamTask") |
| | | public class RunScheduleSteamTask implements ITask { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | @Autowired |
| | | private McsApi mcsApi; |
| | | |
| | | @Autowired |
| | | private MdkApi mdkApi; |
| | | |
| | | @Override |
| | | public void run(String params) { |
| | | logger.info("RunScheduleSteamTask,参数为:{}", params); |
| | | try { |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | | calendar.set(Calendar.SECOND, 0); |
| | | Date scheduleTime = calendar.getTime(); |
| | | if (StringUtils.isEmpty(params)) { |
| | | logger.info("参数为空"); |
| | | return; |
| | | } |
| | | |
| | | // 根据条件查找方案 |
| | | List<StScheduleSchemeDTO> schemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.JOB.getCode(), params); |
| | | if (CollectionUtils.isEmpty(schemeList)) { |
| | | logger.info("方案为空"); |
| | | return; |
| | | } |
| | | StScheduleSchemeDTO scheme = schemeList.get(0); |
| | | MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); |
| | | dto.setScheduleTime(scheduleTime); |
| | | dto.setScheduleCode(scheme.getCode()); |
| | | MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); |
| | | if (!CommonConstant.MDK_STATUS_100.equals(mdkScheduleRespDTO.getStatusCode())) { |
| | | logger.info("调度结果异常,STATUS=" + mdkScheduleRespDTO.getStatusCode()); |
| | | return; |
| | | } |
| | | |
| | | Object jinfengAdvice = mdkScheduleRespDTO.getResult().get("jinfengAdvice"); |
| | | saveScheduleSuggest("锦丰调度建议", jinfengAdvice, scheme.getScheduleObj(), scheduleTime); |
| | | |
| | | Object daxinAdvice = mdkScheduleRespDTO.getResult().get("daxinAdvice"); |
| | | saveScheduleSuggest("大新调度建议", daxinAdvice, scheme.getScheduleObj(), scheduleTime); |
| | | |
| | | Object daxinWarning = mdkScheduleRespDTO.getResult().get("daxinWarning"); |
| | | saveAlarmMessage("大新预警", daxinWarning, scheme.getScheduleObj(), scheduleTime); |
| | | |
| | | Object jinfengWarning = mdkScheduleRespDTO.getResult().get("jinfengWarning"); |
| | | saveAlarmMessage("锦丰预警", jinfengWarning, scheme.getScheduleObj(), scheduleTime); |
| | | |
| | | Object zhuanlu1Warning = mdkScheduleRespDTO.getResult().get("zhuanlu1Warning"); |
| | | saveAlarmMessage("转炉一预警", zhuanlu1Warning, scheme.getScheduleObj(), scheduleTime); |
| | | |
| | | Object zhuanlu2Warning = mdkScheduleRespDTO.getResult().get("zhuanlu2Warning"); |
| | | saveAlarmMessage("转炉二预警", zhuanlu2Warning, scheme.getScheduleObj(), scheduleTime); |
| | | |
| | | logger.info(params + "调度方案执行完成"); |
| | | } catch (Exception ex) { |
| | | logger.error("RunScheduleSteamTask运行异常"); |
| | | ex.printStackTrace(); |
| | | } |
| | | logger.info("RunScheduleSteamTask运行完成"); |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | |
| | | private void saveAlarmMessage(String title, Object content, String alarmObj, Date scheduleTime) { |
| | | if (content == null || StringUtils.isBlank(content.toString()) || "0".equals(content.toString())) { |
| | | logger.info(title + "content为空"); |
| | | return; |
| | | } |
| | | AlarmMessageRespDTO alarm = new AlarmMessageRespDTO(); |
| | | alarm.setTitle(title); |
| | | alarm.setContent(content.toString()); |
| | | alarm.setAlarmObj(alarmObj); |
| | | alarm.setAlarmType(""); |
| | | alarm.setAlarmTime(scheduleTime); |
| | | mcsApi.createAlarmMessage(alarm); |
| | | } |
| | | } |
| | |
| | | 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 com.iailab.module.model.enums.ScheduleTriggerMethodEnum; |
| | | import com.iailab.module.shasteel.mq.common.constant.CommonConstant; |
| | | import com.iailab.module.shasteel.mq.common.enums.TriggerConditionEnum; |
| | | import com.iailab.module.shasteel.mq.config.QueueModelAlarmConfig; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.amqp.core.Message; |
| | |
| | | return; |
| | | } |
| | | // 查找需要执行的调度方案 |
| | | Map<String, Object> params = new HashMap<>(); |
| | | params.put("trigger_method", TriggerConditionEnum.EVENT); |
| | | params.put("trigger_condition", routingKey); |
| | | List<StScheduleSchemeDTO> scheduleSchemeList = mcsApi.listScheduleScheme(params);//根据触发条件获取调度方案列表 |
| | | List<StScheduleSchemeDTO> scheduleSchemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.EVENT.getCode(), routingKey); |
| | | for(StScheduleSchemeDTO stScheduleSchemeDTO : scheduleSchemeList){ |
| | | MdkScheduleReqDTO mdkScheduleReqDTO = new MdkScheduleReqDTO(); |
| | | mdkScheduleReqDTO.setScheduleCode(stScheduleSchemeDTO.getCode()); |
| | |
| | | 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 com.iailab.module.model.enums.ScheduleTriggerMethodEnum; |
| | | import com.iailab.module.shasteel.mq.common.constant.CommonConstant; |
| | | import com.iailab.module.shasteel.mq.common.enums.TriggerConditionEnum; |
| | | import com.iailab.module.shasteel.mq.config.QueueModelAlarmConfig; |
| | | import com.iailab.module.shasteel.mq.config.QueuePredictFinishConfig; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.amqp.core.Message; |
| | |
| | | return; |
| | | } |
| | | // 查找需要执行的调度方案 |
| | | Map<String, Object> params = new HashMap<>(); |
| | | params.put("trigger_method", TriggerConditionEnum.EVENT); |
| | | params.put("trigger_condition", routingKey); |
| | | List<StScheduleSchemeDTO> scheduleSchemeList = mcsApi.listScheduleScheme(params);//根据触发条件获取调度方案列表 |
| | | List<StScheduleSchemeDTO> scheduleSchemeList = mcsApi.listScheduleScheme(ScheduleTriggerMethodEnum.EVENT.getCode(), routingKey); |
| | | for(StScheduleSchemeDTO stScheduleSchemeDTO : scheduleSchemeList){ |
| | | MdkScheduleReqDTO mdkScheduleReqDTO = new MdkScheduleReqDTO(); |
| | | mdkScheduleReqDTO.setScheduleCode(stScheduleSchemeDTO.getCode()); |
| | |
| | | if (CollectionUtils.isEmpty(configList)) { |
| | | return; |
| | | } |
| | | List<String> OutputIdList = new ArrayList<>(); |
| | | List<String> outputIdList = new ArrayList<>(); |
| | | configList.forEach(item -> { |
| | | OutputIdList.add(item.getOutId()); |
| | | outputIdList.add(item.getOutId()); |
| | | }); |
| | | configList.forEach(item -> { |
| | | PreDataJsonReqVO reqVO = new PreDataJsonReqVO(); |
| | | reqVO.setPredictTime(DateUtils.parse(messageJson.get("predictTime").toString(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)); |
| | | reqVO.setOutputIdList(OutputIdList); |
| | | reqVO.setOutputIdList(outputIdList); |
| | | Map<String, List<Object[]>> preData = mcsApi.getPreDataCur(reqVO); |
| | | if (CollectionUtils.isEmpty(preData)) { |
| | | return; |
| | |
| | | --- #################### 数据库相关配置 #################### |
| | | spring: |
| | | datasource: |
| | | druid: # Druid 【监控】相关的全局配置 |
| | | druid: |
| | | web-stat-filter: |
| | | enabled: true |
| | | stat-view-servlet: |
| | | enabled: true |
| | | allow: # 设置白名单,不填则允许所有访问 |
| | | allow: |
| | | url-pattern: /druid/* |
| | | login-username: # 控制台管理用户名和密码 |
| | | login-username: |
| | | login-password: |
| | | filter: |
| | | stat: |
| | | enabled: true |
| | | log-slow-sql: true # 慢 SQL 记录 |
| | | log-slow-sql: true |
| | | slow-sql-millis: 100 |
| | | merge-sql: true |
| | | wall: |
| | | config: |
| | | multi-statement-allow: true |
| | | dynamic: # 多数据源配置 |
| | | druid: # Druid 【连接池】相关的全局配置 |
| | | initial-size: 1 # 初始连接数 |
| | | min-idle: 1 # 最小连接池数量 |
| | | max-active: 20 # 最大连接池数量 |
| | | max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒 |
| | | time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒 |
| | | min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒 |
| | | max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒 |
| | | validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效 |
| | | dynamic: |
| | | druid: |
| | | initial-size: 1 |
| | | min-idle: 1 |
| | | max-active: 20 |
| | | max-wait: 600000 |
| | | time-between-eviction-runs-millis: 60000 |
| | | min-evictable-idle-time-millis: 300000 |
| | | max-evictable-idle-time-millis: 900000 |
| | | validation-query: SELECT 1 FROM DUAL |
| | | test-while-idle: true |
| | | test-on-borrow: false |
| | | test-on-return: false |
| | |
| | | username: root |
| | | password: Iailab@2019 |
| | | |
| | | # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 |
| | | redis: |
| | | host: 127.0.0.1 # 地址 |
| | | port: 6379 # 端口 |
| | | database: 8 # 数据库索引 |
| | | password: 123456 # 密码,建议生产环境开启 |
| | | host: 127.0.0.1 |
| | | port: 6379 |
| | | database: 8 |
| | | password: 123456 |
| | | |
| | | --- #################### 平台相关配置 #################### |
| | | |
| | | # 平台配置项,设置当前项目所有自定义的配置 |
| | | iailab: |
| | | env: # 多环境的配置项 |
| | | env: |
| | | tag: ${HOSTNAME} |
| | | captcha: |
| | | enable: false # 本地环境,暂时关闭图片验证码,方便登录等接口的测试 |
| | | enable: false |
| | | security: |
| | | mock-enable: true |
| | | access-log: # 访问日志的配置项 |
| | | access-log: |
| | | enable: false |
| | | |
| | | sms-code: # 短信验证码相关的配置项 |
| | | sms-code: |
| | | expire-times: 10m |
| | | send-frequency: 1m |
| | | send-maximum-quantity-per-day: 10 |
| | | begin-code: 9999 # 这里配置 9999 的原因是,测试方便。 |
| | | end-code: 9999 # 这里配置 9999 的原因是,测试方便。 |
| | | begin-code: 9999 |
| | | end-code: 9999 |
| | | token: |
| | | base-url: http://127.0.0.1:48080/admin-api/system |
| | | tenant-id: 172 |
| | |
| | | |
| | | cloud: |
| | | nacos: |
| | | server-addr: localhost:8848 # Nacos 服务器地址 |
| | | server-addr: localhost:8848 |
| | | username: nacos |
| | | password: nacos |
| | | discovery: # 【配置中心】配置项 |
| | | discovery: |
| | | namespace: ${spring.profiles.active} |
| | | group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP |
| | | group: DEFAULT_GROUP |
| | | metadata: |
| | | version: 1.0.0 # 服务实例的版本号,可用于灰度发布 |
| | | config: # 【注册中心】配置项 |
| | | version: 1.0.0 |
| | | config: |
| | | namespace: ${spring.profiles.active} |
| | | group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP |
| | | group: DEFAULT_GROUP |
| | | |
| | | main: |
| | | allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。 |
| | | allow-bean-definition-overriding: true # 允许 Bean 覆盖,例如说 Feign 等会存在重复定义的服务 |
| | | allow-circular-references: true |
| | | allow-bean-definition-overriding: true |
| | | |
| | | config: |
| | | import: |
| | | - optional:classpath:application-${spring.profiles.active}.yaml # 加载【本地】配置 |
| | | - optional:nacos:${spring.application.name}-${spring.profiles.active}.yaml # 加载【Nacos】的配置 |
| | | - optional:classpath:application-${spring.profiles.active}.yaml |
| | | - optional:nacos:${spring.application.name}-${spring.profiles.active}.yaml |
| | | |
| | | # Servlet 配置 |
| | | servlet: |
| | | # 文件上传相关配置项 |
| | | multipart: |
| | | max-file-size: 16MB # 单个文件大小 |
| | | max-request-size: 32MB # 设置总上传的文件大小 |
| | | max-file-size: 16MB |
| | | max-request-size: 32MB |
| | | mvc: |
| | | pathmatch: |
| | | matching-strategy: ANT_PATH_MATCHER # 解决 SpringFox 与 SpringBoot 2.6.x 不兼容的问题,参见 SpringFoxHandlerProviderBeanPostProcessor 类 |
| | | matching-strategy: ANT_PATH_MATCHER |
| | | |
| | | # Jackson 配置项 |
| | | jackson: |