From ed8f08873f9869ef04c1129f1b9206197c1a7c73 Mon Sep 17 00:00:00 2001
From: zhouxiantao <1026371446@qq.com>
Date: Fri, 18 Oct 2024 15:55:05 +0800
Subject: [PATCH] refactor:解纷态势-统计范围和本级统计重构
---
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 124 ++++++++++++++++++++++++++++++++--------
1 files changed, 98 insertions(+), 26 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 c063d22..c6aff30 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
@@ -14,6 +14,7 @@
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.cases.dao.mapper.CaseInfoMapper;
import cn.huge.module.constant.BaseConsts;
+import cn.huge.module.cust.dto.CtUnitDTO;
import cn.huge.module.cust.dto.PaUserDTO;
import cn.huge.module.mediate.constant.*;
import cn.huge.module.cust.dto.CtUserDTO;
@@ -235,6 +236,14 @@
//复制填装案件表
CaseInfo caseInfo = new CaseInfo();
BeanUtils.copyProperties(registerSaveDTO, caseInfo);
+ // 是否自行受理
+ if (1 == registerSaveDTO.getIsSelfAccept()) {
+ // 是
+ caseInfo.setZxslStatus(CaseBaseConsts.ZXSL_STATUS_1);
+ }else {
+ // 否
+ caseInfo.setZxslStatus(CaseBaseConsts.ZXSL_STATUS_0);
+ }
caseInfo.setUpdateTime(nowDate);
// 常规登记-保存当事人
@@ -959,20 +968,23 @@
break;
}
}
- QueryWrapper<CasePerson> personWrapper1 = new QueryWrapper<>();
- personWrapper1.eq("case_id", casePageDTO.getId());
- List<CasePerson> casePersonList1 = personService.list(personWrapper1);
//申请人集合
List<CasePersonWeDTO> plaintiffList = new ArrayList<>();
//被申请人集合
List<CasePersonWeDTO> defendantList = new ArrayList<>();
- for (CasePerson casePerson : casePersonList1) {
- CasePersonWeDTO casePersonWechatDTO = new CasePersonWeDTO();
- BeanUtils.copyProperties(casePerson, casePersonWechatDTO);
- if (CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())) {
- plaintiffList.add(casePersonWechatDTO);
- } else if (CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())) {
- defendantList.add(casePersonWechatDTO);
+ //如果是导出调用,不查询extend信息
+ if(ObjectUtils.isEmpty(terms.get("report"))){
+ QueryWrapper<CasePerson> personWrapper1 = new QueryWrapper<>();
+ personWrapper1.eq("case_id", casePageDTO.getId());
+ List<CasePerson> casePersonList1 = personService.list(personWrapper1);
+ for (CasePerson casePerson : casePersonList1) {
+ CasePersonWeDTO casePersonWechatDTO = new CasePersonWeDTO();
+ BeanUtils.copyProperties(casePerson, casePersonWechatDTO);
+ if (CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())) {
+ plaintiffList.add(casePersonWechatDTO);
+ } else if (CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())) {
+ defendantList.add(casePersonWechatDTO);
+ }
}
}
casePageDTO.setDefendantList(defendantList);
@@ -982,11 +994,26 @@
return new PageImpl<CasePageDTO>(content, page, total);
}
-
- public CaseStatisticsBaseDTO statistics(Map<String, Object> terms) throws IOException {
+ /**
+ * 纠纷态势
+ * 筛选范围:如果已经有承办部门,就按承办部门的区域筛选。如果没有承办部门按问题归属区域筛选
+ * */
+ public CaseStatisticsBaseDTO statistics(Map<String, Object> terms,String userId) throws IOException {
Object canal = null;
if(ObjectUtils.isNotEmpty(terms.get("canal"))){
canal = terms.get("canal");
+ }
+ terms.put("statistics", "1");
+ //根据用户筛选区域范围
+ CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId);
+ 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"))){
+ terms.put("areaType","2");
}
//基础数据统计
CaseStatisticsBaseDTO caseStatisticsBaseDTO = mapper.statisticsBase(terms);
@@ -999,7 +1026,6 @@
caseStatisticsBaseDTO.setTwoLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getTwoLevelNum() * 100, levelTotalNum, 1));
caseStatisticsBaseDTO.setThreeLevelRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsBaseDTO.getThreeLevelNum() * 100, levelTotalNum, 1));
//区域数据统计
- terms.put("isArea", "1");
List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS = mapper.statisticsArea(terms);
if (ObjectUtils.isEmpty(caseStatisticsAreaDTOS)) {
caseStatisticsAreaDTOS = new ArrayList<>();
@@ -1008,14 +1034,20 @@
allArea.setAreaName("本级");
allArea.setAreaCode("1");
List<String> areaCodeList = new ArrayList<>();
+ List<CaseStatisticsAreaDTO> areaList = new ArrayList<>();
for (CaseStatisticsAreaDTO caseStatisticsAreaDTO : caseStatisticsAreaDTOS) {
- 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()));
- areaCodeList.add(caseStatisticsAreaDTO.getAreaCode());
+ //本及:承办单位是本及和没有承办单位并且没有下级区域编码
+ if(ObjectUtils.isEmpty(caseStatisticsAreaDTO.getAreaCode()) || ctUnitDTO.getUnitGrade().equals(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());
+ }
}
- caseStatisticsAreaDTOS.add(allArea);
+ areaList.add(allArea);
List<QueAreaDTO> queArea = listAreaByType(terms.get("queArea"));
log.info("listAreaByType {}", JSON.toJSONString(queArea));
for (QueAreaDTO caseAreaDTO : queArea) {
@@ -1027,17 +1059,16 @@
areaChild.setResolveNum(0);
areaChild.setUnResolveNum(0);
areaChild.setResolveingNum(0);
- caseStatisticsAreaDTOS.add(areaChild);
+ areaList.add(areaChild);
}
}
- if (ObjectUtils.isNotEmpty(caseStatisticsAreaDTOS)) {
- sortArea(caseStatisticsAreaDTOS);
+ if (ObjectUtils.isNotEmpty(areaList)) {
+ sortArea(areaList);
}
- caseStatisticsBaseDTO.setAreaList(caseStatisticsAreaDTOS);
- terms.remove("isArea");
+ caseStatisticsBaseDTO.setAreaList(areaList);
//纠纷类型统计
- List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS = mapper.statisticsType(terms);
+ List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS = mapper.statisticsTypeFirst(terms);
if (ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)) {
sortType(caseStatisticsTypeDTOS);
}
@@ -1116,7 +1147,8 @@
terms.put("canal", canal);
}
Sort sort = Sort.by(Sort.Direction.DESC, "a.create_time");
- PageRequest pageRequest = PageRequest.of(0, 5, sort);
+ PageRequest pageRequest = PageRequest.of(0, 30, sort);
+ terms.remove("statistics");
Page<CasePageDTO> casePageDTOS = pageQueryAll(pageRequest, terms);
if (ObjectUtils.isNotEmpty(casePageDTOS.getContent())) {
caseStatisticsBaseDTO.setCaseList(casePageDTOS.getContent());
@@ -1290,4 +1322,44 @@
return casePersonCountBO;
}
+ public List<CaseStatisticsTypeDTO> statisticsCaseType(Map<String, Object> terms,String userId){
+ //根据用户筛选区域范围
+ CtUnitDTO ctUnitDTO = custClient.getUnitByUserId(userId);
+ 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.isEmpty(terms.get("caseTypeFirst"))){
+ //筛选一级为其他的纠纷类型
+ List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS = mapper.statisticsTypeFirst(terms);
+ if (ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)) {
+ sortType(caseStatisticsTypeDTOS);
+ }
+ int i = 1;
+ List<String> caseTypeList = new ArrayList<>();
+ for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) {
+ if (i > 5) {
+ caseTypeList.add(caseStatisticsTypeDTO.getCaseType());
+ }
+ i++;
+ }
+ if(ObjectUtils.isEmpty(caseTypeList)){
+ return new ArrayList<>();
+ }
+ terms.put("caseTypeFirstList", caseTypeList);
+ }
+ List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS = mapper.statisticsType(terms);
+ if (ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)) {
+ sortType(caseStatisticsTypeDTOS);
+ }
+ Integer typeTotalNum = 0;
+ for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) {
+ typeTotalNum = typeTotalNum + dellNull(caseStatisticsTypeDTO.getCaseNum());
+ }
+ for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) {
+ caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum() * 100, typeTotalNum, 1));
+ }
+ return caseStatisticsTypeDTOS;
+ }
}
--
Gitblit v1.8.0