From 6bde2de72d9e16a7fc1ee204149effb47d9676d9 Mon Sep 17 00:00:00 2001
From: xusd <330628789@qq.com>
Date: Fri, 20 Jun 2025 17:31:33 +0800
Subject: [PATCH] fix:事项来源优化,定时器评价优化

---
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java |   86 +++++++++++++++++++++++++++---------------
 1 files changed, 55 insertions(+), 31 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..109bdd0 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
@@ -317,6 +317,10 @@
             caseInfo.setCaseNo(utilsClient.createCaseNo(ctUnitDTO.getArea()));
             caseInfo.setVisitWay(CaseBaseConstsEnum.getVisitWayByCanal(caseInfo.getCanal()).getIndex());
             caseInfo.setVisitWayName(CaseBaseConstsEnum.getVisitWayByCanal(caseInfo.getCanal()).getDes());
+            if (caseInfo.getCanal().equals(CaseBaseConstsEnum.CASE_CANAL_3.getIndex())) {
+                caseInfo.setCanalSecond(CaseBaseConstsEnum.CASE_CANAL_SECOND_8.getIndex());
+                caseInfo.setCanalSecondName(CaseBaseConstsEnum.CASE_CANAL_SECOND_8.getDes());
+            }
             //默认小程序可见
             if (ObjectUtils.isNotEmpty(caseInfo.getCanal())) {
                 if (CaseBaseConstsEnum.CASE_CANAL_1.getIndex().equals(caseInfo.getCanal())) {
@@ -1134,7 +1138,7 @@
         }
         if (ObjectUtils.isNotEmpty(content)) {
             for (CasePageDTO casePageDTO : content) {
-                if (CaseBaseConstsEnum.CASE_CANAL_4.getIndex().equals(casePageDTO.getCanal())) {
+                if (StringUtils.isNotEmpty(casePageDTO.getCanalSecondName())) {
                     casePageDTO.setCanalName(casePageDTO.getCanalName() + "-" + casePageDTO.getCanalSecondName());
                 }
                 StringBuffer sb = new StringBuffer();
@@ -1307,6 +1311,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 +1420,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) {
@@ -2200,19 +2221,21 @@
             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,9 +2549,9 @@
             } else {
                 terms.put("queryType", 3);
             }
-            log.info("xsd:{}",terms);
+            log.info("xsd:{}", terms);
             CtUnitDTO ctUnitDTO = mapper.getUnitByGridCode(terms);
-            log.info("xsd:ctUnitDTO{}",ctUnitDTO);
+            log.info("xsd:ctUnitDTO{}", ctUnitDTO);
             if (ObjectUtils.isNotEmpty(ctUnitDTO)) {
                 if (StringUtils.isNotBlank(ctUnitDTO.getCity()) && StringUtils.isNotBlank(ctUnitDTO.getCityName())) {
                     registerSaveDTO.setQueCity(ctUnitDTO.getCity());
@@ -2616,11 +2639,12 @@
 
                 // 获取调解案号
                 caseInfo.setCaseNo(utilsClient.createCaseNo(ctUnitDTO.getArea()));
-                caseInfo.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_3.getIndex());
-                caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_3.getDes());
-                caseInfo.setCanal(CaseBaseConstsEnum.CASE_CANAL_4.getIndex());
-                caseInfo.setCanalName(CaseBaseConstsEnum.CASE_CANAL_4.getDes());
-
+                caseInfo.setVisitWay(CaseBaseConstsEnum.VISIT_WAY_4.getIndex());
+                caseInfo.setVisitWayName(CaseBaseConstsEnum.VISIT_WAY_4.getDes());
+                if (StringUtils.isEmpty(caseInfo.getCanal())) {
+                    caseInfo.setCanal(CaseBaseConstsEnum.CASE_CANAL_4.getIndex());
+                    caseInfo.setCanalName(CaseBaseConstsEnum.CASE_CANAL_4.getDes());
+                }
                 caseInfo.setCaseLevel(3);
 //                //获取一级类型
 //                SyCause syCause = sysClient.getParentCaseTypeById(caseInfo.getCaseType());
@@ -2636,9 +2660,9 @@
                 }
                 //todo case_title生成、经纬度转换
                 caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
-                if(registerSaveDTO.getCreateTime()!=null){
+                if (registerSaveDTO.getCreateTime() != null) {
                     caseInfo.setCreateTime(registerSaveDTO.getCreateTime());
-                }else {
+                } else {
                     caseInfo.setCreateTime(nowDate);
                 }
 

--
Gitblit v1.8.0