初始版本提交
This commit is contained in:
@@ -57,6 +57,15 @@ public class LargeScreenCountController extends BaseController {
|
|||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
}
|
}
|
||||||
@OperateInfo
|
@OperateInfo
|
||||||
|
@PostMapping("/alarmAnalysisDetail")
|
||||||
|
@ApiOperation("告警统计分析详情")
|
||||||
|
@ApiImplicitParam(name = "largeScreenCountParam", value = "查询参数", required = true)
|
||||||
|
public HttpResult<AlarmAnalysisVO> alarmAnalysisDetail(@RequestBody LargeScreenCountParam largeScreenCountParam) {
|
||||||
|
String methodDescribe = getMethodDescribe("alarmAnalysisDetail");
|
||||||
|
AlarmAnalysisVO result = largeScreenCountService.alarmAnalysisDetail(largeScreenCountParam);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
|
}
|
||||||
|
@OperateInfo
|
||||||
@PostMapping("/eventTrend")
|
@PostMapping("/eventTrend")
|
||||||
@ApiOperation("暂降事件趋势")
|
@ApiOperation("暂降事件趋势")
|
||||||
@ApiImplicitParam(name = "largeScreenCountParam", value = "查询参数", required = true)
|
@ApiImplicitParam(name = "largeScreenCountParam", value = "查询参数", required = true)
|
||||||
|
|||||||
@@ -41,5 +41,5 @@ public interface LargeScreenCountService {
|
|||||||
boolean msgHandle(MessageEventFeedbackParam messageEventFeedbackParam);
|
boolean msgHandle(MessageEventFeedbackParam messageEventFeedbackParam);
|
||||||
|
|
||||||
|
|
||||||
|
AlarmAnalysisVO alarmAnalysisDetail(LargeScreenCountParam largeScreenCountParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -205,10 +205,8 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|||||||
Integer eventCount = eventdetails.size();
|
Integer eventCount = eventdetails.size();
|
||||||
// 告警
|
// 告警
|
||||||
List<PqsEventdetail> aLarmEvent = eventdetails.stream().filter(temp -> temp.getEventvalue() < 0.5).collect(Collectors.toList());
|
List<PqsEventdetail> aLarmEvent = eventdetails.stream().filter(temp -> temp.getEventvalue() < 0.5).collect(Collectors.toList());
|
||||||
aLarmEvent.forEach(temp->temp.setEventSeverity(1));
|
|
||||||
// 预警
|
// 预警
|
||||||
List<PqsEventdetail> warnEvent = eventdetails.stream().filter(temp -> temp.getEventvalue() >= 0.5&& temp.getEventvalue() <0.9).collect(Collectors.toList());
|
List<PqsEventdetail> warnEvent = eventdetails.stream().filter(temp -> temp.getEventvalue() >= 0.5&& temp.getEventvalue() <0.9).collect(Collectors.toList());
|
||||||
warnEvent.forEach(temp->temp.setEventSeverity(2));
|
|
||||||
List<String> eventIds = eventdetails.stream().map(PqsEventdetail::getEventdetailIndex).collect(Collectors.toList());
|
List<String> eventIds = eventdetails.stream().map(PqsEventdetail::getEventdetailIndex).collect(Collectors.toList());
|
||||||
//通知
|
//通知
|
||||||
List<MsgEventInfo> msgEventInfoList = new ArrayList<>();
|
List<MsgEventInfo> msgEventInfoList = new ArrayList<>();
|
||||||
@@ -247,14 +245,14 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|||||||
alarmAnalysisVO.setLookWarnCount(lookWarnCount);
|
alarmAnalysisVO.setLookWarnCount(lookWarnCount);
|
||||||
alarmAnalysisVO.setLookNoticeCount(lookNoticeCount);
|
alarmAnalysisVO.setLookNoticeCount(lookNoticeCount);
|
||||||
|
|
||||||
|
//
|
||||||
alarmAnalysisVO.setEventdetails(change(eventdetails,msgEventInfoList));
|
// alarmAnalysisVO.setEventdetails(change(eventdetails,msgEventInfoList));
|
||||||
alarmAnalysisVO.setALarmEvent(change(aLarmEvent,msgEventInfoList));
|
// alarmAnalysisVO.setALarmEvent(change(aLarmEvent,msgEventInfoList));
|
||||||
alarmAnalysisVO.setWarnEvent(change(warnEvent,msgEventInfoList));
|
// alarmAnalysisVO.setWarnEvent(change(warnEvent,msgEventInfoList));
|
||||||
alarmAnalysisVO.setNoticeEvent(msgEventInfoList);
|
// alarmAnalysisVO.setNoticeEvent(msgEventInfoList);
|
||||||
alarmAnalysisVO.setLookALarmEvent(change(lookALarmEvent,msgEventInfoList));
|
// alarmAnalysisVO.setLookALarmEvent(change(lookALarmEvent,msgEventInfoList));
|
||||||
alarmAnalysisVO.setLookWarnEvent(change(lookWarnEvent,msgEventInfoList));
|
// alarmAnalysisVO.setLookWarnEvent(change(lookWarnEvent,msgEventInfoList));
|
||||||
alarmAnalysisVO.setLookNoticeEvent(handleMsg);
|
// alarmAnalysisVO.setLookNoticeEvent(handleMsg);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -719,6 +717,114 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AlarmAnalysisVO alarmAnalysisDetail(LargeScreenCountParam largeScreenCountParam) {
|
||||||
|
AlarmAnalysisVO alarmAnalysisVO = new AlarmAnalysisVO();
|
||||||
|
//起始时间
|
||||||
|
LocalDateTime startTime;
|
||||||
|
//结束时间
|
||||||
|
LocalDateTime endTime;
|
||||||
|
if (largeScreenCountParam.getType() == 3) {
|
||||||
|
//起始时间
|
||||||
|
startTime = LocalDateTimeUtil.parse(DateUtil.format(DateUtil.beginOfMonth(new Date()), DatePattern.NORM_DATETIME_FORMATTER), DatePattern.NORM_DATETIME_FORMATTER);
|
||||||
|
//结束时间
|
||||||
|
endTime = LocalDateTimeUtil.parse(DateUtil.format(DateUtil.endOfMonth(new Date()), DatePattern.NORM_DATETIME_FORMATTER), DatePattern.NORM_DATETIME_FORMATTER);
|
||||||
|
} else if (largeScreenCountParam.getType() == 4) {
|
||||||
|
//起始时间
|
||||||
|
startTime = LocalDateTimeUtil.parse(DateUtil.format(DateUtil.beginOfWeek(new Date()), DatePattern.NORM_DATETIME_FORMATTER), DatePattern.NORM_DATETIME_FORMATTER);
|
||||||
|
//结束时间
|
||||||
|
endTime = LocalDateTimeUtil.parse(DateUtil.format(DateUtil.endOfWeek(new Date()), DatePattern.NORM_DATETIME_FORMATTER), DatePattern.NORM_DATETIME_FORMATTER);
|
||||||
|
} else {
|
||||||
|
throw new BusinessException("统计类型有误类型");
|
||||||
|
}
|
||||||
|
|
||||||
|
//根据用户获取当前部门及子部门id
|
||||||
|
List<String> deptAndChildren = pqsDeptsService.findDeptAndChildren(largeScreenCountParam.getDeptId());
|
||||||
|
//获取对应监测点id
|
||||||
|
List<PqsDeptsline> deptslines = pqsDeptslineService.lambdaQuery().in(PqsDeptsline::getDeptsIndex, deptAndChildren).eq(PqsDeptsline::getSystype, sysTypeZt).list();
|
||||||
|
List<Integer> deptslineIds = deptslines.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList());
|
||||||
|
if (CollectionUtils.isEmpty(deptslineIds)) {
|
||||||
|
throw new BusinessException("部门下暂无监测点");
|
||||||
|
|
||||||
|
}
|
||||||
|
List<PqsEventdetail> eventdetails = new ArrayList<>();
|
||||||
|
if(deptslineIds.size()>1000){
|
||||||
|
List<List<Integer>> listIds = CollUtil.split(deptslineIds,1000);
|
||||||
|
for(List<Integer> itemIds : listIds){
|
||||||
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
||||||
|
.between(PqsEventdetail::getTimeid,startTime, endTime)
|
||||||
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
||||||
|
.in(PqsEventdetail::getLineid,listIds)
|
||||||
|
.orderByDesc(PqsEventdetail::getTimeid).list()
|
||||||
|
;
|
||||||
|
eventdetails.addAll(temp);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
|
||||||
|
.between(PqsEventdetail::getTimeid, startTime, endTime)
|
||||||
|
.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType())
|
||||||
|
.in(PqsEventdetail::getLineid,deptslineIds)
|
||||||
|
.orderByDesc(PqsEventdetail::getTimeid).list();
|
||||||
|
eventdetails.addAll(temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
Integer eventCount = eventdetails.size();
|
||||||
|
// 告警
|
||||||
|
List<PqsEventdetail> aLarmEvent = eventdetails.stream().filter(temp -> temp.getEventvalue() < 0.5).collect(Collectors.toList());
|
||||||
|
// 预警
|
||||||
|
List<PqsEventdetail> warnEvent = eventdetails.stream().filter(temp -> temp.getEventvalue() >= 0.5&& temp.getEventvalue() <0.9).collect(Collectors.toList());
|
||||||
|
List<String> eventIds = eventdetails.stream().map(PqsEventdetail::getEventdetailIndex).collect(Collectors.toList());
|
||||||
|
//通知
|
||||||
|
List<MsgEventInfo> msgEventInfoList = new ArrayList<>();
|
||||||
|
if(!CollectionUtils.isEmpty(eventIds)){
|
||||||
|
if(eventIds.size()>1000){
|
||||||
|
List<List<String>> listEven = CollUtil.split(eventIds,1000);
|
||||||
|
for(List<String> pList: listEven){
|
||||||
|
List<MsgEventInfo> temp = msgEventInfoService.lambdaQuery().in(MsgEventInfo::getEventIndex,pList).list();
|
||||||
|
msgEventInfoList.addAll(temp);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
List<MsgEventInfo> temp = msgEventInfoService.lambdaQuery().in(MsgEventInfo::getEventIndex,eventIds).list();
|
||||||
|
msgEventInfoList.addAll(temp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
msgEventInfoList = msgEventInfoList.stream().sorted(Comparator.comparing(MsgEventInfo::getSendTime,Comparator.reverseOrder())).collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
List<PqsEventdetail> lookALarmEvent = aLarmEvent.stream().filter(temp ->Objects.equals(temp.getLookFlag(),1 )).collect(Collectors.toList());
|
||||||
|
List<PqsEventdetail> lookWarnEvent = warnEvent.stream().filter(temp ->Objects.equals(temp.getLookFlag(),1 ) ).collect(Collectors.toList());
|
||||||
|
List<MsgEventInfo> handleMsg = msgEventInfoList.stream().filter(temp -> Objects.equals(temp.getIsHandle(), 1)).collect(Collectors.toList());
|
||||||
|
|
||||||
|
Integer aLarmCount =aLarmEvent.size();
|
||||||
|
Integer warnCount =warnEvent.size();
|
||||||
|
Integer noticeCount =msgEventInfoList.size();
|
||||||
|
Integer lookALarmCount =lookALarmEvent.size();
|
||||||
|
Integer lookWarnCount =lookWarnEvent.size();
|
||||||
|
Integer lookNoticeCount =handleMsg.size();
|
||||||
|
|
||||||
|
alarmAnalysisVO.setEventCount(eventCount);
|
||||||
|
alarmAnalysisVO.setALarmCount(aLarmCount);
|
||||||
|
alarmAnalysisVO.setWarnCount(warnCount);
|
||||||
|
alarmAnalysisVO.setNoticeCount(noticeCount);
|
||||||
|
alarmAnalysisVO.setLookALarmCount(lookALarmCount);
|
||||||
|
alarmAnalysisVO.setLookWarnCount(lookWarnCount);
|
||||||
|
alarmAnalysisVO.setLookNoticeCount(lookNoticeCount);
|
||||||
|
|
||||||
|
|
||||||
|
alarmAnalysisVO.setEventdetails(change(eventdetails,msgEventInfoList));
|
||||||
|
alarmAnalysisVO.setALarmEvent(change(aLarmEvent,msgEventInfoList));
|
||||||
|
alarmAnalysisVO.setWarnEvent(change(warnEvent,msgEventInfoList));
|
||||||
|
alarmAnalysisVO.setNoticeEvent(msgEventInfoList);
|
||||||
|
alarmAnalysisVO.setLookALarmEvent(change(lookALarmEvent,msgEventInfoList));
|
||||||
|
alarmAnalysisVO.setLookWarnEvent(change(lookWarnEvent,msgEventInfoList));
|
||||||
|
alarmAnalysisVO.setLookNoticeEvent(handleMsg);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return alarmAnalysisVO;
|
||||||
|
}
|
||||||
|
|
||||||
private List<EventDetailVO> change(List<PqsEventdetail> list,List<MsgEventInfo> handleMsg){
|
private List<EventDetailVO> change(List<PqsEventdetail> list,List<MsgEventInfo> handleMsg){
|
||||||
List<EventDetailVO> result = new ArrayList<>();
|
List<EventDetailVO> result = new ArrayList<>();
|
||||||
if(CollectionUtils.isEmpty(list)){
|
if(CollectionUtils.isEmpty(list)){
|
||||||
@@ -740,10 +846,11 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
|
|||||||
eventDetailVO.setEventvalue(temp.getEventvalue());
|
eventDetailVO.setEventvalue(temp.getEventvalue());
|
||||||
eventDetailVO.setLookFlag(temp.getLookFlag());
|
eventDetailVO.setLookFlag(temp.getLookFlag());
|
||||||
eventDetailVO.setNoticeFlag(temp.getNoticeFlag());
|
eventDetailVO.setNoticeFlag(temp.getNoticeFlag());
|
||||||
if(Objects.nonNull(temp.getEventSeverity())){
|
if( temp.getEventvalue()< 0.5){
|
||||||
eventDetailVO.setEventSeverity(temp.getEventSeverity());
|
eventDetailVO.setEventSeverity(1);
|
||||||
|
}else{
|
||||||
|
eventDetailVO.setEventSeverity(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
eventDetailVO.setMsgEventInfoSize(handleMsg.stream().filter(msg->Objects.equals(msg.getEventIndex(),temp.getEventdetailIndex())).count());
|
eventDetailVO.setMsgEventInfoSize(handleMsg.stream().filter(msg->Objects.equals(msg.getEventIndex(),temp.getEventdetailIndex())).count());
|
||||||
if(ledgerBaseInfoDTOMap.containsKey(temp.getLineid())){
|
if(ledgerBaseInfoDTOMap.containsKey(temp.getLineid())){
|
||||||
LedgerBaseInfoDTO ledgerBaseInfoDTO = ledgerBaseInfoDTOMap.get(temp.getLineid());
|
LedgerBaseInfoDTO ledgerBaseInfoDTO = ledgerBaseInfoDTOMap.get(temp.getLineid());
|
||||||
|
|||||||
Reference in New Issue
Block a user