package com.qianwen.mdc.collect.handler; import java.util.Arrays; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.qianwen.mdc.collect.dto.PackedTelemetryData; import com.qianwen.mdc.collect.entity.iotdb.Alarm; import com.qianwen.mdc.collect.service.AlarmService; @Component public class AlarmDataHandler implements TelemetryDataHandler { private static final Logger log = LoggerFactory.getLogger(AlarmDataHandler.class); @Autowired private AlarmService 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)); log.info("报警数据处理完成:告警数据{} ",alarm); } /** * 填充告警的详细信息,级别,信息,代码 * @param alarm */ void fileAlarmDetail(Alarm alarm,PackedTelemetryData data){ alarm.setCode(this.parseCode(data.getValue())); alarm.setMessage(data.getValue()); } /** * 解析报警代码 * @param collectText * @return */ String parseCode(String collectText) { return "00"; } }