From fca638bd85eb9e5c04a766e7d5c3f469fe2388ca Mon Sep 17 00:00:00 2001
From: zhouxiantao <1026371446@qq.com>
Date: Fri, 20 Sep 2024 17:30:15 +0800
Subject: [PATCH] 态势分析
---
dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 56 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 e26abb9..2778806 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
@@ -4,6 +4,7 @@
import cn.huge.base.common.utils.*;
import cn.huge.module.cases.domain.dto.*;
+import cn.huge.module.cases.domain.json.CaseAreaDTO;
import cn.huge.module.cases.domain.po.CaseAgent;
import cn.huge.module.cases.domain.po.CaseInfoUnfold;
import cn.huge.module.cases.domain.po.CasePerson;
@@ -24,6 +25,7 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@@ -36,6 +38,8 @@
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
+import java.io.File;
+import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
@@ -893,7 +897,7 @@
return new PageImpl<CasePageDTO>(content, page, total);
}
- public CaseStatisticsBaseDTO statistics(Map<String, Object> terms){
+ public CaseStatisticsBaseDTO statistics(Map<String, Object> terms) throws IOException {
//基础数据统计
CaseStatisticsBaseDTO caseStatisticsBaseDTO = mapper.statisticsBase(terms);
Integer baseTotalNum = dellNull(caseStatisticsBaseDTO.getResolveNum()) + dellNull(caseStatisticsBaseDTO.getUnResolveNum())+ dellNull(caseStatisticsBaseDTO.getResolveingNum());
@@ -913,13 +917,30 @@
CaseStatisticsAreaDTO allArea = new CaseStatisticsAreaDTO();
allArea.setAreaName("本级");
allArea.setAreaCode("1");
+ List<String> areaCodeList = 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());
}
caseStatisticsAreaDTOS.add(allArea);
+ List<CaseAreaDTO> queArea = listAreaByType(terms.get("areaType"), terms.get("queArea"));
+ log.info("listAreaByType {}",JSON.toJSONString(queArea));
+ for (CaseAreaDTO caseAreaDTO : queArea) {
+ if(!areaCodeList.contains(caseAreaDTO.getAreaCode())){
+ CaseStatisticsAreaDTO areaChild = new CaseStatisticsAreaDTO();
+ areaChild.setAreaCode(caseAreaDTO.getAreaCode());
+ areaChild.setAreaName(caseAreaDTO.getAreaName());
+ areaChild.setCaseNum(0);
+ areaChild.setResolveNum(0);
+ areaChild.setUnResolveNum(0);
+ areaChild.setResolveingNum(0);
+ caseStatisticsAreaDTOS.add(areaChild);
+ }
+ }
+
if(ObjectUtils.isNotEmpty(caseStatisticsAreaDTOS)){
sortArea(caseStatisticsAreaDTOS);
}
@@ -1027,4 +1048,38 @@
}
return number;
}
+
+ /**
+ * 根据json文件获取区域信息
+ * */
+ public CaseAreaDTO getArea() throws IOException {
+ Class<?> clazz = CaseAreaDTO.class;
+ String path = clazz.getResource("").getPath();
+ ObjectMapper mapper = new ObjectMapper();
+ File file = new File(path+"Area.json");
+ CaseAreaDTO obj = mapper.readValue(file, CaseAreaDTO.class);
+ return obj;
+ }
+
+ /**
+ * 根据不同的等级获取不同区域子集合
+ * @param areaType 1-市级 2-区
+ * */
+ public List<CaseAreaDTO> listAreaByType(Object areaType,Object areaCode) throws IOException {
+ log.info("listAreaByType {},{}",areaType,areaCode);
+ CaseAreaDTO area = getArea();
+ log.info("listAreaByType area {}",JSON.toJSONString(area));
+ if(ObjectUtils.isEmpty(areaType) || areaType.equals("") || areaType.equals("1")){
+ return area.getChildren();
+ }
+ if(areaType.equals("2")){
+ List<CaseAreaDTO> children = area.getChildren();
+ for (CaseAreaDTO child : children) {
+ if(child.getAreaCode().equals(areaCode)){
+ return child.getChildren();
+ }
+ }
+ }
+ return new ArrayList<>();
+ }
}
--
Gitblit v1.8.0