From f6a7fafd16a3b088adc9017cfdfedf065ec8a3d6 Mon Sep 17 00:00:00 2001 From: zhouxiantao <1026371446@qq.com> Date: Tue, 22 Oct 2024 10:31:13 +0800 Subject: [PATCH] fix:解纷态势-区选择还出现区问题修复 --- dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 54 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 47 insertions(+), 7 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 c6aff30..6ce9368 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 @@ -1006,14 +1006,34 @@ terms.put("statistics", "1"); //根据用户筛选区域范围 CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId); - if(ctUnitDTO.getUnitGrade().equals(2)){ + String areaCode = null; + //目前没有村居数据,所以单位等级是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) || ctUnitDTO.getUnitGrade().equals(4)){ terms.put("queRoad", ctUnitDTO.getRoad()); } + //目前没有村居,所以区和街道进来都是按街道展示 - if(ObjectUtils.isNotEmpty(terms.get("queRoad")) || ObjectUtils.isNotEmpty(terms.get("queArea"))){ + String areaType = null;//兼容白云数据 + List<Integer> unitGrades = new ArrayList<>(); + if(ObjectUtils.isNotEmpty(terms.get("queRoad"))){ terms.put("areaType","2"); + areaType = "2"; + areaCode = terms.get("queRoad")+""; + unitGrades.add(3); + unitGrades.add(4); + }else if(ObjectUtils.isNotEmpty(terms.get("queArea"))){ + terms.put("areaType","2"); + areaType = "2"; + areaCode = terms.get("queArea")+""; + unitGrades.add(2); + }else{ + areaType = "1"; + unitGrades.add(1); + areaCode = ctUnitDTO.getCity(); } //基础数据统计 CaseStatisticsBaseDTO caseStatisticsBaseDTO = mapper.statisticsBase(terms); @@ -1035,9 +1055,11 @@ allArea.setAreaCode("1"); List<String> areaCodeList = new ArrayList<>(); List<CaseStatisticsAreaDTO> areaList = new ArrayList<>(); + List<String> areaNames = new ArrayList<>();//为兼容白云区数据 for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : caseStatisticsAreaDTOS) { + areaNames.add(caseStatisticsAreaDTO.getAreaName()); //本及:承办单位是本及和没有承办单位并且没有下级区域编码 - if(ObjectUtils.isEmpty(caseStatisticsAreaDTO.getAreaCode()) || ctUnitDTO.getUnitGrade().equals(caseStatisticsAreaDTO.getUnitGrade())){ + 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())); @@ -1048,7 +1070,19 @@ } } areaList.add(allArea); - List<QueAreaDTO> queArea = listAreaByType(terms.get("queArea")); + 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)); for (QueAreaDTO caseAreaDTO : queArea) { if (!areaCodeList.contains(caseAreaDTO.getAreaCode())) { @@ -1173,7 +1207,7 @@ return caseStatisticsTypeDTOS; } - public List<CaseStatisticsAreaDTO> sortArea(List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS) { + public Map<String, String> getArea(){ Map<String, String> map = new HashMap<>(); map.put("越秀区","2"); map.put("海珠区","3"); @@ -1186,14 +1220,20 @@ map.put("南沙区","10"); map.put("从化区","11"); map.put("增城区","12"); + return map; + } + + public List<CaseStatisticsAreaDTO> sortArea(List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS) { + Map<String, String> map = getArea(); for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : caseStatisticsAreaDTOS) { + caseStatisticsAreaDTO.setAreaCode(caseStatisticsAreaDTO.getAreaCode().replace("-","")); if(map.containsKey(caseStatisticsAreaDTO.getAreaName())){ caseStatisticsAreaDTO.setAreaCode(map.get(caseStatisticsAreaDTO.getAreaName())); } } caseStatisticsAreaDTOS.sort((o1, o2) -> { - Integer totalScore1 = Integer.valueOf(o1.getAreaCode()); - Integer totalScore2 = Integer.valueOf(o2.getAreaCode()); + Long totalScore1 = Long.valueOf(o1.getAreaCode()); + Long totalScore2 = Long.valueOf(o2.getAreaCode()); if (totalScore1 > totalScore2) { return 1; } else if (totalScore1.equals(totalScore2)) { -- Gitblit v1.8.0