From f7dd6c04223ea30a535e7f340d620435102aad8b Mon Sep 17 00:00:00 2001
From: zhouxiantao <1026371446@qq.com>
Date: Thu, 19 Sep 2024 17:32:43 +0800
Subject: [PATCH] 纠纷态势分析
---
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 149 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 148 insertions(+), 1 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 f8ac102..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;
@@ -227,6 +228,11 @@
caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
caseInfo.setCreateTime(nowDate);
caseInfo.setDeleteStatus(BaseConsts.DELETE_STATUS_0);
+ //默认添加省市
+ caseInfo.setQueProv("19");
+ caseInfo.setQueProvName("广东省");
+ caseInfo.setQueCity("1601");
+ caseInfo.setQueCityName("广州市");
// 删除草稿案件
if(1 == registerSaveDTO.getIsDraft() ){
draftInfoService.removeDraftInfo(registerSaveDTO.getId());
@@ -243,7 +249,7 @@
// 判断是否自行受理
if(1 == registerSaveDTO.getIsSelfAccept()){
// 自行受理流程
- caseTaskService.webStartFlowZXSL(caseInfo, loginUser);
+ return caseTaskService.webStartFlowZXSL(caseInfo, loginUser);
}else {
// 自动调度流程
caseTaskService.webStartFlowLFDJ(caseInfo);
@@ -561,6 +567,12 @@
caseInfo.setInputUserId(loginUser.getId());
caseInfo.setInputUserName(loginUser.getTrueName());
caseInfo.setInputWay(CaseBaseConsts.INPUT_WAY_1);
+ //默认添加省市
+ caseInfo.setQueProv("19");
+ caseInfo.setQueProvName("广东省");
+ caseInfo.setQueCity("1601");
+ caseInfo.setQueCityName("广州市");
+
caseInfo.setCreateTime(nowDate);
caseInfo.setUpdateTime(nowDate);
caseInfo.setVisitTime(nowDate);
@@ -880,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