| | |
| | | package com.iailab.module.ansteel.job.task; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.iailab.module.ansteel.common.constant.CommonConstant; |
| | | import com.iailab.module.model.api.mcs.McsApi; |
| | | import com.iailab.module.model.api.mcs.dto.AlarmMessageRespDTO; |
| | | 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 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.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author lirm |
| | |
| | | public class RunPowerFactorAlarmTask implements ITask { |
| | | private Logger logger = LoggerFactory.getLogger(getClass()); |
| | | |
| | | private final String ALARM_OBJ = "AnSteelPowerFactorAlarm"; |
| | | private final static String ALARM_OBJ = "AnSteelPowerFactorAlarm"; |
| | | |
| | | private final static String substation = "substation"; |
| | | |
| | | @Autowired |
| | | private McsApi mcsApi; |
| | | |
| | | @Autowired |
| | | private MdkApi mdkApi; |
| | | |
| | | @Override |
| | | public void run(String params) { |
| | |
| | | calendar.set(Calendar.SECOND, 0); |
| | | calendar.set(Calendar.MINUTE, 0); |
| | | |
| | | AlarmMessageRespDTO alarmMessageRespDTO = new AlarmMessageRespDTO(); |
| | | alarmMessageRespDTO.setContent(""); |
| | | alarmMessageRespDTO.setTitle(""); |
| | | alarmMessageRespDTO.setAlarmObj(ALARM_OBJ); |
| | | alarmMessageRespDTO.setAlarmTime(calendar.getTime()); |
| | | alarmMessageRespDTO.setCreateTime(calendar.getTime()); |
| | | MdkScheduleReqDTO dto = new MdkScheduleReqDTO(); |
| | | dto.setScheduleTime(calendar.getTime()); |
| | | dto.setScheduleCode(ALARM_OBJ); |
| | | MdkScheduleRespDTO mdkScheduleRespDTO = mdkApi.doSchedule(dto); |
| | | logger.info(params + "调度方案执行完成," + mdkScheduleRespDTO); |
| | | if(!CommonConstant.MDK_STATUS_100.equals(mdkScheduleRespDTO.getStatusCode())){ |
| | | logger.info(params + "运行异常"); |
| | | return; |
| | | } |
| | | JSONObject result = new JSONObject(mdkScheduleRespDTO.getResult()); |
| | | List<String> rowKeys = new ArrayList<>(); |
| | | result.forEach((key, value) -> { |
| | | if (StringUtils.isNotBlank(key) && key.contains(substation)) { |
| | | rowKeys.add(key); |
| | | } |
| | | |
| | | mcsApi.createAlarmMessage(alarmMessageRespDTO); |
| | | }); |
| | | for (String key : rowKeys) { |
| | | Map<String,Object> substationMap = BeanUtil.beanToMap(result.get(key)); |
| | | if (CollectionUtils.isEmpty(substationMap)) { |
| | | continue; |
| | | } |
| | | String content = ""; |
| | | JSONArray jsonArr = JSON.parseArray(substationMap.get("reason").toString()); |
| | | for(int i=0; i<jsonArr.size(); i++){ |
| | | Object element = jsonArr.get(i); |
| | | content = content + JSON.toJSONString(element) + ";"; |
| | | } |
| | | |
| | | AlarmMessageRespDTO alarmMessageRespDTO = new AlarmMessageRespDTO(); |
| | | alarmMessageRespDTO.setTitle(substationMap.get("66kVOverLimit").toString()); |
| | | alarmMessageRespDTO.setContent(content); |
| | | alarmMessageRespDTO.setAlarmObj(ALARM_OBJ); |
| | | alarmMessageRespDTO.setAlarmTime(mdkScheduleRespDTO.getScheduleTime()); |
| | | alarmMessageRespDTO.setCreateTime(calendar.getTime()); |
| | | |
| | | mcsApi.createAlarmMessage(alarmMessageRespDTO); |
| | | } |
| | | |
| | | } catch (Exception ex) { |
| | | logger.error("RunPowerFactorAlarmTask运行异常"); |
| | | ex.printStackTrace(); |