From 88ea54cb6460f1ff3c762c9f477f89329f5c5986 Mon Sep 17 00:00:00 2001
From: zhouxiantao <1026371446@qq.com>
Date: Fri, 25 Oct 2024 16:12:46 +0800
Subject: [PATCH] fix:解纷态势-根据最新原型设计重新计算本级数量
---
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