广州市综治平台后端
xusd
2 days ago c490640493f04e2ed0fc5c4c8fbc92ebdd4d5380
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
@@ -16,6 +16,7 @@
import cn.huge.module.cases.domain.po.*;
import cn.huge.module.cases.domain.vo.CaseVo;
import cn.huge.module.cases.domain.vo.GenerateQrCodeRequestVo;
import cn.huge.module.cases.utils.StatisticsTimeUtils;
import cn.huge.module.client.api.impl.CustClientImpl;
import cn.huge.module.client.api.impl.SysClientImpl;
import cn.huge.module.client.api.impl.UtilsClientImpl;
@@ -310,7 +311,9 @@
            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));
            // 获取调解案号
@@ -1422,6 +1425,19 @@
        terms.put("areaType", areaType);
        // 调用统计调解过程的方法
        CaseStatisticsBaseDTO caseStatisticsBaseDTO = statisticsProcess(terms);
        //当日新增
        Map<String, Object> toDayTerms = new HashMap<>();
        toDayTerms.putAll(terms);
        String toDayStr = DateUtils.DateToString(DateUtils.getNowDate(), DateUtils.YYYY_MM_DD);
        toDayTerms.put("createStart", toDayStr + " 00:00:00");
        toDayTerms.put("createEnd", toDayStr + " 23:59:59");
        CaseStatisticsBaseDTO toDayBaseDTO = mapper.statisticsBase(toDayTerms);
        caseStatisticsBaseDTO.setToDayTotalNum(toDayBaseDTO.getTotalNum());
        caseStatisticsBaseDTO.setToDayProcessNum(toDayBaseDTO.getProcessNum());
        caseStatisticsBaseDTO.setToDayRejectNum(toDayBaseDTO.getRejectNum());
        caseStatisticsBaseDTO.setToDayFinishNum(toDayBaseDTO.getFinishNum());
        //区域数据统计
        List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS = new ArrayList<>();
        if (!isLast) {
@@ -1488,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));
@@ -1549,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));
@@ -1694,6 +1683,164 @@
            }
        });
        return caseStatisticsTypeDTOS;
    }
    /**
     * 工作统计
     */
    public CaseWorkStatisticsBaseDTO workStatistics(Map<String, Object> terms, String userId) throws IOException {
        CaseWorkStatisticsBaseDTO caseWorkStatisticsBaseDTO = new CaseWorkStatisticsBaseDTO();
        terms.put("statistics", "1");
        //根据用户筛选区域范围
        CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId);
        //目前没有村居数据,所以单位等级是4的也归集到3里面
        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());
        }
        terms.put("workUserId", userId);
        String areaType = "1";
        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";
        }
        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));
        //当日新增
        Map<String, Object> toDayTerms = new HashMap<>();
        toDayTerms.putAll(terms);
        String toDayStr = DateUtils.DateToString(DateUtils.getNowDate(), DateUtils.YYYY_MM_DD);
        toDayTerms.put("createStart", toDayStr + " 00:00:00");
        toDayTerms.put("createEnd", toDayStr + " 23:59:59");
        CaseStatisticsBaseDTO toDayBaseDTO = mapper.statisticsBase(toDayTerms);
        caseStatisticsBaseDTO.setToDayTotalNum(toDayBaseDTO.getTotalNum());
        caseStatisticsBaseDTO.setToDayProcessNum(toDayBaseDTO.getProcessNum());
        caseStatisticsBaseDTO.setToDayRejectNum(toDayBaseDTO.getRejectNum());
        caseStatisticsBaseDTO.setToDayFinishNum(toDayBaseDTO.getFinishNum());
        BeanUtils.copyProperties(caseStatisticsBaseDTO, caseWorkStatisticsBaseDTO);
        //按时间统计
        Date startDate = null;
        Date endDate = null;
        if(ObjectUtils.isNotEmpty(terms.get("createStart"))){
            String startTime = terms.get("createStart").toString();
            String endTime = terms.get("createEnd").toString();
            startDate = DateUtils.StringToDate(startTime, "yyyy-MM-dd HH:mm:ss");
            endDate = DateUtils.StringToDate(endTime, "yyyy-MM-dd HH:mm:ss");
            terms.put("selectTimeType","1");
        }else if(ObjectUtils.isNotEmpty(terms.get("closeStart"))){
            String startTime = terms.get("closeStart").toString();
            String endTime = terms.get("closeEnd").toString();
            startDate = DateUtils.StringToDate(startTime, "yyyy-MM-dd HH:mm:ss");
            endDate = DateUtils.StringToDate(endTime, "yyyy-MM-dd HH:mm:ss");
            terms.put("selectTimeType","2");
        }
        List<CaseWorkStatisticsTimeDTO> resultTimeDTOs = new ArrayList<>();
        if(ObjectUtils.isNotEmpty(startDate)){
            String spanType = StatisticsTimeUtils.spanTime(startDate, endDate);
            terms.put("timeType", spanType);
            List<CaseWorkStatisticsTimeDTO> caseWorkStatisticsTimeDTOs = mapper.workStatisticsTime(terms);
            resultTimeDTOs = StatisticsTimeUtils.dellStatisticsTime(caseWorkStatisticsTimeDTOs, startDate, endDate, spanType);
        }
        caseWorkStatisticsBaseDTO.setTimeList(resultTimeDTOs);
        //环比和同比
        if(StatisticsTimeUtils.isStartAndEndOfMonth(startDate, endDate)){
            caseWorkStatisticsBaseDTO.setMomType("1");
            Map<String, Object> momthTerms = new HashMap<>();
            momthTerms.putAll(terms);
            momthTerms.put("createStart", StatisticsTimeUtils.getMomStartDate(startDate) + " 00:00:00");
            momthTerms.put("createEnd", StatisticsTimeUtils.getMomEndDate(startDate) + " 23:59:59");
            CaseStatisticsBaseDTO momBaseDTO = mapper.statisticsBase(momthTerms);
            caseWorkStatisticsBaseDTO.setMomTotalRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getTotalNum(),momBaseDTO.getTotalNum()));
            caseWorkStatisticsBaseDTO.setMomProcessRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getProcessNum(),momBaseDTO.getProcessNum()));
            caseWorkStatisticsBaseDTO.setMomRejectRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getRejectNum(),momBaseDTO.getRejectNum()));
            caseWorkStatisticsBaseDTO.setMomFinishNumRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getFinishNum(),momBaseDTO.getFinishNum()));
            Integer momResolveTotalNum = dellNull(momBaseDTO.getResolveNum()) + dellNull(momBaseDTO.getUnResolveNum());
            momBaseDTO.setResolveRate(BigDecimalUtil.integerDivideDelZero(momBaseDTO.getResolveNum() * 100, momResolveTotalNum, 1));
            caseWorkStatisticsBaseDTO.setMomResolveRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getResolveRate(),momBaseDTO.getResolveRate()));
            momthTerms.put("createStart", StatisticsTimeUtils.getYoyDate(startDate) + " 00:00:00");
            momthTerms.put("createEnd", StatisticsTimeUtils.getYoyDate(endDate) + " 23:59:59");
            CaseStatisticsBaseDTO yoyBaseDTO = mapper.statisticsBase(momthTerms);
            caseWorkStatisticsBaseDTO.setYoyTotalRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getTotalNum(),yoyBaseDTO.getTotalNum()));
            caseWorkStatisticsBaseDTO.setYoyProcessRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getProcessNum(),yoyBaseDTO.getProcessNum()));
            caseWorkStatisticsBaseDTO.setYoyRejectRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getRejectNum(),yoyBaseDTO.getRejectNum()));
            caseWorkStatisticsBaseDTO.setYoyFinishNumRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getFinishNum(),yoyBaseDTO.getFinishNum()));
            Integer yoyResolveTotalNum = dellNull(yoyBaseDTO.getResolveNum()) + dellNull(yoyBaseDTO.getUnResolveNum());
            yoyBaseDTO.setResolveRate(BigDecimalUtil.integerDivideDelZero(yoyBaseDTO.getResolveNum() * 100, yoyResolveTotalNum, 1));
            caseWorkStatisticsBaseDTO.setYoyResolveRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getResolveRate(),yoyBaseDTO.getResolveRate()));
        }else if(StatisticsTimeUtils.isStartAndEndOfYear(startDate, endDate)){
            caseWorkStatisticsBaseDTO.setMomType("2");
            Map<String, Object> momthTerms = new HashMap<>();
            momthTerms.putAll(terms);
            momthTerms.put("createStart", StatisticsTimeUtils.getYoyDate(startDate) + " 00:00:00");
            momthTerms.put("createEnd", StatisticsTimeUtils.getYoyDate(endDate) + " 23:59:59");
            CaseStatisticsBaseDTO yoyBaseDTO = mapper.statisticsBase(momthTerms);
            caseWorkStatisticsBaseDTO.setYoyTotalRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getTotalNum(),yoyBaseDTO.getTotalNum()));
            caseWorkStatisticsBaseDTO.setYoyProcessRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getProcessNum(),yoyBaseDTO.getProcessNum()));
            caseWorkStatisticsBaseDTO.setYoyRejectRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getRejectNum(),yoyBaseDTO.getRejectNum()));
            caseWorkStatisticsBaseDTO.setYoyFinishNumRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getFinishNum(),yoyBaseDTO.getFinishNum()));
            Integer yoyResolveTotalNum = dellNull(yoyBaseDTO.getResolveNum()) + dellNull(yoyBaseDTO.getUnResolveNum());
            yoyBaseDTO.setResolveRate(BigDecimalUtil.integerDivideDelZero(yoyBaseDTO.getResolveNum() * 100, yoyResolveTotalNum, 1));
            caseWorkStatisticsBaseDTO.setYoyResolveRate(StatisticsTimeUtils.calculateMomGrowthRate(caseStatisticsBaseDTO.getResolveRate(),yoyBaseDTO.getResolveRate()));
        }else{
            caseWorkStatisticsBaseDTO.setMomType("0");
        }
        //纠纷类型统计
        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);
        }
        caseWorkStatisticsBaseDTO.setTypeList(typeList);
        return caseWorkStatisticsBaseDTO;
    }
    public Map<String, String> getArea() {
@@ -2124,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");
        //根据用户筛选区域范围
@@ -2188,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;
    // }
    /**
     * 按系列案编号查询