Merge remote-tracking branch 'origin/master'
| | |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.ArrayList; |
| | |
| | | "空压机预警", |
| | | "大新预警", |
| | | "法液空合同执行度", |
| | | "盈德合同执行度" |
| | | "盈德合同执行度", |
| | | "BFG应急预案" |
| | | ) |
| | | ); |
| | | |
| | |
| | | "空压机跳机", |
| | | "大新浦项蒸汽压力", |
| | | "法液空运行优化指标", |
| | | "盈德运行优化指标" |
| | | "盈德运行优化指标", |
| | | "应急方案" |
| | | ) |
| | | ); |
| | | @GetMapping("/alarm-suggest/page") |
| | | @PostMapping("/alarm-suggest/page") |
| | | @Operation(summary = "预警与建议信息") |
| | | public CommonResult<PageResult<StAlarmAndSuggestRespVO>> queryAlarmAndSuggestPage(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize) { |
| | | StAlarmAndSuggestPageReqVO reqVO = new StAlarmAndSuggestPageReqVO(); |
| | | reqVO.setPageNo(pageNo); |
| | | reqVO.setPageSize(pageSize); |
| | | public CommonResult<PageResult<StAlarmAndSuggestRespVO>> queryAlarmAndSuggestPage(@RequestBody StAlarmAndSuggestPageReqVO reqVO) { |
| | | reqVO.setTitle(titleList); |
| | | reqVO.setContentKey(contentKeyList); |
| | | PageResult<StAlarmAndSuggestRespVO> page = mcsApi.getAlarmAndSuggestPage(reqVO); |
对比新文件 |
| | |
| | | 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.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.math.BigDecimal; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * 电力负荷率预警信息 |
| | | * |
| | | * @author Jay |
| | | */ |
| | | @Component("runScheduleElectricityTask") |
| | | public class RunScheduleElectricityTask implements ITask { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | @Autowired |
| | | private McsApi mcsApi; |
| | | |
| | | @Autowired |
| | | private MdkApi mdkApi; |
| | | |
| | | /** |
| | | * 调度调整方向 |
| | | */ |
| | | private static Map<String, Integer> electricityAdjustFlag = new HashMap<>(); |
| | | |
| | | /** |
| | | * 调度建议时间 |
| | | */ |
| | | private static Map<String, Date> electricityLastAlarmTime = new HashMap<>(); |
| | | |
| | | @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; |
| | | } |
| | | |
| | | StScheduleSchemeDTO scheme = schemeList.get(0); |
| | | MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); |
| | | dto.setScheduleTime(scheduleTime); |
| | | dto.setScheduleCode(scheme.getCode()); |
| | | MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); |
| | | Map<String, Object> result = mdkScheduleRespDTO.getResult(); |
| | | saveAlarmMessage("东区变1#主变预警", result.get("periods_dq_one"), "DQ1", scheduleTime, result.get("adviceValues_dq_one"), scheme.getWarningAdjustRate()); |
| | | saveAlarmMessage("东区变2#主变预警", result.get("periods_dq_two"), "DQ2", scheduleTime, result.get("adviceValues_dq_two"), scheme.getWarningAdjustRate()); |
| | | saveAlarmMessage("东区变3#主变预警", result.get("periods_dq_three"), "DQ3", scheduleTime, result.get("adviceValues_dq_three"), scheme.getWarningAdjustRate()); |
| | | saveAlarmMessage("海力变1#主变预警", result.get("periods_hl_one"), "HL1", scheduleTime, result.get("adviceValues_hl_one"), scheme.getWarningAdjustRate()); |
| | | saveAlarmMessage("海力变2#主变预警", result.get("periods_hl_two"), "HL2", scheduleTime, result.get("adviceValues_hl_two"), scheme.getWarningAdjustRate()); |
| | | saveAlarmMessage("海力变3#主变预警", result.get("periods_hl_three"), "HL3", scheduleTime, result.get("adviceValues_hl_three"), scheme.getWarningAdjustRate()); |
| | | saveAlarmMessage("冷轧变1#主变预警", result.get("periods_lz_one"), "LZ1", scheduleTime, result.get("adviceValues_lz_one"), scheme.getWarningAdjustRate()); |
| | | saveAlarmMessage("冷轧变2#主变预警", result.get("periods_lz_two"), "LZ2", scheduleTime, result.get("adviceValues_lz_two"), scheme.getWarningAdjustRate()); |
| | | saveAlarmMessage("冷轧变3#主变预警", result.get("periods_lz_three"), "LZ3", scheduleTime, result.get("adviceValues_lz_three"), scheme.getWarningAdjustRate()); |
| | | saveAlarmMessage("冷轧变4#主变预警", result.get("periods_lz_four"), "LZ4", scheduleTime, result.get("adviceValues_lz_four"), scheme.getWarningAdjustRate()); |
| | | saveAlarmMessage("乐杨变1#主变预警", result.get("periods_ly_one"), "LY1", scheduleTime, result.get("adviceValues_ly_one"), scheme.getWarningAdjustRate()); |
| | | saveAlarmMessage("乐杨变2#主变预警", result.get("periods_ly_two"), "LY2", scheduleTime, result.get("adviceValues_ly_two"), scheme.getWarningAdjustRate()); |
| | | saveAlarmMessage("乐杨变3#主变预警", result.get("periods_ly_three"), "LY3", scheduleTime, result.get("adviceValues_ly_three"), scheme.getWarningAdjustRate()); |
| | | saveAlarmMessage("乐杨变4#主变预警", result.get("periods_ly_four"), "LY4", scheduleTime, result.get("adviceValues_ly_four"), scheme.getWarningAdjustRate()); |
| | | |
| | | logger.info(params + "调度方案执行完成"); |
| | | } catch (Exception ex) { |
| | | logger.error("RunScheduleAirRatioTask运行异常"); |
| | | ex.printStackTrace(); |
| | | } |
| | | logger.info("RunScheduleAirRatioTask运行完成"); |
| | | } |
| | | |
| | | private void saveAlarmMessage(String title, Object content, String scheduleObj, Date scheduleTime, Object adjustObj, int warningAdjustRate) { |
| | | if (content == null) { |
| | | logger.info(title + "预警信息为空,不产生预警"); |
| | | return; |
| | | } |
| | | String contentStr = content.toString(); |
| | | if (StringUtils.isBlank(contentStr)) { |
| | | logger.info(title + "预警信息为空,不产生预警"); |
| | | return; |
| | | } |
| | | if ((adjustObj == null || StringUtils.isBlank(adjustObj.toString()) || "0".equals(adjustObj.toString()))) { |
| | | logger.info(title + "调整值为空,不产生建议"); |
| | | return; |
| | | } |
| | | BigDecimal adjustValue = new BigDecimal(adjustObj.toString()); |
| | | if (electricityAdjustFlag.containsKey(scheduleObj) && electricityAdjustFlag.get(scheduleObj).equals(adjustValue.compareTo(BigDecimal.ZERO)) && |
| | | electricityLastAlarmTime.containsKey(scheduleObj) && (scheduleTime.getTime() - electricityLastAlarmTime.get(scheduleObj).getTime() <= Integer.valueOf(warningAdjustRate).longValue() * 60 * 1000)) { |
| | | logger.info(title + "预警在有效期内"); |
| | | return; |
| | | } |
| | | electricityAdjustFlag.put(scheduleObj, adjustValue.compareTo(BigDecimal.ZERO)); |
| | | electricityLastAlarmTime.put(scheduleObj, scheduleTime); |
| | | AlarmMessageRespDTO alarm = new AlarmMessageRespDTO(); |
| | | alarm.setTitle(title); |
| | | alarm.setContent(contentStr); |
| | | alarm.setAlarmObj(scheduleObj); |
| | | alarm.setAlarmType(""); |
| | | alarm.setAlarmTime(scheduleTime); |
| | | mcsApi.createAlarmMessage(alarm); |
| | | } |
| | | } |
| | |
| | | saveScheduleSuggest("转炉特钢煤气柜", result.get("adviceLDG12WT"), "LDGt", predictTime, result.get("adjustValueLDG12WT"), scheme.getAdjustRate(), scheme.getModelId(), scheme.getId()); |
| | | |
| | | saveScheduleSuggest("高炉煤气预警", result.get("BFG_warning_advice"), "BFG_ALARM", predictTime, result.get("adjustValueBFG"), scheme.getAdjustRate(), scheme.getModelId(), scheme.getId()); |
| | | saveScheduleSuggest("高炉煤气放散预警", result.get("BFG_release_warning_advice"), "BFG_ALARM", predictTime, result.get("BEG_pressure_sign"), scheme.getAdjustRate(), scheme.getModelId(), scheme.getId()); |
| | | saveScheduleSuggest("高炉煤气预测放散预警", result.get("BFG_Predictive_release_warning_advice"), "BFG_ALARM", predictTime, result.get("BEG_pressure_sign"), scheme.getAdjustRate(), scheme.getModelId(), scheme.getId()); |
| | | saveScheduleSuggest("高炉煤气流量预警", result.get("BFG_flow_warning"), "BFG_ALARM", predictTime, result.get("BEG_pressure_sign"), scheme.getAdjustRate(), scheme.getModelId(), scheme.getId()); |
| | | saveScheduleSuggest("高炉煤气放散预警", result.get("BFG_release_warning_advice"), "BFG_ALARM", predictTime, result.get("BFG_pressure_sign"), scheme.getAdjustRate(), scheme.getModelId(), scheme.getId()); |
| | | saveScheduleSuggest("高炉煤气预测放散预警", result.get("BFG_Predictive_release_warning_advice"), "BFG_ALARM", predictTime, result.get("BFG_pressure_sign"), scheme.getAdjustRate(), scheme.getModelId(), scheme.getId()); |
| | | saveScheduleSuggest("高炉煤气流量预警", result.get("BFG_flow_warning"), "BFG_FLOW_WARNING_ALARM", predictTime, 1, scheme.getAdjustRate(), scheme.getModelId(), scheme.getId()); |
| | | saveScheduleSuggest("焦炉煤气预警", result.get("COG_warning_advice"), "COG_ALARM", predictTime, result.get("adjustValueCOG"), scheme.getAdjustRate(), scheme.getModelId(), scheme.getId()); |
| | | saveScheduleSuggest("焦炉煤气流量预警", result.get("COG_flow_warning"), "COG_ALARM", predictTime, result.get("adjustValueCOG"), scheme.getAdjustRate(), scheme.getModelId(), scheme.getId()); |
| | | saveScheduleSuggest("转炉5W+8W煤气柜预警", result.get("LDG_1_warning_advice"), "LDG1_ALARM", predictTime, result.get("adjustValueLDG13W"), scheme.getAdjustRate(), scheme.getModelId(), scheme.getId()); |
| | | saveScheduleSuggest("宏发12W煤气柜预警", result.get("LDG_2_warning_advice"), "LDG2_ALARM", predictTime, result.get("adjustValueLDG12W"), scheme.getAdjustRate(), scheme.getModelId(), scheme.getId()); |
| | | saveScheduleSuggest("转炉特钢12W煤气柜预警", result.get("LDG_3_warning_advice"), "LDGt_ALARM", predictTime, result.get("adjustValueLDG12WT"), scheme.getAdjustRate(), scheme.getModelId(), scheme.getId()); |
| | | saveScheduleSuggest("BFG应急预案", result.get("BFG_Emergency_plan"), "BFG_EMERGENCY_PLAN", predictTime, 1, scheme.getAdjustRate(), scheme.getModelId(), scheme.getId()); |
| | | |
| | | // BFG应急预案 |
| | | if(!Objects.equals(result.get("BFG_Emergency_plan").toString(), "")){ |