diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/LargeScreenCountController.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/LargeScreenCountController.java index 1247611a..9c4ea397 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/LargeScreenCountController.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/LargeScreenCountController.java @@ -65,6 +65,18 @@ public class LargeScreenCountController extends BaseController { AlarmAnalysisVO result = largeScreenCountService.alarmAnalysisDetail(largeScreenCountParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + + + @OperateInfo + @PostMapping("/eventTablePage") + @ApiOperation("告警统计分析详情") + @ApiImplicitParam(name = "largeScreenCountParam", value = "查询参数", required = true) + public HttpResult> eventTablePage(@RequestBody LargeScreenCountParam largeScreenCountParam) { + String methodDescribe = getMethodDescribe("alarmAnalysisDetail"); + Page result = largeScreenCountService.eventTablePage(largeScreenCountParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + @OperateInfo @PostMapping("/eventTrend") @ApiOperation("暂降事件趋势") diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/filter/JwtRequestFilter.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/filter/JwtRequestFilter.java index 31c1557f..22e92a2d 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/filter/JwtRequestFilter.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/filter/JwtRequestFilter.java @@ -45,11 +45,11 @@ public class JwtRequestFilter extends OncePerRequestFilter { try { username = jwtUtil.extractUsername(jwt); } catch (ExpiredJwtException e) { - // e.printStackTrace(); + log.error(e.getMessage()); sendErrorResponse(response,CommonResponseEnum.TOKEN_EXPIRE_JWT); return; } catch (Exception e) { - // e.printStackTrace(); + log.error(e.getMessage()); sendErrorResponse(response,CommonResponseEnum.PARSE_TOKEN_ERROR); return; } diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/LargeScreenCountService.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/LargeScreenCountService.java index 1d80e410..d6967489 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/LargeScreenCountService.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/LargeScreenCountService.java @@ -42,4 +42,7 @@ public interface LargeScreenCountService { AlarmAnalysisVO alarmAnalysisDetail(LargeScreenCountParam largeScreenCountParam); + + Page eventTablePage(LargeScreenCountParam largeScreenCountParam); + } diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java index 9c8a7457..2395c032 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/LargeScreenCountServiceImpl.java @@ -470,7 +470,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { .and(wrapper -> wrapper.eq(PqsEventdetail::getLookFlag, 0).or().isNull(PqsEventdetail::getLookFlag)); if (Objects.nonNull(largeScreenCountParam.getEventDeep())) { 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) { 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)); if (Objects.nonNull(largeScreenCountParam.getEventDeep())) { 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) { lambdaQueryWrapper.lt(PqsEventdetail::getEventvalue, 0.5); } @@ -782,6 +782,88 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { return alarmAnalysisVO; } + @Override + public Page eventTablePage(LargeScreenCountParam largeScreenCountParam) { + Page 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 lineIds = commGeneralService.getLineIdsByDept(largeScreenCountParam); + if (CollectionUtils.isEmpty(lineIds)) { + throw new BusinessException("部门下暂无监测点"); + } + + + + List eventType = msgEventConfigService.getEventType(); + LambdaQueryWrapper 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> splitList = CollUtil.split(lineIds,1000); + lambdaQueryWrapper.and(ew->{ + for (int i = 0; i < splitList.size(); i++) { + List 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 page = pqsEventdetailService.page(new Page<>(PageFactory.getPageNum(largeScreenCountParam),PageFactory.getPageSize(largeScreenCountParam)),lambdaQueryWrapper); + result.setTotal(page.getTotal()); + if(CollUtil.isEmpty(page.getRecords())){ + return result; + } + List ids = page.getRecords().stream().map(PqsEventdetail::getLineid).distinct().collect(Collectors.toList()); + List pqLineList = pqLineService.getBaseLineInfo(ids); + Map ledgerBaseInfoDTOMap = pqLineList.stream().collect(Collectors.toMap(LedgerBaseInfoDTO::getLineId, Function.identity())); + + List 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 change(List list,List handleMsg){ List result = new ArrayList<>(); if(CollectionUtils.isEmpty(list)){