From dedc706e97fb2d9c30376b84e5250f3f91b0e34f Mon Sep 17 00:00:00 2001 From: xusd <330628789@qq.com> Date: Mon, 16 Jun 2025 13:46:57 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 63 ++++++++++++++++++++----------- 1 files changed, 41 insertions(+), 22 deletions(-) diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java index 47b46d7..fe1e6ae 100644 --- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java +++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java @@ -1307,6 +1307,31 @@ return new PageImpl<CasePageDTO>(content, page, total); } + /** + * 统计调解过程 + * 计算案件的调解过程相关统计数据,包括不予受理率、化解中率、化解成功率、化解不成功率等 + * + * @param terms 统计条件 + * @return 包含调解过程统计数据的DTO对象 + */ + public CaseStatisticsBaseDTO statisticsProcess(Map<String, Object> terms) { + CaseStatisticsBaseDTO caseStatisticsBaseDTO = mapper.statisticsBaseProcess(terms); + Integer baseTotalNum = dellNull(caseStatisticsBaseDTO.getRejectNum()) + dellNull(caseStatisticsBaseDTO.getProcessNum()) + dellNull(caseStatisticsBaseDTO.getFinishNum()) + dellNull(caseStatisticsBaseDTO.getFailNum()); + caseStatisticsBaseDTO.setRejectRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getRejectNum() * 100, baseTotalNum, 1)); + caseStatisticsBaseDTO.setProcessRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getProcessNum() * 100, baseTotalNum, 1)); + caseStatisticsBaseDTO.setFinishRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getFinishNum() * 100, baseTotalNum, 1)); + caseStatisticsBaseDTO.setFailRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getFailNum() * 100, baseTotalNum, 1)); + // 如果 baseTotalNum为0 设置 总数为0 + caseStatisticsBaseDTO.setTotalNum(baseTotalNum); + + Integer levelTotalNum = caseStatisticsBaseDTO.getOneLevelNum() + caseStatisticsBaseDTO.getTwoLevelNum() + caseStatisticsBaseDTO.getThreeLevelNum(); + caseStatisticsBaseDTO.setOneLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getOneLevelNum() * 100, levelTotalNum, 1)); + caseStatisticsBaseDTO.setTwoLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getTwoLevelNum() * 100, levelTotalNum, 1)); + caseStatisticsBaseDTO.setThreeLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getThreeLevelNum() * 100, levelTotalNum, 1)); + + return caseStatisticsBaseDTO; + } + /** * 纠纷态势 @@ -1391,16 +1416,8 @@ } //基础数据统计 terms.put("areaType", areaType); - CaseStatisticsBaseDTO caseStatisticsBaseDTO = mapper.statisticsBase(terms); - Integer baseTotalNum = dellNull(caseStatisticsBaseDTO.getResolveNum()) + dellNull(caseStatisticsBaseDTO.getUnResolveNum()) + dellNull(caseStatisticsBaseDTO.getResolveingNum()); - Integer resolveTotalNum = dellNull(caseStatisticsBaseDTO.getResolveNum()) + dellNull(caseStatisticsBaseDTO.getUnResolveNum()); - caseStatisticsBaseDTO.setResolveRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getResolveNum() * 100, resolveTotalNum, 1)); - caseStatisticsBaseDTO.setUnResolveRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getUnResolveNum() * 100, resolveTotalNum, 1)); - caseStatisticsBaseDTO.setResolveingRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getResolveingNum() * 100, baseTotalNum, 1)); - Integer levelTotalNum = caseStatisticsBaseDTO.getOneLevelNum() + caseStatisticsBaseDTO.getTwoLevelNum() + caseStatisticsBaseDTO.getThreeLevelNum(); - caseStatisticsBaseDTO.setOneLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getOneLevelNum() * 100, levelTotalNum, 1)); - caseStatisticsBaseDTO.setTwoLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getTwoLevelNum() * 100, levelTotalNum, 1)); - caseStatisticsBaseDTO.setThreeLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getThreeLevelNum() * 100, levelTotalNum, 1)); + // 调用统计调解过程的方法 + CaseStatisticsBaseDTO caseStatisticsBaseDTO = statisticsProcess(terms); //区域数据统计 List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS = new ArrayList<>(); if (!isLast) { @@ -2199,20 +2216,22 @@ for (String key : originalTypeTerms.keySet()) { terms.put(key, originalTypeTerms.get(key)); } - + + // 调用统计调解过程的方法 + CaseStatisticsBaseDTO processStats = statisticsProcess(terms); + + // 将调解过程统计数据合并到统计结果中 + statistics.setTotalNum(processStats.getTotalNum()); + statistics.setRejectNum(processStats.getRejectNum()); + statistics.setProcessNum(processStats.getProcessNum()); + statistics.setFinishNum(processStats.getFinishNum()); + statistics.setFailNum(processStats.getFailNum()); + statistics.setRejectRate(processStats.getRejectRate()); + statistics.setProcessRate(processStats.getProcessRate()); + statistics.setFinishRate(processStats.getFinishRate()); + statistics.setFailRate(processStats.getFailRate()); // 重新获取纠纷类型统计(基于完整的选择类型条件) List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS = mapper.statisticsTypeFirst(terms); - - // 如果基于选择类型的查询结果为空,则使用全量数据进行纠纷类型统计 - if (ObjectUtils.isEmpty(caseStatisticsTypeDTOS)) { - // 临时移除所有类型筛选条件,获取全量纠纷类型统计 - terms.remove("canal"); - terms.remove("canalSecond"); - terms.remove("canalList"); - terms.remove("canalSecondNot"); - terms.remove("canalSecondAll"); - caseStatisticsTypeDTOS = mapper.statisticsTypeFirst(terms); - } if (ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)) { sortType(caseStatisticsTypeDTOS); -- Gitblit v1.8.0