yangys
2025-04-10 5367cf982379f91f81a9b8328f07714dbbf3045c
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
59
60
61
62
63
64
65
66
67
package com.qianwen.mdc.collect.handler;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
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;
 
import cn.hutool.core.util.ObjectUtil;
 
@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) {
        
        alarmService.saveAlarms(parseAlarm(data));
        
        log.info("报警数据处理完成:告警数据{} ",data);
        
    }
    
    List<Alarm> parseAlarm(PackedTelemetryData data){
        if(ObjectUtil.isEmpty(data.getValue())) {
            return Collections.emptyList();
        }
        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;
    }
    
    
}