From 772752b9be5495ab0bdc79dc8245b08f1211555b Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 13 Jan 2022 13:37:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E5=AD=97=E7=A4=BE=E5=8C=BA=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=201=E7=BA=A7=E9=A1=B9=E7=9B=AE=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E6=95=B0=E9=87=8F=20=E4=BB=8E=E4=B8=9A=E5=8A=A1=E5=BA=93?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/ProjectCategoryTotalFormDTO.java | 9 +++- .../controller/GovProjectController.java | 14 +++++- .../dataaggre/dao/govproject/ProjectDao.java | 4 +- .../service/govproject/GovProjectService.java | 7 +++ .../impl/GovProjectServiceImpl.java | 44 +++++++++++++++++++ .../mapper/govproject/ProjectDao.xml | 17 ++++++- 6 files changed, 90 insertions(+), 5 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectCategoryTotalFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectCategoryTotalFormDTO.java index 66d4e983b8..56d8f391e9 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectCategoryTotalFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectCategoryTotalFormDTO.java @@ -4,10 +4,8 @@ import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; import lombok.NoArgsConstructor; -import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import java.io.Serializable; -import java.util.List; /** * @Description 赋能平台【项目分类分析】-接口入参 @@ -26,6 +24,13 @@ public class ProjectCategoryTotalFormDTO implements Serializable { private String customerId; + /** + * 一级分类 code长度 + */ + private Integer categoryOneLength; + + private String fullOrgIds; + public interface Project extends CustomerClientShowGroup { } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java index 422aa74f4c..675203df06 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java @@ -90,13 +90,25 @@ public class GovProjectController { * @Description 赋能平台【项目分类分析】各分类项目数图表 * @author sun */ - @PostMapping("projectcategorylist") + @Deprecated //由v2替换 先测试 再说 后期就可以整条链路干掉了 + @PostMapping("projectcategorylistOld") public Result> projectCategoryList(@LoginUser TokenDto tokenDto, @RequestBody ProjectCategoryTotalFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO, ProjectCategoryTotalFormDTO.Project.class); formDTO.setCustomerId(tokenDto.getCustomerId()); return new Result>().ok(govProjectService.projectCategoryList(formDTO)); } + /** + * @Description 赋能平台【项目分类分析】各分类项目数图表 + * @author sun + */ + @PostMapping("projectcategorylist") + public Result> projectcategorylistV2(@LoginUser TokenDto tokenDto, @RequestBody ProjectCategoryTotalFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, ProjectCategoryTotalFormDTO.Project.class); + formDTO.setCustomerId(tokenDto.getCustomerId()); + return new Result>().ok(govProjectService.projectCategoryListV2(formDTO)); + } + /** * @Description 赋能平台【项目处理分析】分类下项目列表 * @author sun diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java index ee44c3cee8..1945951993 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java @@ -24,6 +24,7 @@ import com.epmet.dataaggre.dto.govproject.ProjectRelatedPersonnelDTO; import com.epmet.dataaggre.dto.govproject.ResiEventDTO; import com.epmet.dataaggre.dto.govproject.form.AllProjectFormDTO; import com.epmet.dataaggre.dto.govproject.form.CategoryProjectFormDTO; +import com.epmet.dataaggre.dto.govproject.form.ProjectCategoryTotalFormDTO; import com.epmet.dataaggre.dto.govproject.form.ProjectTotalFormDTO; import com.epmet.dataaggre.dto.govproject.result.*; import com.epmet.dataaggre.entity.govproject.ProjectEntity; @@ -115,4 +116,5 @@ public interface ProjectDao extends BaseDao { @Param("userIds") List userIds, @Param("origin") String origin); -} \ No newline at end of file + List getCategoryCount(ProjectCategoryTotalFormDTO formDTO); +} 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 d118a05746..fccf574544 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 @@ -75,6 +75,13 @@ public interface GovProjectService { */ List projectCategoryList(ProjectCategoryTotalFormDTO formDTO); + /** + * desc: 查询业务数据中一级分类项目数量 + * @param formDTO + * @return + */ + List projectCategoryListV2(ProjectCategoryTotalFormDTO formDTO); + /** * @Description 赋能平台【项目处理分析】分类下项目列表 * @author sun 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 fb91510b88..a14d90d2f7 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 @@ -2,11 +2,14 @@ package com.epmet.dataaggre.service.govproject.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.redis.common.CustomerOrgRedis; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; +import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; @@ -46,6 +49,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -357,6 +361,46 @@ public class GovProjectServiceImpl implements GovProjectService { return resultList; } + @Override + public List projectCategoryListV2(ProjectCategoryTotalFormDTO formDTO) { + //1.查询客户下一级分类信息 + List categoryList = govIssueService.categoryList(formDTO.getCustomerId(), "1", "enable"); + if (CollectionUtils.isEmpty(categoryList)){ + log.warn("projectCategoryListV2 项目分类字典表 一级分类配置不正确"); + return new ArrayList<>(); + } + AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(formDTO.getAgencyId()); + if (agencyInfo == null){ + log.warn("projectCategoryListV2 组织信息获取失败"); + return new ArrayList<>(); + } + Map levelOneCategoryMap = categoryList.stream().collect(Collectors.toMap(IssueProjectCategoryDictDTO::getCategoryCode, Function.identity())); + + int length = categoryList.get(NumConstant.ZERO).getCategoryCode().length(); + formDTO.setCategoryOneLength(length); + formDTO.setFullOrgIds(formDTO.getAgencyId()); + if (StringUtils.isNotBlank(agencyInfo.getPids())){ + formDTO.setFullOrgIds(agencyInfo.getPids().concat(StrConstant.COLON).concat(formDTO.getAgencyId())); + } + + List categoryCount = projectDao.getCategoryCount(formDTO); + Iterator iterator = categoryCount.iterator(); + while (iterator.hasNext()){ + ProjectCategoryTotalResultDTO next = iterator.next(); + IssueProjectCategoryDictDTO dto = levelOneCategoryMap.get(next.getCategoryCode()); + if (dto == null){ + log.warn("projectCategoryListV2 项目分类code已删除,不返回,code:{}", next.getCategoryCode()); + iterator.remove(); + continue; + } + next.setCategoryName(dto.getCategoryName()); + next.setColor(dto.getColor()); + next.setAgencyId(formDTO.getAgencyId()); + } + + return categoryCount; + } + /** * @Description 赋能平台【项目处理分析】分类下项目列表 * @author sun 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 f7b74ccdb9..39a56d798d 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 @@ -379,5 +379,20 @@ GROUP BY pc.project_id ORDER BY p.created_time DESC + - \ No newline at end of file +