From c490640493f04e2ed0fc5c4c8fbc92ebdd4d5380 Mon Sep 17 00:00:00 2001
From: xusd <330628789@qq.com>
Date: Tue, 24 Jun 2025 21:06:48 +0800
Subject: [PATCH] Merge branch 'gzdyh_prod'

---
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java |  612 ++++++++++++++++++++++--------------------------------
 1 files changed, 251 insertions(+), 361 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 bd84d87..aa55dba 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
@@ -311,13 +311,19 @@
             generateQrCodeRequestVo.setBusinessSource("02");
             generateQrCodeRequestVo.setGenerateUnifiedCode(true);
             generateQrCodeRequestVo.setInfoSource("03");
-            String area = this.formatGridCode(ctUnitDTO.getArea());
+            log.info("xsdgridCode:{}",registerSaveDTO.getQueArea());
+            String area = this.formatGridCode(registerSaveDTO.getQueArea());
+            log.info("xsdgridCode:{}",area);
             generateQrCodeRequestVo.setGridCode(area);
             caseInfo.setCaseRef(sysClient.getCaseRefByGenerateQrCode(generateQrCodeRequestVo));
             // 获取调解案号
             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())) {
@@ -1135,7 +1141,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();
@@ -1308,10 +1314,10 @@
         return new PageImpl<CasePageDTO>(content, page, total);
     }
 
-        /**
+    /**
      * 统计调解过程
      * 计算案件的调解过程相关统计数据,包括不予受理率、化解中率、化解成功率、化解不成功率等
-     * 
+     *
      * @param terms 统计条件
      * @return 包含调解过程统计数据的DTO对象
      */
@@ -1324,15 +1330,15 @@
         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;
     }
-    
+
 
     /**
      * 纠纷态势
@@ -1498,29 +1504,8 @@
             }
             areaTotal = areaTotal + caseStatisticsAreaDTO.getCaseNum();
 
-            //本及:承办单位是本及和没有承办单位并且没有下级区域编码
-//            if(ObjectUtils.isEmpty(caseStatisticsAreaDTO.getAreaCode()) || unitGrades.contains(caseStatisticsAreaDTO.getUnitGrade())){
-//                allArea.setCaseNum(dellNull(caseStatisticsAreaDTO.getCaseNum()) + dellNull(allArea.getCaseNum()));
-//                allArea.setResolveNum(dellNull(caseStatisticsAreaDTO.getResolveNum()) + dellNull(allArea.getResolveNum()));
-//                allArea.setUnResolveNum(dellNull(caseStatisticsAreaDTO.getUnResolveNum()) + dellNull(allArea.getUnResolveNum()));
-//                allArea.setResolveingNum(dellNull(caseStatisticsAreaDTO.getResolveingNum()) + dellNull(allArea.getResolveingNum()));
-//            }else{
-//                areaList.add(caseStatisticsAreaDTO);
-//                areaCodeList.add(caseStatisticsAreaDTO.getAreaCode());
-//            }
         }
         areaList.add(allArea);
-//        if ("1".equals(areaType)) {
-//            Map<String, String> area = getArea();
-//            for (String areaName : area.keySet()) {
-//                if (!areaNames.contains(areaName)) {
-//                    CaseStatisticsAreaDTO areaChild = new CaseStatisticsAreaDTO();
-//                    areaChild.setAreaCode(area.get(areaName));
-//                    areaChild.setAreaName(areaName);
-//                    areaList.add(areaChild);
-//                }
-//            }
-//        }
 
         List<QueAreaDTO> queArea = listAreaByType(areaCode);
         log.info("listAreaByType {}", JSON.toJSONString(queArea));
@@ -1559,12 +1544,6 @@
             } else {
                 otherCaseNum = otherCaseNum + dellNull(caseStatisticsTypeDTO.getCaseNum());
             }
-//            if (i > 5) {
-//                otherCaseNum = otherCaseNum + dellNull(caseStatisticsTypeDTO.getCaseNum());
-//            } else {
-//                typeList.add(caseStatisticsTypeDTO);
-//            }
-
         }
         for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : typeList) {
             caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1));
@@ -2292,34 +2271,220 @@
         return caseOverviewDetailDTOs;
     }
 
-    public CaseStatisticsBaseDTO ledger(Map<String, Object> terms, String userId) throws IOException {
-        // 备份原始的类型筛选条件,用于后续恢复
-        Map<String, Object> originalTypeTerms = new HashMap<>();
-        if (terms.containsKey("canal")) {
-            originalTypeTerms.put("canal", terms.get("canal"));
+    public CaseStatisticsBaseDTO ledger(Map<String, Object> terms, String userId,String ledgerType) throws IOException {
+        terms.put("statistics", "1");
+
+        CtUnitDTO ctUnitDTO = null;
+        if (ObjectUtils.isNotEmpty(userId)) {
+            ctUnitDTO = custClient.getUnitByUserId(userId);
         }
-        if (terms.containsKey("canalSecond")) {
-            originalTypeTerms.put("canalSecond", terms.get("canalSecond"));
-        }
-        if (terms.containsKey("canalList")) {
-            originalTypeTerms.put("canalList", terms.get("canalList"));
-        }
-        if (terms.containsKey("canalSecondNot")) {
-            originalTypeTerms.put("canalSecondNot", terms.get("canalSecondNot"));
-        }
-        if (terms.containsKey("canalSecondAll")) {
-            originalTypeTerms.put("canalSecondAll", terms.get("canalSecondAll"));
+        String areaCode = null;
+        //目前没有村居数据,所以单位等级是4的也归集到3里面
+        if (ObjectUtils.isNotEmpty(ctUnitDTO)) {
+            if (ctUnitDTO.getUnitGrade().equals(1)) {
+                terms.put("queCity", ctUnitDTO.getCity());
+            } else if (ctUnitDTO.getUnitGrade().equals(2)) {
+                terms.put("queArea", ctUnitDTO.getArea());
+            } else if (ctUnitDTO.getUnitGrade().equals(3)) {
+                terms.put("queRoad", ctUnitDTO.getRoad());
+            } else if (ctUnitDTO.getUnitGrade().equals(4)) {
+                terms.put("queVillage", ctUnitDTO.getVillage());
+            }
         }
 
-        // 临时移除类型筛选条件,以便 statistics 获取全量数据
-        terms.remove("canal");
-        terms.remove("canalSecond");
-        terms.remove("canalList");
-        terms.remove("canalSecondNot");
-        terms.remove("canalSecondAll");
+        //目前没有村居,所以区和街道进来都是按街道展示
+        String areaType = null;
+        String childAreaType = null;
+        List<Integer> unitGrades = new ArrayList<>();
+        List<Integer> childUnitGrades = new ArrayList<>();
+        String childUnitGradeStr = null;
+        String unitGradeStr = null;
+        Boolean isLast = false;
+        if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) {
+            terms.remove("queArea");
+            terms.remove("queCity");
+            terms.remove("queRoad");
+            areaType = "4";
+            childAreaType = "5";
+            areaCode = terms.get("queVillage") + "";
+            unitGrades.add(4);
+            childUnitGrades.add(5);
+            childUnitGradeStr = "5";
+            unitGradeStr = "4";
+            isLast = true;
+        } else if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) {
+            terms.remove("queArea");
+            terms.remove("queCity");
+            areaType = "3";
+            childAreaType = "4";
+            areaCode = terms.get("queRoad") + "";
+            unitGrades.add(3);
+            childUnitGrades.add(4);
+            childUnitGradeStr = "4";
+            unitGradeStr = "3";
+        } else if (ObjectUtils.isNotEmpty(terms.get("queArea"))) {
+            terms.remove("queCity");
+            areaType = "2";
+            childAreaType = "3";
+            areaCode = terms.get("queArea") + "";
+            unitGrades.add(2);
+            childUnitGrades.add(3);
+            childUnitGrades.add(4);
+            childUnitGradeStr = "3,4";
+            unitGradeStr = "2";
+        } else {
+            areaType = "1";
+            childAreaType = "2";
+            unitGrades.add(1);
+            childUnitGrades.add(2);
+            childUnitGrades.add(3);
+            childUnitGrades.add(4);
+            if (ObjectUtils.isNotEmpty(ctUnitDTO)) {
+                areaCode = ctUnitDTO.getCity();
+            } else {
+                areaCode = "440100";
+            }
+            childUnitGradeStr = "2,3,4";
+            unitGradeStr = "1";
+        }
+        //基础数据统计
+        terms.put("areaType", areaType);
+        // 调用统计调解过程的方法
+        CaseStatisticsBaseDTO caseStatisticsBaseDTO = new CaseStatisticsBaseDTO();
+        List<String> areaCodeList = new ArrayList<>();
+        List<CaseStatisticsAreaDTO> areaList = new ArrayList<>();
 
+        //本系统或者全部的时候才去查询数据
+        if(ObjectUtils.isEmpty(ledgerType) || "1".equals(ledgerType)){
+            caseStatisticsBaseDTO = statisticsProcess(terms);
+
+            //区域数据统计
+            List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS = new ArrayList<>();
+            if (!isLast) {
+                terms.put("areaType", childAreaType);
+                terms.put("unitGrades", childUnitGrades);
+                caseStatisticsAreaDTOS = mapper.statisticsArea(terms);
+                if (ObjectUtils.isEmpty(caseStatisticsAreaDTOS)) {
+                    caseStatisticsAreaDTOS = new ArrayList<>();
+                } else {
+                    for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : caseStatisticsAreaDTOS) {
+                        caseStatisticsAreaDTO.setAreaType(childAreaType);
+                        caseStatisticsAreaDTO.setUnitGrades(childUnitGradeStr);
+                        if ("4".equals(childAreaType)) {
+                            caseStatisticsAreaDTO.setQueVillage(caseStatisticsAreaDTO.getAreaCode());
+                        } else if ("3".equals(childAreaType)) {
+                            caseStatisticsAreaDTO.setQueRoad(caseStatisticsAreaDTO.getAreaCode());
+                        } else if ("2".equals(childAreaType)) {
+                            caseStatisticsAreaDTO.setQueArea(caseStatisticsAreaDTO.getAreaCode());
+                        }
+                    }
+                }
+            }
+
+            //本级区数据
+            terms.put("areaType", areaType);
+            terms.put("unitGrades", unitGrades);
+            List<CaseStatisticsAreaDTO> allAreas = mapper.statisticsArea(terms);
+            CaseStatisticsAreaDTO allArea = new CaseStatisticsAreaDTO();
+            if (ObjectUtils.isNotEmpty(allAreas)) {
+                allArea = allAreas.get(0);
+            }
+            terms.remove("unitGrades");
+            allArea.setAreaName("本级");
+            allArea.setAreaCode("0");
+            allArea.setAreaType(areaType);
+            allArea.setUnitGrades(unitGradeStr);
+            if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) {
+                allArea.setQueVillage(terms.get("queVillage") + "");
+            }
+            if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) {
+                allArea.setQueRoad(terms.get("queRoad") + "");
+            }
+            if (ObjectUtils.isNotEmpty(terms.get("queArea"))) {
+                allArea.setQueArea(terms.get("queArea") + "");
+            }
+            if (ObjectUtils.isNotEmpty(terms.get("queCity"))) {
+                allArea.setQueCity(terms.get("queCity") + "");
+            }
+
+            List<String> areaNames = new ArrayList<>();//为兼容白云区数据
+            Integer areaTotal = allArea.getCaseNum();
+            for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : caseStatisticsAreaDTOS) {
+                areaNames.add(caseStatisticsAreaDTO.getAreaName());
+                if (ObjectUtils.isEmpty(caseStatisticsAreaDTO.getAreaCode())) {
+                    allArea.setCaseNum(dellNull(caseStatisticsAreaDTO.getCaseNum()) + dellNull(allArea.getCaseNum()));
+                    allArea.setResolveNum(dellNull(caseStatisticsAreaDTO.getResolveNum()) + dellNull(allArea.getResolveNum()));
+                    allArea.setUnResolveNum(dellNull(caseStatisticsAreaDTO.getUnResolveNum()) + dellNull(allArea.getUnResolveNum()));
+                    allArea.setResolveingNum(dellNull(caseStatisticsAreaDTO.getResolveingNum()) + dellNull(allArea.getResolveingNum()));
+                    allArea.setRejectNum(dellNull(caseStatisticsAreaDTO.getRejectNum()) + dellNull(allArea.getRejectNum()));
+                } else {
+                    areaList.add(caseStatisticsAreaDTO);
+                    areaCodeList.add(caseStatisticsAreaDTO.getAreaCode());
+                }
+                areaTotal = areaTotal + caseStatisticsAreaDTO.getCaseNum();
+
+            }
+            areaList.add(allArea);
+
+            //纠纷类型统计
+            List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS = mapper.statisticsTypeFirst(terms);
+            if (ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)) {
+                sortType(caseStatisticsTypeDTOS);
+            }
+            Integer typeTotalNum = 0;
+            Integer otherCaseNum = 0;
+            int i = 1;
+            List<CaseStatisticsTypeDTO> typeList = new ArrayList<>();
+            for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) {
+                typeTotalNum = typeTotalNum + dellNull(caseStatisticsTypeDTO.getCaseNum());
+                if (i < 6 && !"其他".equals(caseStatisticsTypeDTO.getCaseTypeName())) {
+                    typeList.add(caseStatisticsTypeDTO);
+                    i++;
+                } else {
+                    otherCaseNum = otherCaseNum + dellNull(caseStatisticsTypeDTO.getCaseNum());
+                }
+            }
+            for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : typeList) {
+                caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1));
+            }
+            if (otherCaseNum > 0) {
+                CaseStatisticsTypeDTO caseStatisticsTypeDTO = new CaseStatisticsTypeDTO();
+                caseStatisticsTypeDTO.setCaseTypeName("其他");
+                caseStatisticsTypeDTO.setCaseNum(otherCaseNum);
+                caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1));
+                typeList.add(caseStatisticsTypeDTO);
+                caseStatisticsBaseDTO.setTypeList(typeList);
+            }
+        }
+
+        List<QueAreaDTO> queArea = listAreaByType(areaCode);
+        log.info("listAreaByType {}", JSON.toJSONString(queArea));
+        for (QueAreaDTO caseAreaDTO : queArea) {
+            if (!areaCodeList.contains(caseAreaDTO.getAreaCode())) {
+                CaseStatisticsAreaDTO areaChild = new CaseStatisticsAreaDTO();
+                areaChild.setAreaCode(caseAreaDTO.getAreaCode());
+                areaChild.setAreaName(caseAreaDTO.getAreaName());
+                areaChild.setCaseNum(0);
+                areaChild.setResolveNum(0);
+                areaChild.setUnResolveNum(0);
+                areaChild.setResolveingNum(0);
+                areaList.add(areaChild);
+            }
+        }
+
+        if (ObjectUtils.isNotEmpty(areaList)) {
+            sortArea(areaList);
+        }
+
+        caseStatisticsBaseDTO.setAreaList(areaList);
+
+
+        return caseStatisticsBaseDTO;
+    }
+
+    public CaseStatisticsBaseDTO ledgerCount(Map<String, Object> terms, String userId) throws IOException {
         // 获取全量基础统计数据
-        CaseStatisticsBaseDTO statistics = statistics(terms, userId);
+        CaseStatisticsBaseDTO statistics = new CaseStatisticsBaseDTO();
 
         terms.put("statistics", "1");
         //根据用户筛选区域范围
@@ -2356,316 +2521,40 @@
         terms.remove("canalSecond");
         terms.remove("canal");
         terms.put("areaType", areaType);
-        terms.put("canalList", Arrays.asList("22_00001-1", "22_00001-2", "22_00001-3"));
         CaseStatisticsBaseDTO caseStatisticsBaseDTO1 = mapper.statisticsBase(terms);
         statistics.setSysNum(caseStatisticsBaseDTO1.getTotalNum());
-        terms.remove("canalList");
-        terms.put("canal", "22_00001-4");
-        terms.put("canalSecond", "22_00003-3");
-        CaseStatisticsBaseDTO caseStatisticsBaseDTO2 = mapper.statisticsBase(terms);
-        statistics.setOttffNum(caseStatisticsBaseDTO2.getTotalNum());
-        terms.put("canalSecond", "22_00003-4");
-        CaseStatisticsBaseDTO caseStatisticsBaseDTO3 = mapper.statisticsBase(terms);
-        statistics.setRmtjNum(caseStatisticsBaseDTO3.getTotalNum());
-        terms.put("canalSecond", "22_00003-6");
-        CaseStatisticsBaseDTO caseStatisticsBaseDTO4 = mapper.statisticsBase(terms);
-        statistics.setXfNum(caseStatisticsBaseDTO4.getTotalNum());
-        terms.put("canalSecond", "22_00003-5");
-        CaseStatisticsBaseDTO caseStatisticsBaseDTO5 = mapper.statisticsBase(terms);
-        statistics.setLdzcNum(caseStatisticsBaseDTO5.getTotalNum());
-        terms.put("canalSecond", "22_00003-1");
-        CaseStatisticsBaseDTO caseStatisticsBaseDTO6 = mapper.statisticsBase(terms);
-        statistics.setFjwjfNum(caseStatisticsBaseDTO6.getTotalNum());
 
-        // 重新计算纠纷类型统计,基于用户选择的类型
-        terms.remove("canalSecond");
-        terms.remove("canal");
-        terms.remove("canalList");
-        terms.remove("canalSecondNot");
-        terms.remove("canalSecondAll");
-
-        // 恢复所有原始类型筛选条件进行纠纷类型统计
-        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.isNotEmpty(caseStatisticsTypeDTOS)) {
-            sortType(caseStatisticsTypeDTOS);
-        }
-        Integer typeTotalNum = 0;
-        Integer otherCaseNum = 0;
-        int i = 1;
-        List<CaseStatisticsTypeDTO> typeList = new ArrayList<>();
-        for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) {
-            typeTotalNum = typeTotalNum + dellNull(caseStatisticsTypeDTO.getCaseNum());
-            if (i < 6 && !"其他".equals(caseStatisticsTypeDTO.getCaseTypeName())) {
-                typeList.add(caseStatisticsTypeDTO);
-                i++;
-            } else {
-                otherCaseNum = otherCaseNum + dellNull(caseStatisticsTypeDTO.getCaseNum());
-            }
-        }
-        for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : typeList) {
-            caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1));
-        }
-        if (otherCaseNum > 0) {
-            CaseStatisticsTypeDTO caseStatisticsTypeDTO = new CaseStatisticsTypeDTO();
-            caseStatisticsTypeDTO.setCaseTypeName("其他");
-            caseStatisticsTypeDTO.setCaseNum(otherCaseNum);
-            caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1));
-            typeList.add(caseStatisticsTypeDTO);
-        }
-        statistics.setTypeList(typeList);
+//        terms.remove("canalList");
+//        terms.put("canal", "22_00001-4");
+//        terms.put("canalSecond", "22_00003-3");
+//        CaseStatisticsBaseDTO caseStatisticsBaseDTO2 = mapper.statisticsBase(terms);
+//        statistics.setOttffNum(caseStatisticsBaseDTO2.getTotalNum());
+//        terms.put("canalSecond", "22_00003-4");
+//        CaseStatisticsBaseDTO caseStatisticsBaseDTO3 = mapper.statisticsBase(terms);
+//        statistics.setRmtjNum(caseStatisticsBaseDTO3.getTotalNum());
+//        terms.put("canalSecond", "22_00003-6");
+//        CaseStatisticsBaseDTO caseStatisticsBaseDTO4 = mapper.statisticsBase(terms);
+//        statistics.setXfNum(caseStatisticsBaseDTO4.getTotalNum());
+//        terms.put("canalSecond", "22_00003-5");
+//        CaseStatisticsBaseDTO caseStatisticsBaseDTO5 = mapper.statisticsBase(terms);
+//        statistics.setLdzcNum(caseStatisticsBaseDTO5.getTotalNum());
+//        terms.put("canalSecond", "22_00003-1");
+//        CaseStatisticsBaseDTO caseStatisticsBaseDTO6 = mapper.statisticsBase(terms);
+//        statistics.setTzfjwjfNum(caseStatisticsBaseDTO6.getTotalNum());
 
         // 根据原始类型筛选条件计算总数和比率
         // 注意:比率计算应该始终基于所有类型的总数,而不是选择的特定类型数量
-        Integer allNum = statistics.getSysNum() + statistics.getOttffNum() + statistics.getRmtjNum() + statistics.getXfNum() + statistics.getLdzcNum() + statistics.getFjwjfNum();
+        Integer allNum = statistics.getSysNum() + statistics.getOttffNum() + statistics.getRmtjNum() + statistics.getXfNum() + statistics.getLdzcNum() + statistics.getTzfjwjfNum();
 
         statistics.setSysRate(BigDecimalUtil.integerDivideDelZero(statistics.getSysNum() * 100, allNum, 1));
         statistics.setOttffRate(BigDecimalUtil.integerDivideDelZero(statistics.getOttffNum() * 100, allNum, 1));
         statistics.setRmtjRate(BigDecimalUtil.integerDivideDelZero(statistics.getRmtjNum() * 100, allNum, 1));
         statistics.setXfRate(BigDecimalUtil.integerDivideDelZero(statistics.getXfNum() * 100, allNum, 1));
         statistics.setLdzcRate(BigDecimalUtil.integerDivideDelZero(statistics.getLdzcNum() * 100, allNum, 1));
-        statistics.setFjwjfRate(BigDecimalUtil.integerDivideDelZero(statistics.getFjwjfNum() * 100, allNum, 1));
+        statistics.setTzfjwjfRate(BigDecimalUtil.integerDivideDelZero(statistics.getTzfjwjfNum() * 100, allNum, 1));
         statistics.setAllNum(allNum);
-
-        // 重新计算地区统计(areaList),基于用户选择的类型
-        // 清除之前的筛选条件
-        terms.remove("canal");
-        terms.remove("canalSecond");
-        terms.remove("canalList");
-        terms.remove("canalSecondNot");
-        terms.remove("canalSecondAll");
-
-        // 恢复所有原始类型筛选条件进行地区统计
-        for (String key : originalTypeTerms.keySet()) {
-            terms.put(key, originalTypeTerms.get(key));
-        }
-
-        // 从原有逻辑中获取区域相关变量
-        String childAreaType = null;
-        List<Integer> childUnitGrades = new ArrayList<>();
-        String childUnitGradeStr = null;
-        String unitGradeStr = null;
-        Boolean isLast = false;
-        List<Integer> unitGrades = new ArrayList<>();
-
-        if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) {
-            childAreaType = "5";
-            childUnitGrades.add(5);
-            childUnitGradeStr = "5";
-            unitGradeStr = "4";
-            unitGrades.add(4);
-            isLast = true;
-        } else if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) {
-            childAreaType = "4";
-            childUnitGrades.add(4);
-            childUnitGradeStr = "4";
-            unitGradeStr = "3";
-            unitGrades.add(3);
-        } else if (ObjectUtils.isNotEmpty(terms.get("queArea"))) {
-            childAreaType = "3";
-            childUnitGrades.add(3);
-            childUnitGrades.add(4);
-            childUnitGradeStr = "3,4";
-            unitGradeStr = "2";
-            unitGrades.add(2);
-        } else {
-            childAreaType = "2";
-            childUnitGrades.add(2);
-            childUnitGrades.add(3);
-            childUnitGrades.add(4);
-            childUnitGradeStr = "2,3,4";
-            unitGradeStr = "1";
-            unitGrades.add(1);
-        }
-
-        // 重新计算地区统计
-        List<CaseStatisticsAreaDTO> areaStatistics = new ArrayList<>();
-        if (!isLast) {
-            terms.put("areaType", childAreaType);
-            terms.put("unitGrades", childUnitGrades);
-            areaStatistics = mapper.statisticsArea(terms);
-            if (ObjectUtils.isEmpty(areaStatistics)) {
-                areaStatistics = new ArrayList<>();
-            } else {
-                for (CaseStatisticsAreaDTO areaDTO : areaStatistics) {
-                    areaDTO.setAreaType(childAreaType);
-                    areaDTO.setUnitGrades(childUnitGradeStr);
-                    if ("4".equals(childAreaType)) {
-                        areaDTO.setQueVillage(areaDTO.getAreaCode());
-                    } else if ("3".equals(childAreaType)) {
-                        areaDTO.setQueRoad(areaDTO.getAreaCode());
-                    } else if ("2".equals(childAreaType)) {
-                        areaDTO.setQueArea(areaDTO.getAreaCode());
-                    }
-                }
-            }
-        }
-
-        // 本级区数据
-        terms.put("areaType", areaType);
-        terms.put("unitGrades", unitGrades);
-        List<CaseStatisticsAreaDTO> allAreas = mapper.statisticsArea(terms);
-        CaseStatisticsAreaDTO allArea = new CaseStatisticsAreaDTO();
-        if (ObjectUtils.isNotEmpty(allAreas)) {
-            allArea = allAreas.get(0);
-        }
-        terms.remove("unitGrades");
-        allArea.setAreaName("本级");
-        allArea.setAreaCode("0");
-        allArea.setAreaType(areaType);
-        allArea.setUnitGrades(unitGradeStr);
-        if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) {
-            allArea.setQueVillage(terms.get("queVillage") + "");
-        }
-        if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) {
-            allArea.setQueRoad(terms.get("queRoad") + "");
-        }
-        if (ObjectUtils.isNotEmpty(terms.get("queArea"))) {
-            allArea.setQueArea(terms.get("queArea") + "");
-        }
-        if (ObjectUtils.isNotEmpty(terms.get("queCity"))) {
-            allArea.setQueCity(terms.get("queCity") + "");
-        }
-
-        List<String> areaCodeList = new ArrayList<>();
-        List<CaseStatisticsAreaDTO> areaList = new ArrayList<>();
-        for (CaseStatisticsAreaDTO areaDTO : areaStatistics) {
-            if (ObjectUtils.isEmpty(areaDTO.getAreaCode())) {
-                allArea.setCaseNum(dellNull(areaDTO.getCaseNum()) + dellNull(allArea.getCaseNum()));
-                allArea.setResolveNum(dellNull(areaDTO.getResolveNum()) + dellNull(allArea.getResolveNum()));
-                allArea.setUnResolveNum(dellNull(areaDTO.getUnResolveNum()) + dellNull(allArea.getUnResolveNum()));
-                allArea.setResolveingNum(dellNull(areaDTO.getResolveingNum()) + dellNull(allArea.getResolveingNum()));
-                allArea.setRejectNum(dellNull(areaDTO.getRejectNum()) + dellNull(allArea.getRejectNum()));
-            } else {
-                areaList.add(areaDTO);
-                areaCodeList.add(areaDTO.getAreaCode());
-            }
-        }
-        areaList.add(allArea);
-
-        // 添加没有数据的区域(数量为0)
-        String areaCode = null;
-        if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) {
-            areaCode = terms.get("queVillage") + "";
-        } else if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) {
-            areaCode = terms.get("queRoad") + "";
-        } else if (ObjectUtils.isNotEmpty(terms.get("queArea"))) {
-            areaCode = terms.get("queArea") + "";
-        } else {
-            areaCode = terms.get("queCity") != null ? terms.get("queCity") + "" : "440100";
-        }
-
-        List<QueAreaDTO> queArea = listAreaByType(areaCode);
-        for (QueAreaDTO caseAreaDTO : queArea) {
-            if (!areaCodeList.contains(caseAreaDTO.getAreaCode())) {
-                CaseStatisticsAreaDTO areaChild = new CaseStatisticsAreaDTO();
-                areaChild.setAreaCode(caseAreaDTO.getAreaCode());
-                areaChild.setAreaName(caseAreaDTO.getAreaName());
-                areaChild.setCaseNum(0);
-                areaChild.setResolveNum(0);
-                areaChild.setUnResolveNum(0);
-                areaChild.setResolveingNum(0);
-                areaList.add(areaChild);
-            }
-        }
-
-        if (ObjectUtils.isNotEmpty(areaList)) {
-            sortArea(areaList);
-        }
-
-        // 更新statistics中的areaList
-        statistics.setAreaList(areaList);
-
         return statistics;
     }
-
-    // public CaseStatisticsBaseDTO ledger(Map<String, Object> terms, String userId) throws IOException {
-    //     CaseStatisticsBaseDTO statistics = statistics(terms, userId);
-    //
-    //     terms.put("statistics", "1");
-    //     //根据用户筛选区域范围
-    //     CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId);
-    //     //目前没有村居数据,所以单位等级是4的也归集到3里面
-    //     String areaType = null;
-    //     terms.remove("unitGrade");
-    //     terms.remove("canal");
-    //     if (ctUnitDTO.getUnitGrade().equals(1)) {
-    //         terms.put("queCity", ctUnitDTO.getCity());
-    //     } else if (ctUnitDTO.getUnitGrade().equals(2)) {
-    //         terms.put("queArea", ctUnitDTO.getArea());
-    //     } else if (ctUnitDTO.getUnitGrade().equals(3)) {
-    //         terms.put("queRoad", ctUnitDTO.getRoad());
-    //     } else if (ctUnitDTO.getUnitGrade().equals(4)) {
-    //         terms.put("queVillage", ctUnitDTO.getRoad());
-    //     }
-    //     if (ObjectUtils.isNotEmpty(terms.get("queVillage"))) {
-    //         terms.remove("queArea");
-    //         terms.remove("queCity");
-    //         terms.remove("queRoad");
-    //         areaType = "4";
-    //     } else if (ObjectUtils.isNotEmpty(terms.get("queRoad"))) {
-    //         terms.remove("queArea");
-    //         terms.remove("queCity");
-    //         areaType = "3";
-    //     } else if (ObjectUtils.isNotEmpty(terms.get("queArea"))) {
-    //         terms.remove("queCity");
-    //         areaType = "2";
-    //     } else {
-    //         areaType = "1";
-    //     }
-    //     //基础数据统计
-    //     terms.remove("canalSecond");
-    //     terms.remove("canal");
-    //     terms.put("areaType", areaType);
-    //     terms.put("canalList", Arrays.asList("22_00001-1", "22_00001-2", "22_00001-3"));
-    //     CaseStatisticsBaseDTO caseStatisticsBaseDTO1 = mapper.statisticsBase(terms);
-    //     statistics.setSysNum(caseStatisticsBaseDTO1.getTotalNum());
-    //     terms.remove("canalList");
-    //     terms.put("canal", "22_00001-4");
-    //     terms.put("canalSecond", "22_00003-3");
-    //     CaseStatisticsBaseDTO caseStatisticsBaseDTO2 = mapper.statisticsBase(terms);
-    //     statistics.setOttffNum(caseStatisticsBaseDTO2.getTotalNum());
-    //     terms.put("canalSecond", "22_00003-4");
-    //     CaseStatisticsBaseDTO caseStatisticsBaseDTO3 = mapper.statisticsBase(terms);
-    //     statistics.setRmtjNum(caseStatisticsBaseDTO3.getTotalNum());
-    //     terms.put("canalSecond", "22_00003-6");
-    //     CaseStatisticsBaseDTO caseStatisticsBaseDTO4 = mapper.statisticsBase(terms);
-    //     statistics.setXfNum(caseStatisticsBaseDTO4.getTotalNum());
-    //     terms.put("canalSecond", "22_00003-5");
-    //     CaseStatisticsBaseDTO caseStatisticsBaseDTO5 = mapper.statisticsBase(terms);
-    //     statistics.setLdzcNum(caseStatisticsBaseDTO5.getTotalNum());
-    //     terms.put("canalSecond", "22_00003-1");
-    //     CaseStatisticsBaseDTO caseStatisticsBaseDTO6 = mapper.statisticsBase(terms);
-    //     statistics.setFjwjfNum(caseStatisticsBaseDTO6.getTotalNum());
-    //
-    //     Integer allNum = statistics.getSysNum() + statistics.getOttffNum() + statistics.getRmtjNum() + statistics.getXfNum() + statistics.getLdzcNum() + statistics.getFjwjfNum();
-    //     statistics.setSysRate(BigDecimalUtil.integerDivideDelZero(statistics.getSysNum() * 100, allNum, 1));
-    //     statistics.setOttffRate(BigDecimalUtil.integerDivideDelZero(statistics.getOttffNum() * 100, allNum, 1));
-    //     statistics.setRmtjRate(BigDecimalUtil.integerDivideDelZero(statistics.getRmtjNum() * 100, allNum, 1));
-    //     statistics.setXfRate(BigDecimalUtil.integerDivideDelZero(statistics.getXfNum() * 100, allNum, 1));
-    //     statistics.setLdzcRate(BigDecimalUtil.integerDivideDelZero(statistics.getLdzcNum() * 100, allNum, 1));
-    //     statistics.setFjwjfRate(BigDecimalUtil.integerDivideDelZero(statistics.getFjwjfNum() * 100, allNum, 1));
-    //     statistics.setAllNum(allNum);
-    //     return statistics;
-    // }
 
     /**
      * 按系列案编号查询
@@ -2717,9 +2606,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());
@@ -2807,11 +2696,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());
@@ -2827,9 +2717,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