This commit is contained in:
2025-07-11 13:15:39 +08:00
parent b42ede2853
commit 067f2235a7
4 changed files with 101 additions and 4 deletions

View File

@@ -65,6 +65,18 @@ public class LargeScreenCountController extends BaseController {
AlarmAnalysisVO result = largeScreenCountService.alarmAnalysisDetail(largeScreenCountParam); AlarmAnalysisVO result = largeScreenCountService.alarmAnalysisDetail(largeScreenCountParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
} }
@OperateInfo
@PostMapping("/eventTablePage")
@ApiOperation("告警统计分析详情")
@ApiImplicitParam(name = "largeScreenCountParam", value = "查询参数", required = true)
public HttpResult<Page<EventDetailVO>> eventTablePage(@RequestBody LargeScreenCountParam largeScreenCountParam) {
String methodDescribe = getMethodDescribe("alarmAnalysisDetail");
Page<EventDetailVO> result = largeScreenCountService.eventTablePage(largeScreenCountParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo @OperateInfo
@PostMapping("/eventTrend") @PostMapping("/eventTrend")
@ApiOperation("暂降事件趋势") @ApiOperation("暂降事件趋势")

View File

@@ -45,11 +45,11 @@ public class JwtRequestFilter extends OncePerRequestFilter {
try { try {
username = jwtUtil.extractUsername(jwt); username = jwtUtil.extractUsername(jwt);
} catch (ExpiredJwtException e) { } catch (ExpiredJwtException e) {
// e.printStackTrace(); log.error(e.getMessage());
sendErrorResponse(response,CommonResponseEnum.TOKEN_EXPIRE_JWT); sendErrorResponse(response,CommonResponseEnum.TOKEN_EXPIRE_JWT);
return; return;
} catch (Exception e) { } catch (Exception e) {
// e.printStackTrace(); log.error(e.getMessage());
sendErrorResponse(response,CommonResponseEnum.PARSE_TOKEN_ERROR); sendErrorResponse(response,CommonResponseEnum.PARSE_TOKEN_ERROR);
return; return;
} }

View File

@@ -42,4 +42,7 @@ public interface LargeScreenCountService {
AlarmAnalysisVO alarmAnalysisDetail(LargeScreenCountParam largeScreenCountParam); AlarmAnalysisVO alarmAnalysisDetail(LargeScreenCountParam largeScreenCountParam);
Page<EventDetailVO> eventTablePage(LargeScreenCountParam largeScreenCountParam);
} }

View File

@@ -470,7 +470,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
.and(wrapper -> wrapper.eq(PqsEventdetail::getLookFlag, 0).or().isNull(PqsEventdetail::getLookFlag)); .and(wrapper -> wrapper.eq(PqsEventdetail::getLookFlag, 0).or().isNull(PqsEventdetail::getLookFlag));
if (Objects.nonNull(largeScreenCountParam.getEventDeep())) { if (Objects.nonNull(largeScreenCountParam.getEventDeep())) {
if (largeScreenCountParam.getEventDeep() == 0) { if (largeScreenCountParam.getEventDeep() == 0) {
lambdaQueryWrapper.ge(PqsEventdetail::getEventvalue, 0.5).lt(PqsEventdetail::getEventtype, 0.9); lambdaQueryWrapper.ge(PqsEventdetail::getEventvalue, 0.5).lt(PqsEventdetail::getEventvalue, 0.9);
} else if (largeScreenCountParam.getEventDeep() == 1) { } else if (largeScreenCountParam.getEventDeep() == 1) {
lambdaQueryWrapper.lt(PqsEventdetail::getEventvalue, 0.5); lambdaQueryWrapper.lt(PqsEventdetail::getEventvalue, 0.5);
} }
@@ -485,7 +485,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
.and(wrapper -> wrapper.eq(PqsEventdetail::getLookFlag, 0).or().isNull(PqsEventdetail::getLookFlag)); .and(wrapper -> wrapper.eq(PqsEventdetail::getLookFlag, 0).or().isNull(PqsEventdetail::getLookFlag));
if (Objects.nonNull(largeScreenCountParam.getEventDeep())) { if (Objects.nonNull(largeScreenCountParam.getEventDeep())) {
if (largeScreenCountParam.getEventDeep() == 0) { if (largeScreenCountParam.getEventDeep() == 0) {
lambdaQueryWrapper.ge(PqsEventdetail::getEventvalue, 0.5).lt(PqsEventdetail::getEventtype, 0.9); lambdaQueryWrapper.ge(PqsEventdetail::getEventvalue, 0.5).lt(PqsEventdetail::getEventvalue, 0.9);
} else if (largeScreenCountParam.getEventDeep() == 1) { } else if (largeScreenCountParam.getEventDeep() == 1) {
lambdaQueryWrapper.lt(PqsEventdetail::getEventvalue, 0.5); lambdaQueryWrapper.lt(PqsEventdetail::getEventvalue, 0.5);
} }
@@ -782,6 +782,88 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
return alarmAnalysisVO; return alarmAnalysisVO;
} }
@Override
public Page<EventDetailVO> eventTablePage(LargeScreenCountParam largeScreenCountParam) {
Page<EventDetailVO> result = new Page<>(PageFactory.getPageNum(largeScreenCountParam),PageFactory.getPageSize(largeScreenCountParam));
//起始时间
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("统计类型有误类型");
}
List<Integer> lineIds = commGeneralService.getLineIdsByDept(largeScreenCountParam);
if (CollectionUtils.isEmpty(lineIds)) {
throw new BusinessException("部门下暂无监测点");
}
List<String> eventType = msgEventConfigService.getEventType();
LambdaQueryWrapper<PqsEventdetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper
.between(PqsEventdetail::getTimeid,startTime, endTime)
.in(PqsEventdetail::getWavetype,eventType)
.orderByDesc(PqsEventdetail::getTimeid);
if(Objects.nonNull(largeScreenCountParam.getEventDeep())){
if (largeScreenCountParam.getEventDeep() == 0) {
lambdaQueryWrapper.ge(PqsEventdetail::getEventvalue, 0.5).lt(PqsEventdetail::getEventvalue, 0.9);
} else if (largeScreenCountParam.getEventDeep() == 1) {
lambdaQueryWrapper.lt(PqsEventdetail::getEventvalue, 0.5);
}
}
if(lineIds.size()>1000){
List<List<Integer>> splitList = CollUtil.split(lineIds,1000);
lambdaQueryWrapper.and(ew->{
for (int i = 0; i < splitList.size(); i++) {
List<Integer> batch = splitList.get(i);
if (i == 0) {
ew.in(PqsEventdetail::getLineid, batch); // 第一个条件不加 or
} else {
ew.or().in(PqsEventdetail::getLineid, batch); // 后续条件加 or
}
}
});
}else {
lambdaQueryWrapper.in(PqsEventdetail::getLineid, lineIds);
}
Page<PqsEventdetail> page = pqsEventdetailService.page(new Page<>(PageFactory.getPageNum(largeScreenCountParam),PageFactory.getPageSize(largeScreenCountParam)),lambdaQueryWrapper);
result.setTotal(page.getTotal());
if(CollUtil.isEmpty(page.getRecords())){
return result;
}
List<Integer> ids = page.getRecords().stream().map(PqsEventdetail::getLineid).distinct().collect(Collectors.toList());
List<LedgerBaseInfoDTO> pqLineList = pqLineService.getBaseLineInfo(ids);
Map<Integer,LedgerBaseInfoDTO> ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity()));
List<EventDetailVO> resultList = new ArrayList<>();
for(PqsEventdetail pqsEventdetail : page.getRecords()){
EventDetailVO eventDetailVO = new EventDetailVO();
BeanUtil.copyProperties(pqsEventdetail,eventDetailVO);
if(ledgerBaseInfoDTOMap.containsKey(pqsEventdetail.getLineid())){
LedgerBaseInfoDTO ledgerBaseInfoDTO = ledgerBaseInfoDTOMap.get(pqsEventdetail.getLineid());
eventDetailVO.setLineid(ledgerBaseInfoDTO.getLineId());
eventDetailVO.setPointname(ledgerBaseInfoDTO.getLineName());
eventDetailVO.setBdname(ledgerBaseInfoDTO.getStationName());
eventDetailVO.setObjName(ledgerBaseInfoDTO.getObjName());
}
resultList.add(eventDetailVO);
}
result.setRecords(resultList);
return result;
}
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)){