From 9cd7dd1c881f21dd17fbbd7aceb4d60e78149b9c Mon Sep 17 00:00:00 2001 From: xusd <330628789@qq.com> Date: Thu, 19 Jun 2025 20:50:42 +0800 Subject: [PATCH] fix:办理反馈优化;结案审核优化 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 90 +++++++++++++++++++++++++++++---------------- 1 files changed, 58 insertions(+), 32 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 0ede542..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); @@ -2526,7 +2545,9 @@ } else { terms.put("queryType", 3); } + log.info("xsd:{}",terms); CtUnitDTO ctUnitDTO = mapper.getUnitByGridCode(terms); + log.info("xsd:ctUnitDTO{}",ctUnitDTO); if (ObjectUtils.isNotEmpty(ctUnitDTO)) { if (StringUtils.isNotBlank(ctUnitDTO.getCity()) && StringUtils.isNotBlank(ctUnitDTO.getCityName())) { registerSaveDTO.setQueCity(ctUnitDTO.getCity()); @@ -2540,8 +2561,8 @@ registerSaveDTO.setQueRoad(ctUnitDTO.getRoad()); registerSaveDTO.setQueRoadName(ctUnitDTO.getRoadName()); } - registerSaveDTO.setWantUnitId(ctUnitDTO.getId()); - registerSaveDTO.setWantUnitName(ctUnitDTO.getUnitName()); +// registerSaveDTO.setWantUnitId(ctUnitDTO.getId()); +// registerSaveDTO.setWantUnitName(ctUnitDTO.getUnitName()); //网格上报的事件时间一般在凌晨,导致北京时间是昨天,所以+8小时还原为北京时间,确保在同一天内 Date nowDate1 = DateUtils.getNowDate(); @@ -2620,12 +2641,12 @@ 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())) { @@ -2634,7 +2655,12 @@ } //todo case_title生成、经纬度转换 caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1); - caseInfo.setCreateTime(nowDate); + if(registerSaveDTO.getCreateTime()!=null){ + caseInfo.setCreateTime(registerSaveDTO.getCreateTime()); + }else { + caseInfo.setCreateTime(nowDate); + } + caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0); //默认添加省市 caseInfo.setQueProv("19"); @@ -2652,7 +2678,7 @@ if (StringUtils.isNotBlank(registerSaveDTO.getTcqk())) { caseInfoUnfold.setTcqk(registerSaveDTO.getTcqk()); } - caseInfoUnfold.setCreateTime(nowDate); + caseInfoUnfold.setCreateTime(caseInfo.getCreateTime()); caseInfoUnfold.setUpdateTime(nowDate); caseInfoUnfoldService.save(caseInfoUnfold); // 自动调度流程 -- Gitblit v1.8.0