From 0e548887a4fe2f03bcc050694dff14c5bf51ba95 Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Tue, 25 Jun 2024 09:08:32 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=85=A8=E6=99=AF=E6=8A=80=E6=9C=AF=E7=9B=91?= =?UTF-8?q?=E7=9D=A3=E6=95=B0=E6=8D=AE=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/pq/mapper/mapping/LineMapper.xml | 3 +- .../pojo/vo/gridDiagram/GridDiagramVO.java | 13 +++ .../gridDiagram/GridDiagramController.java | 8 ++ .../gridDiagram/GridDiagramService.java | 7 ++ .../impl/GridDiagramServiceImpl.java | 82 ++++++++++++++++++- 5 files changed, 110 insertions(+), 3 deletions(-) diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml index f3c91ea97..c21e6317b 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml @@ -1654,7 +1654,8 @@ and ( - line.NAME like CONCAT('%', #{searchValue}, '%') + line.NAME like CONCAT('%',SUBSTRING_INDEX(#{searchValue}, '_', -1), '%') + or voltage.NAME like CONCAT('%', SUBSTRING_INDEX(#{searchValue}, '_', 1), '%') or substation.NAME like CONCAT('%', #{searchValue}, '%') ) diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/gridDiagram/GridDiagramVO.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/gridDiagram/GridDiagramVO.java index 0a98613eb..c1eec1cfc 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/gridDiagram/GridDiagramVO.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/gridDiagram/GridDiagramVO.java @@ -40,4 +40,17 @@ public class GridDiagramVO { @ApiModelProperty(value = "技术监督计划") private Integer surveyNum; } + + @Data + public static class City { + + @ApiModelProperty(value = "在线监测") + private GridDiagramVO onLine; + + @ApiModelProperty(value = "用户投诉") + private GridDiagramVO user; + + @ApiModelProperty(value = "技术监督计划") + private GridDiagramVO survey; + } } diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/gridDiagram/GridDiagramController.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/gridDiagram/GridDiagramController.java index 20815734e..2dd7672e3 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/gridDiagram/GridDiagramController.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/gridDiagram/GridDiagramController.java @@ -50,4 +50,12 @@ public class GridDiagramController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, supervisionData, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getSupervisionCityDetailsData") + @ApiOperation("技术监督市级详细页面展示") + public HttpResult getSupervisionCityDetailsData(@RequestBody StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getSupervisionCityDetailsData"); + GridDiagramVO.City supervisionData = gridDiagramService.getSupervisionCityDetailsData(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, supervisionData, methodDescribe); + } } diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/gridDiagram/GridDiagramService.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/gridDiagram/GridDiagramService.java index bc35f0926..a3740d097 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/gridDiagram/GridDiagramService.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/gridDiagram/GridDiagramService.java @@ -20,4 +20,11 @@ public interface GridDiagramService { * @return */ List getSupervisionDetailsData(StatisticsBizBaseParam param); + + /** + * 技术监督市级详细页面展示 + * @param param + * @return + */ + GridDiagramVO.City getSupervisionCityDetailsData(StatisticsBizBaseParam param); } diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/gridDiagram/impl/GridDiagramServiceImpl.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/gridDiagram/impl/GridDiagramServiceImpl.java index b26f323c5..40148379c 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/gridDiagram/impl/GridDiagramServiceImpl.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/gridDiagram/impl/GridDiagramServiceImpl.java @@ -83,6 +83,84 @@ public class GridDiagramServiceImpl implements GridDiagramService { return info; } + @Override + public GridDiagramVO.City getSupervisionCityDetailsData(StatisticsBizBaseParam param) { + List deptIds = deptFeignClient.getDepSonIdByDeptId(param.getId()).getData(); + GridDiagramVO.City City = new GridDiagramVO.City(); + //在线监测问题 + List lineWarningList = lineWarningService.list(new LambdaQueryWrapper() + .in(LineWarning::getDeptId, deptIds) + .ge(StrUtil.isNotBlank(param.getStartTime()), LineWarning::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime()))) + .le(StrUtil.isNotBlank(param.getEndTime()), LineWarning::getCreateTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime()))) + ); + //用户投诉问题(添加出来就是有问题的) + List userComplaintList = userComplaintPOService.list(new LambdaQueryWrapper() + .in(SupervisionUserComplaintPO::getDutyOrgId, deptIds) + .eq(SupervisionUserComplaintPO::getState, 1) + .ge(StrUtil.isNotBlank(param.getStartTime()), SupervisionUserComplaintPO::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime()))) + .le(StrUtil.isNotBlank(param.getEndTime()), SupervisionUserComplaintPO::getCreateTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime()))) + ); + //计划问题(有问题的单子) + List surveyTestList = surveyTestService.list(new LambdaQueryWrapper() + .in(SurveyTest::getDeptId, deptIds) + .eq(SurveyTest::getState, 1) + .eq(SurveyTest::getProblemFlag, 1) + .ge(StrUtil.isNotBlank(param.getStartTime()), SurveyTest::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime()))) + .le(StrUtil.isNotBlank(param.getEndTime()), SurveyTest::getCreateTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime()))) + ); + //根据问题单id查询已关联工单 + List problemIds = userComplaintList.stream().map(SupervisionUserComplaintPO::getId).collect(Collectors.toList()); + problemIds.addAll(surveyTestList.stream().map(SurveyTest::getId).collect(Collectors.toList())); + problemIds.addAll(lineWarningList.stream().map(LineWarning::getId).collect(Collectors.toList())); + List list =new ArrayList<>(); + if (CollUtil.isNotEmpty(problemIds)) { + list.addAll(warningLeafletService.list(new LambdaQueryWrapper() + .in(WarningLeaflet::getProblemId, problemIds) + .in(WarningLeaflet::getState, 1)) + ); + } + //在线监测问题 + GridDiagramVO warnVo=new GridDiagramVO(); + List warn = list.stream().filter(x -> lineWarningList.stream().map(LineWarning::getId) + .collect(Collectors.toList()).contains(x.getProblemId())).collect(Collectors.toList()); + warnVo.setAbnormalNum(lineWarningList.size()); + warnVo.setAssociatedNum(warn.size()); + warnVo.setConversionNum(warnVo.getAbnormalNum() == 0 ? 0.0f : NumberUtil.round(warn.size() * 100.0 / warnVo.getAbnormalNum(), 2).floatValue()); + List handleList = warn.stream().filter(x -> x.getStatus() == 2).map(WarningLeaflet::getId).collect(Collectors.toList()); + warnVo.setWorkNum(warn.size()); + warnVo.setProcessedNum(handleList.size()); + warnVo.setDisposalNum(warn.size() == 0 ? 0.0f : NumberUtil.round(handleList.size() * 100.0 / warn.size(), 2).floatValue()); + + //用户投诉问题(添加出来就是有问题的) + GridDiagramVO userVo=new GridDiagramVO(); + List user = list.stream().filter(x -> userComplaintList.stream().map(SupervisionUserComplaintPO::getId) + .collect(Collectors.toList()).contains(x.getProblemId())).collect(Collectors.toList()); + userVo.setAbnormalNum(userComplaintList.size()); + userVo.setAssociatedNum(user.size()); + userVo.setConversionNum(userVo.getAbnormalNum() == 0 ? 0.0f : NumberUtil.round(user.size() * 100.0 / userVo.getAbnormalNum(), 2).floatValue()); + List userHandleList = user.stream().filter(x -> x.getStatus() == 2).map(WarningLeaflet::getId).collect(Collectors.toList()); + userVo.setWorkNum(user.size()); + userVo.setProcessedNum(userHandleList.size()); + userVo.setDisposalNum(user.size() == 0 ? 0.0f : NumberUtil.round(userHandleList.size() * 100.0 / user.size(), 2).floatValue()); + + //计划问题(有问题的单子) + GridDiagramVO surveyVo=new GridDiagramVO(); + List survey = list.stream().filter(x -> surveyTestList.stream().map(SurveyTest::getId) + .collect(Collectors.toList()).contains(x.getProblemId())).collect(Collectors.toList()); + surveyVo.setAbnormalNum(surveyTestList.size()); + surveyVo.setAssociatedNum(survey.size()); + surveyVo.setConversionNum(surveyVo.getAbnormalNum() == 0 ? 0.0f : NumberUtil.round(survey.size() * 100.0 / surveyVo.getAbnormalNum(), 2).floatValue()); + List surveyHandleList = survey.stream().filter(x -> x.getStatus() == 2).map(WarningLeaflet::getId).collect(Collectors.toList()); + surveyVo.setWorkNum(survey.size()); + surveyVo.setProcessedNum(surveyHandleList.size()); + surveyVo.setDisposalNum(survey.size() == 0 ? 0.0f : NumberUtil.round(surveyHandleList.size() * 100.0 / survey.size(), 2).floatValue()); + + City.setOnLine(warnVo); + City.setUser(userVo); + City.setSurvey(surveyVo); + return City; + } + /** * @param deptDTO 子集部门 * @param ids 子集下所有部门信息 @@ -133,11 +211,11 @@ public class GridDiagramServiceImpl implements GridDiagramService { .in(WarningLeaflet::getState, 1) ); gridDiagramVO.setAssociatedNum(list.size()); - gridDiagramVO.setConversionNum(list.size() == 0 ? 0.0f : NumberUtil.round(list.size() * 100.0 / gridDiagramVO.getAbnormalNum(), 2).floatValue()); + gridDiagramVO.setConversionNum(gridDiagramVO.getAbnormalNum() == 0 ? 0.0f : NumberUtil.round(list.size() * 100.0 / gridDiagramVO.getAbnormalNum(), 2).floatValue()); List handleList = list.stream().filter(x -> x.getStatus() == 2).map(WarningLeaflet::getId).collect(Collectors.toList()); gridDiagramVO.setWorkNum(list.size()); gridDiagramVO.setProcessedNum(handleList.size()); - gridDiagramVO.setDisposalNum(handleList.size() == 0 ? 0.0f : NumberUtil.round(handleList.size() * 100.0 / list.size(), 2).floatValue()); + gridDiagramVO.setDisposalNum(list.size() == 0 ? 0.0f : NumberUtil.round(handleList.size() * 100.0 / list.size(), 2).floatValue()); } else { gridDiagramVO.setAssociatedNum(0);