From b433e768a5185a6f4ce1f9271e43051b5dc254cc Mon Sep 17 00:00:00 2001
From: liyj <15602261488@163.com>
Date: Fri, 20 Sep 2024 10:28:56 +0800
Subject: [PATCH] Merge branch 'master' into gzdyh_test
---
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 136 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 136 insertions(+), 0 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 1feada6..e26abb9 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
@@ -28,6 +28,7 @@
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
@@ -891,4 +892,139 @@
}
return new PageImpl<CasePageDTO>(content, page, total);
}
+
+ public CaseStatisticsBaseDTO statistics(Map<String, Object> terms){
+ //基础数据统计
+ 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));
+ 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));
+ //区域数据统计
+ terms.put("isArea","1");
+ List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS = mapper.statisticsArea(terms);
+ if(ObjectUtils.isEmpty(caseStatisticsAreaDTOS)){
+ caseStatisticsAreaDTOS = new ArrayList<>();
+ }
+ CaseStatisticsAreaDTO allArea = new CaseStatisticsAreaDTO();
+ allArea.setAreaName("本级");
+ allArea.setAreaCode("1");
+ 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()));
+ }
+ caseStatisticsAreaDTOS.add(allArea);
+ if(ObjectUtils.isNotEmpty(caseStatisticsAreaDTOS)){
+ sortArea(caseStatisticsAreaDTOS);
+ }
+ caseStatisticsBaseDTO.setAreaList(caseStatisticsAreaDTOS);
+ terms.remove("isArea");
+ //纠纷类型统计
+ List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS = mapper.statisticsType(terms);
+ if(ObjectUtils.isNotEmpty(caseStatisticsTypeDTOS)){
+ sortType(caseStatisticsTypeDTOS);
+ }
+ Integer typeTotalNum = 0;
+ Integer otherCaseNum = 0;
+ int i = 1;
+ List<CaseStatisticsTypeDTO> typeList = new ArrayList<>();
+ for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : caseStatisticsTypeDTOS) {
+ typeTotalNum = typeTotalNum + dellNull(caseStatisticsTypeDTO.getCaseNum());
+ if(i > 5){
+ otherCaseNum = otherCaseNum + dellNull(caseStatisticsTypeDTO.getCaseNum());
+ }else{
+ typeList.add(caseStatisticsTypeDTO);
+ }
+ i++;
+ }
+ for (CaseStatisticsTypeDTO caseStatisticsTypeDTO : typeList) {
+ caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum()*100, typeTotalNum,1));
+ }
+ CaseStatisticsTypeDTO caseStatisticsTypeDTO = new CaseStatisticsTypeDTO();
+ caseStatisticsTypeDTO.setCaseTypeName("其他");
+ caseStatisticsTypeDTO.setCaseNum(otherCaseNum);
+ caseStatisticsTypeDTO.setCaseRate(BigDecimalUtil.integerDivideDelZero(caseStatisticsTypeDTO.getCaseNum()*100, typeTotalNum,1));
+ typeList.add(caseStatisticsTypeDTO);
+ caseStatisticsBaseDTO.setTypeList(typeList);
+ //事项来源
+ terms.put("canal",CaseBaseConstsEnum.CASE_CANAL_1.getIndex());
+ CaseStatisticsSourceDTO oneSource = mapper.statisticsSource(terms);
+ oneSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_1.getDes());
+ terms.put("canal",CaseBaseConstsEnum.CASE_CANAL_2.getIndex());
+ CaseStatisticsSourceDTO twoSource = mapper.statisticsSource(terms);
+ twoSource.setCanalName(CaseBaseConstsEnum.CASE_CANAL_2.getDes());
+
+ Integer sourceTotalNum = dellNull(oneSource.getCaseNum()) + dellNull(oneSource.getCaseNum());
+ oneSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(oneSource.getCaseNum()*100, sourceTotalNum,1));
+ oneSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(oneSource.getResolveNum()*100, oneSource.getCaseNum(),1));
+ twoSource.setCaseRate(BigDecimalUtil.integerDivideDelZero(twoSource.getCaseNum()*100, sourceTotalNum,1));
+ twoSource.setResolveRate(BigDecimalUtil.integerDivideDelZero(twoSource.getResolveNum()*100, twoSource.getCaseNum(),1));
+
+ CaseStatisticsSourceDTO threeSource = new CaseStatisticsSourceDTO();
+ threeSource.setCanalName("自行排查");
+ threeSource.setResolveRate("0");
+ threeSource.setCaseRate("0");
+ CaseStatisticsSourceDTO fourSource = new CaseStatisticsSourceDTO();
+ fourSource.setCanalName("协同推送");
+ fourSource.setResolveRate("0");
+ fourSource.setCaseRate("0");
+ caseStatisticsBaseDTO.setOneSource(oneSource);
+ caseStatisticsBaseDTO.setTwoSource(twoSource);
+ caseStatisticsBaseDTO.setThreeSource(threeSource);
+ caseStatisticsBaseDTO.setFourSource(fourSource);
+
+ //案件集合
+ Sort sort = Sort.by(Sort.Direction.DESC, "a.create_time");
+ PageRequest pageRequest = PageRequest.of(0, 5, sort);
+ Page<CasePageDTO> casePageDTOS = pageQueryAll(pageRequest, terms);
+ if(ObjectUtils.isNotEmpty(casePageDTOS.getContent())){
+ caseStatisticsBaseDTO.setCaseList(casePageDTOS.getContent());
+ }else{
+ caseStatisticsBaseDTO.setCaseList(new ArrayList<>());
+ }
+ return caseStatisticsBaseDTO;
+ }
+
+ public List<CaseStatisticsTypeDTO> sortType(List<CaseStatisticsTypeDTO> caseStatisticsTypeDTOS){
+ caseStatisticsTypeDTOS.sort((o1, o2)->{
+ Integer totalScore1 = o1.getCaseNum();
+ Integer totalScore2 = o2.getCaseNum();
+ if(totalScore1 < totalScore2) {
+ return 1;
+ }else if (totalScore1.equals(totalScore2)){
+ return 0;
+ }else{
+ return -1;
+ }
+ });
+ return caseStatisticsTypeDTOS;
+ }
+
+ public List<CaseStatisticsAreaDTO> sortArea(List<CaseStatisticsAreaDTO> caseStatisticsAreaDTOS){
+ 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;
+ }
+ });
+ return caseStatisticsAreaDTOS;
+ }
+
+ public Integer dellNull(Integer number){
+ if(ObjectUtils.isEmpty(number)){
+ return 0;
+ }
+ return number;
+ }
}
--
Gitblit v1.8.0