| | |
| | | package com.qianwen.mdc.collect.handler; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.qianwen.mdc.collect.dto.PackedTelemetryData; |
| | | import com.qianwen.mdc.collect.entity.iotdb.Alarm; |
| | | import com.qianwen.mdc.collect.service.AlarmService; |
| | |
| | | @Override |
| | | public void handleData(PackedTelemetryData data) { |
| | | |
| | | Alarm alarm = new Alarm();//Objects.requireNonNull(BeanUtil.copy(data, Alarm.class)); |
| | | alarm.setTime(data.getTime()); |
| | | alarm.setWorkstationId(data.getWorkstationId()); |
| | | alarm.setCalendarCode(data.getCalendarCode()); |
| | | alarm.setFactoryDate(data.getFactoryDate()); |
| | | alarm.setFactoryMonth(data.getFactoryMonth()); |
| | | alarm.setFactoryWeek(data.getFactoryWeek()); |
| | | alarm.setFactoryYear(data.getFactoryYear()); |
| | | alarm.setShiftIndex(data.getShiftIndex()); |
| | | alarm.setShiftTimeType(data.getShiftTimeType()); |
| | | fileAlarmDetail(alarm,data); |
| | | alarmService.saveAlarms(Arrays.asList(alarm)); |
| | | alarmService.saveAlarms(parseAlarm(data)); |
| | | |
| | | log.info("报警数据处理完成:告警数据{} ",alarm); |
| | | log.info("报警数据处理完成:告警数据{} ",data); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 填充告警的详细信息,级别,信息,代码 |
| | | * @param alarm |
| | | */ |
| | | void fileAlarmDetail(Alarm alarm,PackedTelemetryData data){ |
| | | alarm.setCode(this.parseCode(data.getValue())); |
| | | alarm.setMessage(data.getValue()); |
| | | List<Alarm> parseAlarm(PackedTelemetryData data){ |
| | | List<Alarm> alarmList = new ArrayList<>(); |
| | | //828d json数组格式[{"alarmNo":"8084"}] |
| | | JSONArray alarmArr = JSONArray.parseArray(data.getValue()); |
| | | |
| | | for(int i=0;i<alarmArr.size();i++) { |
| | | Alarm alarm = new Alarm(); |
| | | alarm.setTime(data.getTime()); |
| | | alarm.setWorkstationId(data.getWorkstationId()); |
| | | alarm.setCalendarCode(data.getCalendarCode()); |
| | | alarm.setFactoryDate(data.getFactoryDate()); |
| | | alarm.setFactoryMonth(data.getFactoryMonth()); |
| | | alarm.setFactoryWeek(data.getFactoryWeek()); |
| | | alarm.setFactoryYear(data.getFactoryYear()); |
| | | alarm.setShiftIndex(data.getShiftIndex()); |
| | | alarm.setShiftTimeType(data.getShiftTimeType()); |
| | | |
| | | JSONObject alarmJson = alarmArr.getJSONObject(i); |
| | | alarm.setCode(alarmJson.getString("alarmNo")); |
| | | |
| | | alarm.setMessage("");//暂时没有,需要反查 |
| | | |
| | | alarmList.add(alarm); |
| | | } |
| | | return alarmList; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 解析报警代码 |
| | | * @param collectText |
| | | * @return |
| | | */ |
| | | String parseCode(String collectText) { |
| | | return "0000"; |
| | | } |
| | | } |