AlarmCenter.java 1.67 KB
package com.bsth.data.alarm;

import com.bsth.message.entity.AlarmADASVo;
import com.bsth.message.entity.AlarmDSMVo;
import com.bsth.message.entity.AlarmVo;
import com.bsth.websocket.handler.SendUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

import java.util.HashSet;
import java.util.Set;

@Component
public class AlarmCenter implements ApplicationContextAware {

    private static Set<AlarmDSMVo> dsmVoSet = new HashSet<>();

    private static Set<AlarmADASVo> adasVoSet = new HashSet<>();

    private static SendUtils sendUtils;

    private static Logger logger = LoggerFactory.getLogger(AlarmCenter.class);

    public static void put(AlarmVo alarmVo){
        if (alarmVo instanceof AlarmDSMVo) {
            dsmVoSet.add((AlarmDSMVo) alarmVo);
            sendUtils.sendAlarm(alarmVo);
        } else if (alarmVo instanceof AlarmADASVo) {
            adasVoSet.add((AlarmADASVo) alarmVo);
            sendUtils.sendAlarm(alarmVo);
        }
    }

    public static Set<AlarmDSMVo> findAllDsm(){
        return new HashSet<>(dsmVoSet);
    }

    public static Set<AlarmADASVo> findAllAdas(){
        return new HashSet<>(adasVoSet);
    }

    public static void clear(){
        dsmVoSet.clear();
        adasVoSet.clear();
        logger.info("清除报警数据...");
    }

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        sendUtils = applicationContext.getBean(SendUtils.class);
    }
}