| | |
| | | //默认添加省市 |
| | | caseInfo.setQueProv("19"); |
| | | caseInfo.setQueProvName("广东省"); |
| | | caseInfo.setQueCity("1601"); |
| | | caseInfo.setQueCity("440100"); |
| | | caseInfo.setQueCityName("广州市"); |
| | | // 删除草稿案件 |
| | | if (1 == registerSaveDTO.getIsDraft()) { |
| | |
| | | CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId); |
| | | String areaCode = null; |
| | | //目前没有村居数据,所以单位等级是4的也归集到3里面 |
| | | List<Integer> unitGrades = new ArrayList<>(); |
| | | if(ctUnitDTO.getUnitGrade().equals(2)){ |
| | | if(ctUnitDTO.getUnitGrade().equals(1)){ |
| | | terms.put("queCity", ctUnitDTO.getCity()); |
| | | }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); |
| | | } |
| | | //目前没有村居,所以区和街道进来都是按街道展示 |
| | | 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<>(); |
| | | } |
| | | CaseStatisticsAreaDTO allArea = new CaseStatisticsAreaDTO(); |
| | | allArea.setAreaName("本级"); |
| | | allArea.setAreaCode("1"); |
| | | List<String> areaCodeList = new ArrayList<>(); |
| | | List<CaseStatisticsAreaDTO> areaList = new ArrayList<>(); |
| | | for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : caseStatisticsAreaDTOS) { |
| | | //本及:承办单位是本及和没有承办单位并且没有下级区域编码 |
| | | 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()); |
| | | 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("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()); |
| | | // } |
| | | } |
| | | 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)); |
| | | for (QueAreaDTO caseAreaDTO : queArea) { |
| | |
| | | } |
| | | |
| | | 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); |
| | |
| | | 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"); |
| | |
| | | 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()); |
| | | // if (totalScore1 > totalScore2) { |
| | | // return 1; |
| | | // } else if (totalScore1.equals(totalScore2)) { |
| | | // return 0; |
| | | // } else { |
| | | // return -1; |
| | | // } |
| | | // }); |
| | | caseStatisticsAreaDTOS.sort((o1, o2) -> { |
| | | Long totalScore1 = Long.valueOf(o1.getAreaCode()); |
| | | Long totalScore2 = Long.valueOf(o2.getAreaCode()); |
| | | if (totalScore1 > totalScore2) { |
| | | return 1; |
| | | } else if (totalScore1.equals(totalScore2)) { |
| | | return 0; |
| | | } else { |
| | | return -1; |
| | | } |
| | | }); |
| | | return caseStatisticsAreaDTOS; |
| | | } |
| | | |