From 140170b48b50c33dc68558dc7d97ccd65bffbc7d Mon Sep 17 00:00:00 2001
From: zhouxiantao <1026371446@qq.com>
Date: Sat, 21 Jun 2025 15:59:53 +0800
Subject: [PATCH] fix:解纷态势和纠纷台账的调整

---
 dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/CtUnitTreeDTO.java                      |    1 
 dyh-service/dyh-cust/src/main/java/cn/huge/module/utils/TreeUtils.java                               |   47 ++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseStatisticsBaseDTO.java     |   17 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java |   98 ++-----
 sql/20250620.sql                                                                                     |   17 +
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml         |   38 +-
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java              |  573 ++++++++++++++++------------------------
 7 files changed, 343 insertions(+), 448 deletions(-)

diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/CtUnitTreeDTO.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/CtUnitTreeDTO.java
index 0be3a84..32174d9 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/CtUnitTreeDTO.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/ctuser/dto/CtUnitTreeDTO.java
@@ -14,5 +14,6 @@
     private String label;//对象名称
     private String parentId;//父类ID
     private Boolean checkable;
+    private Double sort;//排序
     private List<CtUnitTreeDTO> children;//子类集合
 }
diff --git a/dyh-service/dyh-cust/src/main/java/cn/huge/module/utils/TreeUtils.java b/dyh-service/dyh-cust/src/main/java/cn/huge/module/utils/TreeUtils.java
index 2fd2b10..f262adb 100644
--- a/dyh-service/dyh-cust/src/main/java/cn/huge/module/utils/TreeUtils.java
+++ b/dyh-service/dyh-cust/src/main/java/cn/huge/module/utils/TreeUtils.java
@@ -4,9 +4,7 @@
 import cn.huge.module.ctuser.dto.CtUnitTreeDTO;
 import org.apache.commons.collections.CollectionUtils;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 /**
  * @author zhouxiantao
@@ -60,20 +58,22 @@
         List<CtUnitTreeDTO> termsList = new ArrayList<>();
         if(ObjectUtils.isNotEmpty(termsSet)){
             for (CtUnitTreeDTO selectTermDTO : termsSet) {
-                termsList.add(selectTermDTO);
-            }
-            termsList.sort((o1, o2)->{
-                String s1 = o1.getValue().replaceAll("[^0-9]", "");
+                String s1 = selectTermDTO.getValue().replaceAll("[^0-9]", "");
                 if(ObjectUtils.isEmpty(s1)){
                     s1 = "0";
                 }
-                String s2 = o2.getValue().replaceAll("[^0-9]", "");
-                if(ObjectUtils.isEmpty(s2)){
-                    s2 = "0";
-                }
                 Double totalScore1 = Double.valueOf(s1);
-                Double totalScore2 = Double.valueOf(s2);
-                if(totalScore1 < totalScore2) {
+                selectTermDTO.setSort(totalScore1);
+                String area = getArea(selectTermDTO.getLabel());
+                if(ObjectUtils.isNotEmpty(area)){
+                    selectTermDTO.setSort(Double.valueOf(area));
+                }
+                termsList.add(selectTermDTO);
+            }
+            termsList.sort((o1, o2)->{
+                Double totalScore1 = o1.getSort();
+                Double totalScore2 = o2.getSort();
+                if(totalScore1 > totalScore2) {
                     return 1;
                 }else if (totalScore1.equals(totalScore2)) {
                     return 0;
@@ -85,4 +85,25 @@
         return termsList;
     }
 
+    public static String getArea(String areaName) {
+        Map<String, String> map = new HashMap<>();
+        map.put("越秀区", "2");
+        map.put("海珠区", "3");
+        map.put("荔湾区", "4");
+        map.put("天河区", "5");
+        map.put("白云区", "6");
+        map.put("黄埔区", "7");
+        map.put("花都区", "8");
+        map.put("番禺区", "9");
+        map.put("南沙区", "10");
+        map.put("从化区", "11");
+        map.put("增城区", "12");
+        for (String s : map.keySet()) {
+            if(areaName.contains(s)){
+                return map.get(s);
+            }
+        }
+        return null;
+    }
+
 }
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java
index 249c44e..d35ffce 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/web/CaseInfoWebController.java
@@ -1307,83 +1307,41 @@
             // 查询类型 1-本系统,2-12345,3-人民调解,4-信访,5-劳动仲裁,6-非警务纠纷
             String ledgerType = request.getParameter("ledgerType");
 
-            if("1".equals(ledgerType)){
-                terms.put("canalList", Arrays.asList("22_00001-1","22_00001-2","22_00001-3"));
-            }else if("2".equals(ledgerType)){
-                terms.put("canal", "22_00001-4");
-                terms.put("canalSecond", "22_00003-3");
-                terms.put("canalSecondNot", "22_00003-2");
-            }else if("6".equals(ledgerType)){
-                terms.put("canal", "22_00001-4");
-                terms.put("canalSecond", "22_00003-4");
-                terms.put("canalSecondNot", "22_00003-2");
-            }else if("4".equals(ledgerType)){
-                terms.put("canal", "22_00001-4");
-                terms.put("canalSecond", "22_00003-6");
-                terms.put("canalSecondNot", "22_00003-2");
-            }else if("5".equals(ledgerType)){
-                terms.put("canal", "22_00001-4");
-                terms.put("canalSecond", "22_00003-5");
-                terms.put("canalSecondNot", "22_00003-2");
-            }else if("3".equals(ledgerType)){
-                terms.put("canal", "22_00001-4");
-                terms.put("canalSecond", "22_00003-1");
-                terms.put("canalSecondNot", "22_00003-2");
-            }else{
-                terms.put("canalSecondAll", "22_00003-2");
+            //所有表里面的数据都是本系统,其他的后续会新建表存储
+            if(ObjectUtils.isNotEmpty(ledgerType) && !"1".equals(ledgerType)){
+                terms.put("canal", "-1");
             }
-            return ReturnSucUtils.getRepInfo("处理成功", service.ledger(terms, userId));
+            return ReturnSucUtils.getRepInfo("处理成功", service.ledger(terms, userId, ledgerType));
         } catch (Exception e) {
             log.error("Controller接口[CaseInfoWebController.ledger]请求异常:" + e, e);
             return ReturnFailUtils.getRepInfo();
         }
     }
-    // /**
-    //  * 解纷态势
-    //  *
-    //  * @return Object
-    //  * @url {ctx}/api/web/caseInfo/ledger
-    //  * @CurrentUser String userId
-    //  */
-    // @GetMapping("/ledger")
-    // public Object ledger(@CurrentUser String userId) {
-    //     try {
-    //         Map<String, Object> terms = getParameterAll();
-    //         // 查询类型 1-本系统,2-12345,3-人民调解,4-信访,5-劳动仲裁,6-非警务纠纷
-    //         String ledgerType = request.getParameter("ledgerType");
-    //
-    //         if("1".equals(ledgerType)){
-    //             terms.put("canalList", Arrays.asList("22_00001-1","22_00001-2","22_00001-3"));
-    //         }else if("2".equals(ledgerType)){
-    //             terms.put("canal", "22_00001-4");
-    //             terms.put("canalSecond", "22_00003-3");
-    //             terms.put("canalSecondNot", "22_00003-2");
-    //         }else if("3".equals(ledgerType)){
-    //             terms.put("canal", "22_00001-4");
-    //             terms.put("canalSecond", "22_00003-4");
-    //             terms.put("canalSecondNot", "22_00003-2");
-    //         }else if("4".equals(ledgerType)){
-    //             terms.put("canal", "22_00001-4");
-    //             terms.put("canalSecond", "22_00003-6");
-    //             terms.put("canalSecondNot", "22_00003-2");
-    //         }else if("5".equals(ledgerType)){
-    //             terms.put("canal", "22_00001-4");
-    //             terms.put("canalSecond", "22_00003-5");
-    //             terms.put("canalSecondNot", "22_00003-2");
-    //         }else if("6".equals(ledgerType)){
-    //             terms.put("canal", "22_00001-4");
-    //             terms.put("canalSecond", "22_00003-1");
-    //             terms.put("canalSecondNot", "22_00003-2");
-    //         }else{
-    //             terms.put("canalSecondAll", "22_00003-2");
-    //         }
-    //         return ReturnSucUtils.getRepInfo("处理成功", service.ledger(terms, userId));
-    //     } catch (Exception e) {
-    //         log.error("Controller接口[CaseInfoWebController.ledger]请求异常:" + e, e);
-    //         return ReturnFailUtils.getRepInfo();
-    //     }
-    // }
 
+    /**
+     * 解纷态势
+     *
+     * @return Object
+     * @url {ctx}/api/web/caseInfo/ledgerCount
+     * @CurrentUser String userId
+     */
+    @GetMapping("/ledgerCount")
+    public Object ledgerCount(@CurrentUser String userId) {
+        try {
+            Map<String, Object> terms = getParameterAll();
+            // 查询类型 1-本系统,2-12345,3-人民调解,4-信访,5-劳动仲裁,6-非警务纠纷
+            String ledgerType = request.getParameter("ledgerType");
+
+            //所有表里面的数据都是本系统,其他的后续会新建表存储
+            if(ObjectUtils.isNotEmpty(ledgerType) && !"1".equals(ledgerType)){
+                terms.put("canal", "-1");
+            }
+            return ReturnSucUtils.getRepInfo("处理成功", service.ledgerCount(terms, userId));
+        } catch (Exception e) {
+            log.error("Controller接口[CaseInfoWebController.ledger]请求异常:" + e, e);
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
 
     /**
      * 查询重复事项
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml
index 810d17b..752227c 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/dao/mapper/xml/CaseInfoMapper.xml
@@ -411,22 +411,6 @@
                 <if test="terms.mediatorId != null and terms.mediatorId !=''">
                     and b.mediator_id = #{terms.mediatorId}
                 </if>
-                <if test="terms.visitTimeStart != null and terms.visitTimeStart !='' and terms.visitTimeEnd != null and terms.visitTimeEnd !=''">
-                    and (DATE_FORMAT(a.visit_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{terms.visitTimeStart}
-                    and DATE_FORMAT(a.visit_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{terms.visitTimeEnd})
-                </if>
-                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
-                    and (DATE_FORMAT(a.create_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{terms.createStart}
-                    and DATE_FORMAT(a.create_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{terms.createEnd})
-                </if>
-                <if test="terms.closeStart != null and terms.closeStart !='' and terms.closeEnd != null and terms.closeEnd !=''">
-                    and (DATE_FORMAT(b.close_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{terms.closeStart}
-                    and DATE_FORMAT(b.close_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{terms.closeEnd})
-                </if>
-                <if test="terms.fileStart != null and terms.fileStart !='' and terms.fileEnd != null and terms.fileEnd !=''">
-                    and (DATE_FORMAT(b.file_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{terms.fileStart}
-                    and DATE_FORMAT(b.file_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{terms.fileEnd})
-                </if>
                 <if test='terms.queCity != null and terms.queCity !="" and terms.statistics != null and terms.areaType == "1"'>
                     and (b.belong_unit_id is not null and c.city = #{terms.queCity}
                     <if test="terms.unitGrades != null and terms.unitGrades.size > 0">
@@ -576,6 +560,22 @@
                 </if>
                 <if test="terms.systemSource != null and terms.systemSource !=''">
                     and b.sys_source = #{systemSource}
+                </if>
+                <if test="terms.visitTimeStart != null and terms.visitTimeStart !='' and terms.visitTimeEnd != null and terms.visitTimeEnd !=''">
+                    and (DATE_FORMAT(a.visit_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{terms.visitTimeStart}
+                    and DATE_FORMAT(a.visit_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{terms.visitTimeEnd})
+                </if>
+                <if test="terms.createStart != null and terms.createStart !='' and terms.createEnd != null and terms.createEnd !=''">
+                    and (a.create_time <![CDATA[ >= ]]> #{terms.createStart}
+                    and a.create_time <![CDATA[ <= ]]> #{terms.createEnd})
+                </if>
+                <if test="terms.closeStart != null and terms.closeStart !='' and terms.closeEnd != null and terms.closeEnd !=''">
+                    and (DATE_FORMAT(b.close_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{terms.closeStart}
+                    and DATE_FORMAT(b.close_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{terms.closeEnd})
+                </if>
+                <if test="terms.fileStart != null and terms.fileStart !='' and terms.fileEnd != null and terms.fileEnd !=''">
+                    and (DATE_FORMAT(b.file_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{terms.fileStart}
+                    and DATE_FORMAT(b.file_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{terms.fileEnd})
                 </if>
             </where>
         </if>
@@ -1124,7 +1124,11 @@
                 when a.info_process = 1 then 1   else 0 end) as processNum,
         sum(case when a.info_process = 3 and b.medi_result = '22_00025-1' then 1 else 0 end) as finishNum,
         sum(case when a.info_process = 4 then 1 else 0 end) as rejectNum,
-        sum(case when a.info_process = 3 and b.medi_result = '22_00025-2' then 1 else 0 end) as failNum
+        sum(case when a.info_process = 3 and b.medi_result = '22_00025-2' then 1 else 0 end) as failNum,
+        sum(case when a.canal_second = '22_00003-8' then 1 else 0 end) as bmpcNum,
+        sum(case when a.canal_second = '22_00003-2' then 1 else 0 end) as wgpcNum,
+        sum(case when a.canal_second = '22_00003-1' then 1 else 0 end) as fjwjfNum,
+        sum(case when a.canal_second = '22_00003-7' then 1 else 0 end) as zxjfNum
         FROM
         dyh_case_info a
         inner JOIN dyh_case_info_unfold b on a.id = b.id
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseStatisticsBaseDTO.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseStatisticsBaseDTO.java
index b560082..4b4617d 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseStatisticsBaseDTO.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/domain/dto/CaseStatisticsBaseDTO.java
@@ -1,6 +1,8 @@
 package cn.huge.module.cases.domain.dto;
 
 import lombok.Data;
+
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -28,6 +30,15 @@
     private Integer failNum=0;//化解不成功数量
     private String failRate;//化解不成功率
 
+    private Integer bmpcNum;//部门排查
+    private String bmpcCode="22_00003-8";//部门排查编码
+    private Integer wgpcNum;//网格排查
+    private String wgpcCode="22_00003-2";//网格排查编码
+    private Integer fjwjfNum;//非警务纠纷
+    private String fjwjfCode="22_00003-1";//非警务纠纷编码
+    private Integer zxjfNum;//专项纠纷
+    private String zxjfCode="22_00003-7";//专项纠纷编码
+
     private Integer oneLevelNum=0;//1级事件数量
     private Integer twoLevelNum=0;//2级事件数量
     private Integer threeLevelNum=0;//3级事件数量
@@ -43,7 +54,7 @@
     private CaseStatisticsSourceDTO oneSecondSource;//非警务纠纷
     private CaseStatisticsSourceDTO twoSecondSource;//12345
     private CaseStatisticsSourceDTO threeSecondSource;//网格上报
-    private List<CaseStatisticsTypeDTO> typeList;//纠纷类型集合
+    private List<CaseStatisticsTypeDTO> typeList = new ArrayList<>();//纠纷类型集合
 
     private List<CasePageDTO> caseList;//案件集合(实时动态)
 
@@ -61,8 +72,8 @@
     private String xfRate;//信访占比
     private Integer ldzcNum=0;//劳动仲裁数
     private String ldzcRate;//劳动仲裁占比
-    private Integer fjwjfNum=0;//非警务纠纷数
-    private String fjwjfRate;//非警务纠纷占比
+    private Integer tzfjwjfNum=0;//非警务纠纷数
+    private String tzfjwjfRate;//非警务纠纷占比
 
 //    private Integer allNum=0;//全部数
 //    private Integer sysNum=0;//本系统数
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 109bdd0..c2d5ebe 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
@@ -1488,29 +1488,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));
@@ -1549,12 +1528,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));
@@ -2124,34 +2097,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");
         //根据用户筛选区域范围
@@ -2188,316 +2347,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;
-    // }
 
     /**
      * 按系列案编号查询
diff --git a/sql/20250620.sql b/sql/20250620.sql
new file mode 100644
index 0000000..9a90e48
--- /dev/null
+++ b/sql/20250620.sql
@@ -0,0 +1,17 @@
+#添加索引
+CREATE INDEX idx_canal ON "HUGETEST".dyh_case_info(canal);
+CREATE INDEX idx_case_ref ON "HUGETEST".dyh_case_info(case_ref);
+CREATE INDEX idx_case_type ON "HUGETEST".dyh_case_info(case_type);
+CREATE INDEX idx_area_road_village ON "HUGETEST".dyh_case_info(que_area, que_road, que_village);
+CREATE INDEX idx_source ON "HUGETEST".dyh_case_info(source);
+CREATE INDEX idx_input_unit_id ON "HUGETEST".dyh_case_info(input_unit_id);
+CREATE INDEX idx_status ON "HUGETEST".dyh_case_info(status);
+CREATE INDEX idx_process ON "HUGETEST".dyh_case_info(process);
+
+CREATE INDEX idx_belong_unit_id ON "HUGETEST".dyh_case_info_unfold(belong_unit_id);
+CREATE INDEX idx_mediate_unit_id ON "HUGETEST".dyh_case_info_unfold(mediate_unit_id);
+CREATE INDEX idx_medi_result ON "HUGETEST".dyh_case_info_unfold(medi_result);
+
+CREATE INDEX idx_unit_grade ON "HUGETEST".dyh_ct_unit(unit_grade);
+CREATE INDEX idx_unit_type ON "HUGETEST".dyh_ct_unit(unit_type);
+CREATE INDEX idx_area_road_village ON "HUGETEST".dyh_ct_unit(area, road, village);

--
Gitblit v1.8.0