|
|
|
|
@@ -83,6 +83,84 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
|
|
|
|
return info;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public GridDiagramVO.City getSupervisionCityDetailsData(StatisticsBizBaseParam param) {
|
|
|
|
|
List<String> deptIds = deptFeignClient.getDepSonIdByDeptId(param.getId()).getData();
|
|
|
|
|
GridDiagramVO.City City = new GridDiagramVO.City();
|
|
|
|
|
//在线监测问题
|
|
|
|
|
List<LineWarning> lineWarningList = lineWarningService.list(new LambdaQueryWrapper<LineWarning>()
|
|
|
|
|
.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<SupervisionUserComplaintPO> userComplaintList = userComplaintPOService.list(new LambdaQueryWrapper<SupervisionUserComplaintPO>()
|
|
|
|
|
.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<SurveyTest> surveyTestList = surveyTestService.list(new LambdaQueryWrapper<SurveyTest>()
|
|
|
|
|
.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<String> 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<WarningLeaflet> list =new ArrayList<>();
|
|
|
|
|
if (CollUtil.isNotEmpty(problemIds)) {
|
|
|
|
|
list.addAll(warningLeafletService.list(new LambdaQueryWrapper<WarningLeaflet>()
|
|
|
|
|
.in(WarningLeaflet::getProblemId, problemIds)
|
|
|
|
|
.in(WarningLeaflet::getState, 1))
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
//在线监测问题
|
|
|
|
|
GridDiagramVO warnVo=new GridDiagramVO();
|
|
|
|
|
List<WarningLeaflet> 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<String> 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<WarningLeaflet> 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<String> 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<WarningLeaflet> 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<String> 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<String> 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);
|
|
|
|
|
|