From 4dc28386ab4df80a23556b32bdbf6262610e07b4 Mon Sep 17 00:00:00 2001 From: sunyuchao Date: Fri, 14 Jan 2022 16:49:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=82=E5=8C=97=E5=88=86=E7=B1=BB=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=95=B0=E6=8D=AE=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=8F=98=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/govproject/GovProjectService.java | 1 + .../impl/GovProjectServiceImpl.java | 120 ++++++++++++++++++ .../mapper/govproject/ProjectDao.xml | 13 +- 3 files changed, 131 insertions(+), 3 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java index fccf574544..0fd666ab3d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java @@ -87,6 +87,7 @@ public interface GovProjectService { * @author sun */ CategoryProjectResultDTO categoryProjectList(CategoryProjectFormDTO formDTO); + CategoryProjectResultDTO categoryProjectListSb(CategoryProjectFormDTO formDTO); /** * @Description 赋能平台【项目处理分析】研判分析 diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java index f3be5a377b..087a4e9b17 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java @@ -521,6 +521,126 @@ public class GovProjectServiceImpl implements GovProjectService { resultDTO.setList(result.getList()); return resultDTO; } + /** + * @Description 赋能平台【项目处理分析】分类下项目列表--市北接口 + * 【市北的分类有三类四类,跟我们只有一类二类不一样,单独给开一个接口使用】 + * @author sun + */ + @Override + public CategoryProjectResultDTO categoryProjectListSb(CategoryProjectFormDTO formDTO) { + CategoryProjectResultDTO resultDTO = new CategoryProjectResultDTO(); + //所选日期后一天的dateId值 + formDTO.setToDateId(DateUtils.dateOrmonthId(formDTO.getDateId(), "date", 1)); + //1.查询客户下分类信息 + List categoryList = govIssueService.categoryList(formDTO.getCustomerId(), null, null); + /*List categoreCodeList = categoryList.stream().filter(ca -> ca.getParentCategoryCode().equals(formDTO.getCategoryCode())).map(m -> m.getCategoryCode()).collect(Collectors.toList()); + formDTO.setCategoreCodeList(categoreCodeList);*/ + + //2.查询组织及下级截止某一天的某个一级分类下的项目列表 + PageInfo result = + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()).doSelectPageInfo(() -> projectDao.categoryProjectList(formDTO)); + if (org.springframework.util.CollectionUtils.isEmpty(result.getList())) { + return resultDTO; + } + resultDTO.setTotal((int) result.getTotal()); + + //3.查询已有项目列表涉及的所有分类信息【一个项目存在多个一级分类下的二级分类】 + List projectIds = result.getList().stream().map(CategoryProjectResultDTO.Project::getProjectId).collect(Collectors.toList()); + List list = projectDao.getCategoryList(projectIds); + + //4.查询来源事件的项目上报的组织信息 + List eventIds = result.getList().stream().filter(re -> "resi_event".equals(re.getOrigin())).map(m -> m.getOriginId()).collect(Collectors.toList()); + List eventOrgList = projectDao.getEventOrgList(eventIds); + Map eventMap = eventOrgList.stream().collect(Collectors.toMap(ResiEventReportOrgDTO::getResiEventId, Function.identity())); + + //5.查询来源议题、事件的项目居民端创建人userId + List eventUser = projectDao.getEventList(projectIds); + List topicUser = projectDao.getTopicUser(projectIds); + + //5.封装数据 + //组织或网格id->组织或网格名称 + Map map = new HashMap<>(); + result.getList().forEach(re -> { + //所属组织 + if ("issue".equals(re.getOrigin())) { + if (map.containsKey(re.getGridId())) { + re.setOrgName(map.get(re.getGridId())); + } else { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(re.getGridId()); + if (gridInfo != null) { + re.setOrgName(gridInfo.getGridName()); + map.put(re.getGridId(), gridInfo.getGridName()); + } + } + } else if ("agency".equals(re.getOrigin())) { + if (map.containsKey(re.getAgencyId())) { + re.setOrgName(map.get(re.getAgencyId())); + } else { + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(re.getAgencyId()); + if (agencyInfo != null) { + re.setOrgName(agencyInfo.getOrganizationName()); + map.put(re.getAgencyId(), agencyInfo.getOrganizationName()); + } + + } + } else if ("resi_event".equals(re.getOrigin())) { + if (eventMap.containsKey(re.getOriginId())) { + if ("grid".equals(eventMap.get(re.getOriginId()).getOrgType())) { + if (map.containsKey(re.getGridId())) { + re.setOrgName(map.get(re.getGridId())); + } else { + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(re.getGridId()); + if (gridInfo != null) { + re.setOrgName(gridInfo.getGridName()); + map.put(re.getGridId(), gridInfo.getGridName()); + } + } + } else { + if (map.containsKey(re.getAgencyId())) { + re.setOrgName(map.get(re.getAgencyId())); + } else { + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(re.getAgencyId()); + if (agencyInfo != null) { + re.setOrgName(agencyInfo.getOrganizationName()); + map.put(re.getAgencyId(), agencyInfo.getOrganizationName()); + } + } + } + } + } + //项目涉及分类信息【一个项目涉及多个一级分类】 + //一级分类Id + List caId = new ArrayList<>(); + list.forEach(ca -> { + if (ca.getProjectId().equals(re.getProjectId())) { + caId.add(ca.getCategoryPids()); + } + }); + //一级分类名称、code集合 + List caName = new ArrayList<>(); + List caCode = new ArrayList<>(); + categoryList.forEach(ca -> caId.stream().filter(li -> ca.getId().equals(li)).forEach(s -> { + caName.add(ca.getCategoryName()); + caCode.add(ca.getCategoryCode()); + })); + re.setCategoryNames(caName); + re.setCategoryCodes(caCode); + //项目来源话题、事件的创建人信息 + eventUser.forEach(ev -> { + if (re.getProjectId().equals(ev.getProjectId())) { + re.setUserId(ev.getReportUserId()); + } + }); + topicUser.forEach(to -> { + if (re.getProjectId().equals(to.getProjectId())) { + re.setUserId(to.getUserId()); + } + }); + }); + + resultDTO.setList(result.getList()); + return resultDTO; + } /** * @Description 赋能平台【项目处理分析】研判分析 diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml index 6d8a2f9ee3..6363f27471 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml @@ -279,9 +279,16 @@ p.del_flag = '0' AND p.org_id_path LIKE CONCAT('%', #{agencyId}, '%') AND p.created_time DATE_FORMAT(#{toDateId}, '%Y-%m-%d') - - #{code} - + + + + #{code} + + + + AND pc.category_code LIKE CONCAT(#{categoryCode}, '%') + + GROUP BY pc.project_id ORDER BY