1.全景技术监督数据展示

This commit is contained in:
wr
2024-06-25 09:08:32 +08:00
parent e1c5a07f14
commit 0e548887a4
5 changed files with 110 additions and 3 deletions

View File

@@ -1654,7 +1654,8 @@
</if>
<if test="searchValue!=null and searchValue!='' and type==2">
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}, '%')
)
</if>

View File

@@ -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;
}
}

View File

@@ -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<GridDiagramVO.City> getSupervisionCityDetailsData(@RequestBody StatisticsBizBaseParam param) {
String methodDescribe = getMethodDescribe("getSupervisionCityDetailsData");
GridDiagramVO.City supervisionData = gridDiagramService.getSupervisionCityDetailsData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, supervisionData, methodDescribe);
}
}

View File

@@ -20,4 +20,11 @@ public interface GridDiagramService {
* @return
*/
List<GridDiagramVO.Info> getSupervisionDetailsData(StatisticsBizBaseParam param);
/**
* 技术监督市级详细页面展示
* @param param
* @return
*/
GridDiagramVO.City getSupervisionCityDetailsData(StatisticsBizBaseParam param);
}

View File

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