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