From 1ac0d92fc65b6e1524b172af4adffbf8974e467b Mon Sep 17 00:00:00 2001 From: liyj <15602261488@163.com> Date: Mon, 28 Oct 2024 08:00:17 +0800 Subject: [PATCH] 1、新功能优化 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 107 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 75 insertions(+), 32 deletions(-) diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java index cfba1a1..e64388e 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 @@ -274,7 +274,7 @@ //默认添加省市 caseInfo.setQueProv("19"); caseInfo.setQueProvName("广东省"); - caseInfo.setQueCity("1601"); + caseInfo.setQueCity("440100"); caseInfo.setQueCityName("广州市"); // 删除草稿案件 if (1 == registerSaveDTO.getIsDraft()) { @@ -1008,63 +1008,101 @@ CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId); String areaCode = null; //目前没有村居数据,所以单位等级是4的也归集到3里面 - List<Integer> unitGrades = new ArrayList<>(); - if(ctUnitDTO.getUnitGrade().equals(1)){ terms.put("queCity", ctUnitDTO.getCity()); - areaCode = ctUnitDTO.getCity(); - unitGrades.add(ctUnitDTO.getUnitGrade()); }else if(ctUnitDTO.getUnitGrade().equals(2)){ terms.put("queArea", ctUnitDTO.getArea()); - areaCode = ctUnitDTO.getArea(); - unitGrades.add(ctUnitDTO.getUnitGrade()); }else if(ctUnitDTO.getUnitGrade().equals(3) || ctUnitDTO.getUnitGrade().equals(4)){ terms.put("queRoad", ctUnitDTO.getRoad()); - areaCode = ctUnitDTO.getRoad(); + } + + //目前没有村居,所以区和街道进来都是按街道展示 + String areaType = null; + String childAreaType = null; + List<Integer> unitGrades = new ArrayList<>(); + List<Integer> childUnitGrades = new ArrayList<>(); + Boolean isLast = false; + if(ObjectUtils.isNotEmpty(terms.get("queRoad"))){ + terms.remove("queArea"); + terms.remove("queCity"); + areaType = "3"; + childAreaType = "4"; + areaCode = terms.get("queRoad")+""; unitGrades.add(3); unitGrades.add(4); - } - //目前没有村居,所以区和街道进来都是按街道展示 - String areaType = null;//兼容白云数据 - if(ObjectUtils.isNotEmpty(terms.get("queRoad")) || ObjectUtils.isNotEmpty(terms.get("queArea"))){ - terms.put("areaType","2"); + childUnitGrades.add(3); + childUnitGrades.add(4); + isLast = true; + }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); }else{ areaType = "1"; + childAreaType = "2"; + unitGrades.add(1); + childUnitGrades.add(2); + childUnitGrades.add(3); + childUnitGrades.add(4); + areaCode = ctUnitDTO.getCity(); } //基础数据统计 CaseStatisticsBaseDTO caseStatisticsBaseDTO = mapper.statisticsBase(terms); Integer baseTotalNum = dellNull(caseStatisticsBaseDTO.getResolveNum()) + dellNull(caseStatisticsBaseDTO.getUnResolveNum()) + dellNull(caseStatisticsBaseDTO.getResolveingNum()); - caseStatisticsBaseDTO.setResolveRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getResolveNum() * 100, baseTotalNum, 1)); - caseStatisticsBaseDTO.setUnResolveRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getUnResolveNum() * 100, baseTotalNum, 1)); + 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)); //区域数据统计 - List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS = mapper.statisticsArea(terms); - if (ObjectUtils.isEmpty(caseStatisticsAreaDTOS)) { - caseStatisticsAreaDTOS = new ArrayList<>(); + 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<>(); + } } + + //本级区数据 + 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("1"); + allArea.setAreaCode("0"); List<String> areaCodeList = new ArrayList<>(); List<CaseStatisticsAreaDTO> areaList = new ArrayList<>(); List<String> areaNames = new ArrayList<>();//为兼容白云区数据 + Integer areaTotal = allArea.getCaseNum(); for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : caseStatisticsAreaDTOS) { areaNames.add(caseStatisticsAreaDTO.getAreaName()); + areaList.add(caseStatisticsAreaDTO); + areaCodeList.add(caseStatisticsAreaDTO.getAreaCode()); + 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()); - } +// 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)){ @@ -1152,19 +1190,24 @@ } Integer sourceTotalNum = dellNull(oneSource.getCaseNum()) + dellNull(twoSource.getCaseNum()) + dellNull(threeSource.getCaseNum()) + dellNull(fourSource.getCaseNum()); + Integer oneTotalNum = dellNull(oneSource.getResolveNum()) + dellNull(oneSource.getUnResolveNum()); + Integer twoTotalNum = dellNull(twoSource.getResolveNum()) + dellNull(twoSource.getUnResolveNum()); + Integer threeTotalNum = dellNull(threeSource.getResolveNum()) + dellNull(threeSource.getUnResolveNum()); + Integer fourTotalNum = dellNull(fourSource.getResolveNum()) + dellNull(fourSource.getUnResolveNum()); oneSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(oneSource.getCaseNum() * 100, sourceTotalNum, 1)); - oneSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(oneSource.getResolveNum() * 100, oneSource.getCaseNum(), 1)); + oneSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(oneSource.getResolveNum() * 100, oneTotalNum, 1)); + twoSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(twoSource.getCaseNum() * 100, sourceTotalNum, 1)); - twoSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(twoSource.getResolveNum() * 100, twoSource.getCaseNum(), 1)); + twoSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(twoSource.getResolveNum() * 100, twoTotalNum, 1)); threeSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_3.getDes()); threeSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(threeSource.getCaseNum() * 100, sourceTotalNum, 1)); - threeSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(threeSource.getResolveNum() * 100, threeSource.getCaseNum(), 1)); + threeSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(threeSource.getResolveNum() * 100, threeTotalNum, 1)); fourSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_4.getDes()); fourSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(fourSource.getCaseNum() * 100, sourceTotalNum, 1)); - fourSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(fourSource.getResolveNum() * 100, fourSource.getCaseNum(), 1)); + fourSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(fourSource.getResolveNum() * 100, fourTotalNum, 1)); caseStatisticsBaseDTO.setOneSource(oneSource); caseStatisticsBaseDTO.setTwoSource(twoSource); -- Gitblit v1.8.0