| | |
| | | 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; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 纠纷态势 |
| | |
| | | } |
| | | //基础数据统计 |
| | | 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) { |
| | |
| | | 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); |
| | |
| | | caseInfo.setCanalName(CaseBaseConstsEnum.CASE_CANAL_4.getDes()); |
| | | |
| | | caseInfo.setCaseLevel(3); |
| | | //获取一级类型 |
| | | SyCause syCause = sysClient.getParentCaseTypeById(caseInfo.getCaseType()); |
| | | if (ObjectUtils.isNotEmpty(syCause)) { |
| | | caseInfo.setCaseTypeFirst(syCause.getId()); |
| | | caseInfo.setCaseTypeFirstName(syCause.getName()); |
| | | } |
| | | // //获取一级类型 |
| | | // SyCause syCause = sysClient.getParentCaseTypeById(caseInfo.getCaseType()); |
| | | // if (ObjectUtils.isNotEmpty(syCause)) { |
| | | // caseInfo.setCaseTypeFirst(syCause.getId()); |
| | | // caseInfo.setCaseTypeFirstName(syCause.getName()); |
| | | // } |
| | | //默认小程序可见 |
| | | if (ObjectUtils.isNotEmpty(caseInfo.getCanal())) { |
| | | if (CaseBaseConstsEnum.CASE_CANAL_1.getIndex().equals(caseInfo.getCanal())) { |