lxw
2023-08-15 160e150009b51a39fa95d9462c3798ba28d51a09
src/main/java/com/whyc/service/AlarmDataService.java
@@ -5,6 +5,7 @@
import com.whyc.pojo.*;
import com.whyc.util.ActionUtil;
import com.whyc.util.CommonUtil;
import com.whyc.util.MessageUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@@ -15,8 +16,6 @@
import java.util.*;
import java.util.concurrent.atomic.AtomicLong;
import java.util.stream.Collectors;
import static org.assertj.core.util.Maps.format;
/**
 * 告警:电池/设备/电源告警的统一接口
@@ -46,19 +45,20 @@
    public Map<String, Object> getAlarmLevel1ListMap() {
        Long userId = ActionUtil.getUser().getUId();
        List<BattalarmData> battAlarmList = battAlarmDataService.getList(userId,1);
        battAlarmList = battAlarmList.stream().filter(alarm->alarm.getAlmLevel().equals(1)).collect(Collectors.toList());
        String lang = ActionUtil.getLang();
        List<BattalarmData> battAlarmList = battAlarmDataService.getList(userId, 1);
        battAlarmList = battAlarmList.stream().filter(alarm -> alarm.getAlmLevel().equals(1)).collect(Collectors.toList());
        //相同设备id+告警类型的语音,只保留一条
        Map<String, List<BattalarmData>> battAlarmListMap = battAlarmList.stream().collect(Collectors.groupingBy(a -> a.getBattGroupId() + "_" + a.getAlmSignalId()));
        Set<String> keySet = battAlarmListMap.keySet();
        for (String key:keySet){
            battAlarmList.clear();
        battAlarmList.clear();
        for (String key : keySet) {
            battAlarmList.add(battAlarmListMap.get(key).get(0));
        }
        for (BattalarmData adata : battAlarmList) {
            adata.setAlmSignalIdName(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()));
            adata.setAlmLevelName(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()));
            adata.setAlmSignalIdName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()), lang));
            adata.setAlmLevelName(MessageUtils.getMessageSocket(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()), lang));
        }
        List<DevalarmData> devAlarmList = devAlarmDataService.getList(userId,1);
@@ -66,8 +66,8 @@
        //相同设备id+告警类型的语音,只保留一条
        Map<String, List<DevalarmData>> devAlarmListMap = devAlarmList.stream().collect(Collectors.groupingBy(a -> a.getDevId() + "_" + a.getAlmType()));
        Set<String> keySet2 = devAlarmListMap.keySet();
        devAlarmList.clear();
        for (String key:keySet2){
            devAlarmList.clear();
            devAlarmList.add(devAlarmListMap.get(key).get(0));
        }
@@ -76,8 +76,8 @@
        //相同设备id+告警类型的语音,只保留一条
        Map<String, List<PwrdevAlarm>> powerAlarmListMap = powerAlarmList.stream().collect(Collectors.groupingBy(a -> a.getPowerDeviceId() + "_" + a.getAlmType()));
        Set<String> keySet3 = powerAlarmListMap.keySet();
        powerAlarmList.clear();
        for (String key:keySet3){
            powerAlarmList.clear();
            powerAlarmList.add(powerAlarmListMap.get(key).get(0));
        }
        for (PwrdevAlarm p : powerAlarmList) {
@@ -302,6 +302,9 @@
        //查询告警语音设置表的所有记录,并更新下次时间戳到到相关的语音文件中
        Long userId = ActionUtil.getUser().getUId();
        List<AlarmVoiceSet> setList = alarmVoiceSetService.getAllByUserId(userId);
        List<AlarmVoiceSet> setListBatt = setList.stream().filter(set->set.getBattGroupId()!=null).collect(Collectors.toList());
        List<AlarmVoiceSet> setListDevice = setList.stream().filter(set->set.getDeviceId()!=null).collect(Collectors.toList());
        List<AlarmVoiceSet> setListPowerDevice = setList.stream().filter(set->set.getPowerDeviceId()!=null).collect(Collectors.toList());
        File file = new File(dirPath);
        if(!file.exists()){
@@ -320,7 +323,7 @@
            //查询是否存在 设备id+告警类型 相同的记录
            Integer battGroupId = alarm.getBattGroupId();
            AtomicLong nextTimestamp = new AtomicLong(currentTimeMillis);
            setList.forEach(set->{
            setListBatt.forEach(set->{
                if(set.getBattGroupId().equals(battGroupId) && set.getAlarmType().equals(almSignalId)){
                    nextTimestamp.set(set.getNextTimestamp());
                }
@@ -347,7 +350,7 @@
            //查询是否存在 设备id+告警类型 相同的记录
            Integer devId = alarm.getDevId();
            AtomicLong nextTimestamp = new AtomicLong(currentTimeMillis);
            setList.forEach(set->{
            setListDevice.forEach(set->{
                if(set.getDeviceId().intValue() == devId && set.getAlarmType().equals(almType)){
                    nextTimestamp.set(set.getNextTimestamp());
                }
@@ -372,7 +375,7 @@
            //查询是否存在 设备id+告警类型 相同的记录
            Long powerDeviceId = alarm.getPowerDeviceId();
            AtomicLong nextTimestamp = new AtomicLong(currentTimeMillis);
            setList.forEach(set->{
            setListPowerDevice.forEach(set->{
                if(set.getPowerDeviceId().equals(powerDeviceId) && set.getAlarmType().equals(almType)){
                    nextTimestamp.set(set.getNextTimestamp());
                }