| | |
| | | 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; |
| | |
| | | import java.util.*; |
| | | import java.util.concurrent.atomic.AtomicLong; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static org.assertj.core.util.Maps.format; |
| | | |
| | | /** |
| | | * 告警:电池/设备/电源告警的统一接口 |
| | |
| | | |
| | | 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); |
| | |
| | | //相同设备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)); |
| | | } |
| | | |
| | |
| | | //相同设备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) { |
| | |
| | | //查询告警语音设置表的所有记录,并更新下次时间戳到到相关的语音文件中 |
| | | 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()){ |
| | |
| | | //查询是否存在 设备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()); |
| | | } |
| | |
| | | //查询是否存在 设备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()); |
| | | } |
| | |
| | | //查询是否存在 设备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()); |
| | | } |