yangys
2024-09-27 26f8e5990686bdba2119024a260d986266506757
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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 "0000";
    }
}