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);