package com.whyc.service;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.whyc.dto.AlarmDaoFactory;
|
import com.whyc.dto.Response;
|
import com.whyc.mapper.PwrdevAlarmHistoryMapper;
|
import com.whyc.mapper.PwrdevAlarmParamMapper;
|
import com.whyc.pojo.PwrDevAlarmVerify;
|
import com.whyc.pojo.PwrdevAlarmHistory;
|
import com.whyc.pojo.PwrdevAlarmParam;
|
import com.whyc.pojo.UserLog;
|
import com.whyc.util.ActionUtil;
|
import com.whyc.util.SubTablePageInfoUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.annotation.Resource;
|
import java.text.ParseException;
|
import java.util.ArrayList;
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
@Service
|
public class PwrdevAlarmHistoryService {
|
@Resource
|
private PwrdevAlarmHistoryMapper mapper;
|
|
@Resource
|
private PwrdevAlarmParamMapper paramMapper;
|
|
@Resource
|
private SubTablePageInfoUtils subTablePageInfoUtils;
|
|
@Autowired
|
private SubTablePageInfoService subService;
|
|
//查询所有的电源历史告警信息
|
public Response getHistoryAllPage(PwrdevAlarmHistory pwrH) {
|
PageHelper.startPage(pwrH.getPage().getPageCurr(), pwrH.getPage().getPageSize());
|
pwrH.setUsrId(ActionUtil.getUser().getUId().intValue());
|
List<PwrdevAlarmHistory> list = mapper.getHistoryAllPage(pwrH);
|
for (PwrdevAlarmHistory p : list) {
|
p.setAlarmName(AlarmDaoFactory.getAllAlarmName(p.getAlmType()));
|
}
|
PageInfo pageInfo = new PageInfo(list);
|
List levelList = serchByLevel(ActionUtil.getUser().getUId().intValue(), pwrH.getAlmTypes());
|
return new Response<>().setII(1, pageInfo, levelList, "返回结果");
|
}
|
|
public Response getPageInfo(PwrdevAlarmHistory param) throws ParseException {
|
Integer pageNum = param.getPage().getPageCurr();
|
Integer pageSize = param.getPage().getPageSize();
|
Date almStartTime = param.getAlmStartTime();
|
Date almEndTime = param.getAlmStartTime1();
|
//recordId = 1 普通电源
|
param.setRecordId(1L);
|
int uId = ActionUtil.getUser().getUId().intValue();
|
param.setUsrId(uId);
|
PageInfo<Object> pageInfo = subTablePageInfoUtils.getPageInfo(pageNum, pageSize, almStartTime, almEndTime,
|
"db_pwrdev_alarm", "tb_pwrdev_alarm_history", param);
|
List<Object> list = pageInfo.getList();
|
for (Object temp : list) {
|
PwrdevAlarmHistory p = (PwrdevAlarmHistory) temp;
|
p.setAlarmName(AlarmDaoFactory.getAllAlarmName(p.getAlmType()));
|
}
|
return new Response<>().setII(1, pageInfo, null, "返回结果");
|
}
|
|
public Response getPageInfoForTX(PwrdevAlarmHistory param) throws ParseException {
|
Integer pageNum = param.getPage().getPageCurr();
|
Integer pageSize = param.getPage().getPageSize();
|
Date almStartTime = param.getAlmStartTime();
|
Date almEndTime = param.getAlmStartTime1();
|
//2代表通讯电源
|
param.setRecordId(2L);
|
param.setUsrId(ActionUtil.getUser().getUId().intValue());
|
PageInfo<Object> pageInfo = subTablePageInfoUtils.getPageInfo(pageNum, pageSize, almStartTime, almEndTime,
|
"db_pwrdev_alarm", "tb_pwrdev_alarm_history", param);
|
List<Object> list = pageInfo.getList();
|
List<String> tableList = paramMapper.getParamList();
|
//取第一条记录,即param表
|
String alarmParamTableName = tableList.get(0);
|
//List<PwrdevAlarmParam> paramList=paramMapper.searchAll(alarmParamTableName);
|
List<PwrdevAlarmParam> paramList=subService.searchAll(alarmParamTableName);
|
for (Object obj:list) {
|
PwrdevAlarmHistory p = (PwrdevAlarmHistory) obj;
|
int almType = p.getAlmType();
|
AtomicBoolean matchFlag = new AtomicBoolean(false);
|
paramList.stream().forEach(temp->{
|
if(temp.getAlarmId() == almType ){
|
if (p.getAlmIndex() != 0) {
|
p.setAlarmName(temp.getAlarmName().replace("N", p.getAlmIndex() + ""));
|
}else{
|
p.setAlarmName(temp.getAlarmName());
|
}
|
matchFlag.set(true);
|
return;
|
}
|
});
|
if(!matchFlag.get()){
|
p.setAlarmName("未知告警类型");
|
}
|
|
}
|
return new Response<>().set(1,pageInfo);
|
}
|
|
//查询分级告警的个数
|
public List serchByLevel(int uId, List<Integer> almTypes) {
|
List list = new ArrayList();
|
//分四级查询个数
|
for (int i = 1; i <= 4; i++) {
|
int countLevel = mapper.serchByLevel(i, uId, almTypes);
|
list.add(countLevel);
|
}
|
return list;
|
}
|
|
//电源历史告警删除
|
public Response delete(int num) {
|
int flag = mapper.deleteById(num);
|
return new Response().set(flag);
|
}
|
|
//电源历史告警删除批量
|
@Transactional
|
public Response deletepro(List<Integer> list) {
|
int flag = 0;
|
for (Integer num : list) {
|
flag = mapper.deleteById(num);
|
}
|
return new Response().set(flag);
|
}
|
//查询所有的通讯电源历史告警信息
|
public Response getHistoryAllPage2(PwrdevAlarmHistory pwrH) {
|
PageHelper.startPage(pwrH.getPage().getPageCurr(),pwrH.getPage().getPageSize());
|
pwrH.setUsrId(ActionUtil.getUser().getUId().intValue());
|
List<PwrdevAlarmHistory> list= mapper.getHistoryAllPage2(pwrH);
|
List<String> tableList = paramMapper.getParamList();
|
//取第一条记录,即param表
|
String alarmParamTableName = tableList.get(0);
|
//List<PwrdevAlarmParam> paramList=paramMapper.searchAll(alarmParamTableName);
|
List<PwrdevAlarmParam> paramList=subService.searchAll(alarmParamTableName);
|
for (PwrdevAlarmHistory p:list) {
|
int almType = p.getAlmType();
|
AtomicBoolean matchFlag = new AtomicBoolean(false);
|
paramList.stream().forEach(param->{
|
if(param.getAlarmId() == almType ){
|
p.setAlarmName(param.getAlarmName());
|
matchFlag.set(true);
|
return;
|
}
|
});
|
if(!matchFlag.get()){
|
p.setAlarmName("未知告警类型");
|
}
|
|
}
|
PageInfo pageInfo=new PageInfo(list);
|
return new Response<>().set(1,pageInfo);
|
}
|
|
public List<PwrdevAlarmHistory> getDataBeforeRetentionMonth(Date retentionTime) {
|
return mapper.getDataBeforeRetentionMonth(retentionTime);
|
}
|
|
public void deleteBeforeRetentionMonth(Date retentionTime) {
|
UpdateWrapper<PwrdevAlarmHistory> update = Wrappers.update();
|
|
update.lt("alm_start_time",retentionTime);
|
mapper.delete(update);
|
}
|
|
public void add(PwrDevAlarmVerify data) {
|
PwrdevAlarmHistory dataHistory = new PwrdevAlarmHistory();
|
dataHistory.setAlmClearedType(data.getAlmClearedType());
|
dataHistory.setAlmConfirmedTime(data.getAlmConfirmedTime());
|
dataHistory.setAlmEndTime(data.getAlmEndTime());
|
dataHistory.setAlmIndex(data.getAlmIndex());
|
dataHistory.setAlmIsConfirmed(data.getAlmIsConfirmed());
|
dataHistory.setAlmLevel(data.getAlmLevel());
|
dataHistory.setAlmSeverity(data.getAlmSeverity());
|
dataHistory.setAlmSource(data.getAlmSource());
|
dataHistory.setAlmStartTime(data.getAlmStartTime());
|
dataHistory.setAlmType(data.getAlmType());
|
dataHistory.setAlmValue(data.getAlmValue());
|
dataHistory.setPowerDeviceId(data.getPowerDeviceId());
|
dataHistory.setRecordId(data.getRecordId());
|
dataHistory.setUsrId(data.getUsrId());
|
dataHistory.setAlmTrigger(data.getAlmTrigger());
|
|
mapper.insert(dataHistory);
|
}
|
|
public List<PwrdevAlarmHistory> getListByStationId(Date startTime, Date endTime, String stationId,String tableName) {
|
//List list=mapper.getListByStationId(startTime,endTime,stationId,tableName);
|
List list=subService.getListByStationId_pwr(startTime,endTime,stationId,tableName);
|
return list;
|
}
|
|
public Response getLevelList(List<Integer> almTypes) {
|
int uId = ActionUtil.getUser().getUId().intValue();
|
List<Integer> levelList = subTablePageInfoUtils.getLevelList(uId,"db_pwrdev_alarm", "tb_pwrdev_alarm_history", "tb_pwrdev_alarm_history_?[0-9]*",almTypes);
|
return new Response().set(1,levelList);
|
}
|
}
|