package com.whyc.service;
|
|
import com.whyc.dto.AlarmDaoFactory;
|
import com.whyc.mapper.BattalarmDataMapper;
|
import com.whyc.mapper.DevalarmDataMapper;
|
import com.whyc.pojo.*;
|
import com.whyc.util.ActionUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpSession;
|
import java.util.HashMap;
|
import java.util.LinkedList;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
import static org.assertj.core.util.Maps.format;
|
|
/**
|
* 告警:电池/设备/电源告警的统一接口
|
*/
|
@Service
|
public class AlarmDataService {
|
|
@Autowired
|
private BattalarmDataService battAlarmDataService;
|
|
@Autowired
|
private DeviceAlarmDataService deviceAlarmDataService;
|
|
@Autowired
|
private DevalarmDataService devAlarmDataService;
|
|
@Autowired
|
private PwrdevAlarmService pwrdevAlarmService;
|
|
|
public Map<String, Object> getAlarmLevel1ListMap() {
|
Long userId = ActionUtil.getUser().getUId();
|
List<BattalarmData> battAlarmList = battAlarmDataService.getList(userId);
|
battAlarmList = battAlarmList.stream().filter(alarm->alarm.getAlmLevel().equals(1)).collect(Collectors.toList());
|
|
for (BattalarmData adata : battAlarmList) {
|
adata.setAlmSignalIdName(AlarmDaoFactory.getAlarmName(adata.getAlmSignalId()));
|
adata.setAlmLevelName(AlarmDaoFactory.getAlarmType(adata.getAlmLevel()));
|
}
|
|
List<DevalarmData> devAlarmList = devAlarmDataService.getList(userId);
|
devAlarmList = devAlarmList.stream().filter(alarm->alarm.getAlmLevel().equals(1)).collect(Collectors.toList());
|
|
|
List<PwrdevAlarm> powerAlarmList = pwrdevAlarmService.getList(userId);
|
powerAlarmList = powerAlarmList.stream().filter(alarm->alarm.getAlmLevel().equals(1)).collect(Collectors.toList());
|
|
for (PwrdevAlarm p : powerAlarmList) {
|
p.setAlarmName(AlarmDaoFactory.getAllAlarmName(p.getAlmType()));
|
if (p.getAlmIndex() != 0) {
|
p.setAlarmName(p.getAlarmName().replace("N", "第" + p.getAlmIndex() + "路"));
|
}
|
}
|
|
Map<String, Object> map = new HashMap<>();
|
map.put("battAlarmList", battAlarmList);
|
map.put("devAlarmList", devAlarmList);
|
map.put("powerAlarmList", powerAlarmList);
|
return map;
|
}
|
|
public List<WorkflowAlarm> getAlarmList() {
|
List<WorkflowAlarm> battAlarmList =battAlarmDataService.getAlarmList();
|
List<WorkflowAlarm> deviceAlarmList =deviceAlarmDataService.getAlarmList();
|
battAlarmList.addAll(deviceAlarmList);
|
return battAlarmList;
|
}
|
|
public void updateWorkFlag(List<WorkflowAlarm> deviceAlarmList) {
|
|
}
|
|
public List<String> getAlarmMsgList() {
|
Long uId = ActionUtil.getUser().getUId();
|
HttpSession session = ActionUtil.getSession();
|
//用户
|
Map<String,Object> alarmMap = (Map<String, Object>) session.getAttribute("alarmMap_" + uId);
|
Map<String, Object> alarmMapNow = getAlarmLevel1ListMap();
|
|
List<BattalarmData> battAlarmListNow = (List<BattalarmData>) alarmMapNow.get("battAlarmList");
|
List<DevalarmData> devAlarmListNow = (List<DevalarmData>) alarmMapNow.get("devAlarmList");
|
List<PwrdevAlarm> powerAlarmListNow = (List<PwrdevAlarm>) alarmMapNow.get("powerAlarmList");
|
if(alarmMap==null){
|
//不存在,插入内存
|
session.setAttribute("alarmMap_" + uId,alarmMapNow);
|
//返回内容格式处理,并存为语音
|
return formatResultAndSaveToWav(battAlarmListNow,devAlarmListNow,powerAlarmListNow);
|
}
|
//获取新增的
|
List<BattalarmData> battAlarmList = (List<BattalarmData>) alarmMap.get("battAlarmList");
|
List<DevalarmData> devAlarmList = (List<DevalarmData>) alarmMap.get("devAlarmList");
|
List<PwrdevAlarm> powerAlarmList = (List<PwrdevAlarm>) alarmMap.get("powerAlarmList");
|
|
List<BattalarmData> battAlarmListAdded = new LinkedList<>();
|
|
List<DevalarmData> devAlarmListAdded = new LinkedList<>();
|
|
List<PwrdevAlarm> powerAlarmListAdded = new LinkedList<>();
|
//电池组告警增加
|
for (BattalarmData now : battAlarmListNow) {
|
long num = now.getNum();
|
boolean exist = false;
|
for (BattalarmData old : battAlarmList) {
|
if (old.getNum() == num) {
|
exist = true;
|
break;
|
}
|
}
|
if (!exist) {
|
battAlarmListAdded.add(now);
|
}
|
|
}
|
//设备告警增加
|
for (DevalarmData now : devAlarmListNow) {
|
long num = now.getNum();
|
boolean exist = false;
|
for (DevalarmData old : devAlarmList) {
|
if (old.getNum() == num) {
|
exist = true;
|
break;
|
}
|
}
|
if (!exist) {
|
devAlarmListAdded.add(now);
|
}
|
|
}
|
//电源告警增加
|
for (PwrdevAlarm now : powerAlarmListNow) {
|
long num = now.getNum();
|
boolean exist = false;
|
for (PwrdevAlarm old : powerAlarmList) {
|
if (old.getNum() == num) {
|
exist = true;
|
break;
|
}
|
}
|
if (!exist) {
|
powerAlarmListAdded.add(now);
|
}
|
|
}
|
|
return formatResultAndSaveToWav(battAlarmListAdded, devAlarmListAdded, powerAlarmListAdded);
|
}
|
|
/**
|
* 分为
|
* 电池告警信息: xx机房xx电池组xx单体在xx时间发生xx告警
|
* 设备告警信息: xx机房xx设备在xx时间发生xx告警
|
* 电源告警信息: xx机房xx电源在xx时间发生xx告警
|
*
|
* @param battAlarmList
|
* @param devAlarmList
|
* @param powerAlarmList
|
* @return
|
*/
|
private List<String> formatResultAndSaveToWav(List<BattalarmData> battAlarmList,
|
List<DevalarmData> devAlarmList,
|
List<PwrdevAlarm> powerAlarmList) {
|
|
return null;
|
}
|
}
|