From dc3b3e73009b3db20d6318a34c6c5d7419531d9c Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 9 Dec 2021 23:39:30 +0800 Subject: [PATCH 1/3] hautiyanpan --- .../ResiEventResearchAnalysisFormDTO.java | 2 +- .../form/TopicResearchAnalysisFormDTO.java | 44 ++++++++++ .../epmet/dto/result/ProjectInfoIcData.java | 6 ++ .../result/TopicResearchAnalysisResDTO.java | 23 +++++ .../epmet/controller/ProjectController.java | 13 ++- .../epmet/controller/ResiEventController.java | 3 - .../main/java/com/epmet/dao/ProjectDao.java | 14 +++ .../com/epmet/service/ProjectService.java | 6 ++ .../service/impl/ProjectServiceImpl.java | 86 +++++++++++++++++++ .../service/impl/ResiEventServiceImpl.java | 2 +- .../src/main/resources/mapper/ProjectDao.xml | 27 ++++++ 11 files changed, 220 insertions(+), 6 deletions(-) create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TopicResearchAnalysisFormDTO.java create mode 100644 epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/TopicResearchAnalysisResDTO.java diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ResiEventResearchAnalysisFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ResiEventResearchAnalysisFormDTO.java index c20612d279..26950059b5 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ResiEventResearchAnalysisFormDTO.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ResiEventResearchAnalysisFormDTO.java @@ -28,7 +28,7 @@ public class ResiEventResearchAnalysisFormDTO implements Serializable { /** * 当前选中的事件转为的项目id */ - @NotBlank(message = "isResiUserId不能为空",groups = AddUserInternalGroup.class) + @NotBlank(message = "projectId不能为空",groups = AddUserInternalGroup.class) private String projectId; /** diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TopicResearchAnalysisFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TopicResearchAnalysisFormDTO.java new file mode 100644 index 0000000000..b3c2ffe827 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TopicResearchAnalysisFormDTO.java @@ -0,0 +1,44 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + + +/** + * 话题详情-研判分析 + */ +@Data +public class TopicResearchAnalysisFormDTO implements Serializable { + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + /** + * 当前选中的事件转为的项目id + */ + @NotBlank(message = "projectId不能为空",groups = AddUserInternalGroup.class) + private String projectId; + + /** + * 个人档案的这个人 + */ + @NotBlank(message = "icResiUserId不能为空",groups = AddUserInternalGroup.class) + private String icResiUserId; + + /** + * 个人档案的这个人,对应小程序的人的用户id + */ + private List epmetUserIdList; + + + + + @NotBlank(message = "tokenDto中的customerId不能为空",groups = AddUserInternalGroup.class) + private String customerId; +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectInfoIcData.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectInfoIcData.java index 312f8721ab..3129e6fccc 100644 --- a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectInfoIcData.java +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectInfoIcData.java @@ -14,4 +14,10 @@ public class ProjectInfoIcData implements Serializable { private String projectTitle; private String resiEventId; private String projectStatus; + + /** + * 以下这两个参数是给话题详情-研判分析用的 + */ + private String issueId; + private String topicId; } diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/TopicResearchAnalysisResDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/TopicResearchAnalysisResDTO.java new file mode 100644 index 0000000000..37648617ed --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/TopicResearchAnalysisResDTO.java @@ -0,0 +1,23 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.util.List; + +@Data +public class TopicResearchAnalysisResDTO { + /** + * 居民信息及家属列表 + */ + private String icResiUserId; + private String icUserName; + private String houseId; + private List houseUserList; + + + /** + * 入参中给的,再返回去 + */ + private List epmetUserIdList; + private List projectData; +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java index edaaa2bc28..db1af3d7a9 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java @@ -33,7 +33,6 @@ import com.epmet.dto.result.*; import com.epmet.excel.ProjectExcel; import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO; import com.epmet.service.ProjectService; -import jdk.nashorn.internal.parser.Token; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -300,4 +299,16 @@ public class ProjectController { return new Result().ok(projectService.projectDistributionAnalysisRight(formDTO,tokenDto)); } + /** + * 个人档案-话题详情-研判分析 + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("topic-research-analysis") + public Result topicResearchAnalysis(@LoginUser TokenDto tokenDto,@RequestBody TopicResearchAnalysisFormDTO formDTO){ + formDTO.setCustomerId(tokenDto.getCustomerId()); + ValidatorUtils.validateEntity(formDTO,TopicResearchAnalysisFormDTO.AddUserInternalGroup.class); + return new Result().ok(projectService.topicResearchAnalysis(formDTO)); + } } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventController.java index c0fa147ba6..5ebcafac13 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventController.java @@ -251,9 +251,6 @@ public class ResiEventController { public Result queryResiEventResearchAnalysis(@LoginUser TokenDto tokenDto,@RequestBody ResiEventResearchAnalysisFormDTO formDTO){ formDTO.setCustomerId(tokenDto.getCustomerId()); ValidatorUtils.validateEntity(formDTO,ResiEventResearchAnalysisFormDTO.AddUserInternalGroup.class); - if (org.apache.commons.collections4.CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())) { - return new Result<>(); - } return new Result().ok(resiEventService.queryResiEventResearchAnalysis(formDTO)); } } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java index 359f35dce4..ec003c035b 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java @@ -242,4 +242,18 @@ public interface ProjectDao extends BaseDao { @Param("categoryCode")String categoryCode, @Param("excludeProjectId") String excludeProjectId, @Param("epmetUserIds")List epmetUserIds); + + /** + * 数据分析-个人档案-话题详情页面的研判分析项目列表 + * + * @param customerId + * @param categoryCode + * @param excludeProjectId + * @param epmetUserIds + * @return + */ + List selectCommonCategoryIssueProject(@Param("customerId")String customerId, + @Param("categoryCode")String categoryCode, + @Param("excludeProjectId") String excludeProjectId, + @Param("epmetUserIds")List epmetUserIds); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java index 7be2c6d71f..dff8e9d30e 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java @@ -351,4 +351,10 @@ public interface ProjectService extends BaseService { */ ProjectDistributionAnalysisRightResultDTO projectDistributionAnalysisRight(ProjectDistributionAnalysisFormDTO formDTO, TokenDto tokenDto); + /** + * 个人档案-话题详情-研判分析 + * @param formDTO + * @return + */ + TopicResearchAnalysisResDTO topicResearchAnalysis(TopicResearchAnalysisFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java index 9bb324a2ea..ad06a13462 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java @@ -2874,6 +2874,92 @@ public class ProjectServiceImpl extends BaseServiceImpl userRes = epmetUserOpenFeignClient.findFamilyMem(formDTO.getIcResiUserId()); + if (!userRes.success() || null == userRes.getData()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取居民信息接口异常"); + } + IcResiUserBriefDTO icResiUserDTO = userRes.getData(); + TopicResearchAnalysisResDTO resultDTO = ConvertUtils.sourceToTarget(icResiUserDTO, TopicResearchAnalysisResDTO.class); + resultDTO.setProjectData(new ArrayList<>()); + if(org.springframework.util.CollectionUtils.isEmpty(formDTO.getEpmetUserIdList())){ + //灭有找到小程序里的用户id, 所以不用查询接下来的项目了..... + return resultDTO; + } + resultDTO.setEpmetUserIdList(formDTO.getEpmetUserIdList()); + + // 先判断这个项目是否有分类没有直接返回 + List projectCategoryDTOList=projectCategoryService.getProjectCategoryService(formDTO.getProjectId()); + if(org.springframework.util.CollectionUtils.isEmpty(projectCategoryDTOList)){ + return resultDTO; + } + //筛选出所有的一级分类 + Set firstCategoryIds=new HashSet<>(); + for(ProjectCategoryDTO categoryDTO:projectCategoryDTOList){ + if(StringUtils.isNotBlank(categoryDTO.getCategoryPids())){ + if(NumConstant.ZERO_STR.equals(categoryDTO.getCategoryPids())){ + //当前分类就是一级分类 + firstCategoryIds.add(categoryDTO.getCategoryId()); + continue; + } + //当前分类为二级分类 + if(!categoryDTO.getCategoryPids().contains(StrConstant.COMMA)&&!categoryDTO.getCategoryPids().contains(StrConstant.COLON)){ + firstCategoryIds.add(categoryDTO.getCategoryPids()); + continue; + } + //英文逗号 + if(categoryDTO.getCategoryPids().contains(StrConstant.COMMA)){ + String[] categoryAtt=categoryDTO.getCategoryPids().split(StrConstant.COMMA); + firstCategoryIds.add(categoryAtt[NumConstant.ZERO]); + continue; + } + //可能也是英文冒号吧。。不知道是啥,所以都判断下吧 + if(categoryDTO.getCategoryPids().contains(StrConstant.COLON)){ + String[] categoryAtt=categoryDTO.getCategoryPids().split(StrConstant.COLON); + firstCategoryIds.add(categoryAtt[NumConstant.ZERO]); + continue; + } + } + } + //没有一级分类直接退出 + if(org.springframework.util.CollectionUtils.isEmpty(firstCategoryIds)){ + return resultDTO; + } + log.info(String.format("当前项目id:%s,所有一级分类id:%s",formDTO.getProjectId(), JSON.toJSONString(firstCategoryIds))); + //查询这些分类的名称 + //查询出当前人,在居民端小程序里上报的需求且转了项目的,并且还得排除当前的这个项目 + IssueProjectCategoryDictListFormDTO dictFormDto=new IssueProjectCategoryDictListFormDTO(); + dictFormDto.setCustomerId(projectCategoryDTOList.get(NumConstant.ZERO).getCustomerId()); + dictFormDto.setCstegoryIdList(new ArrayList(firstCategoryIds)); + Result> categoryRes=govIssueOpenFeignClient.getCategoryList(dictFormDto); + if(!categoryRes.success()|| org.springframework.util.CollectionUtils.isEmpty(categoryRes.getData())){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取项目分类名称异常"); + } + List projectData=new ArrayList<>(); + for(IssueProjectCategoryDictDTO categoryDictDTO:categoryRes.getData()){ + //当前项目分类一致,排除当前项目,相同分类编码 + List projectList=baseDao.selectCommonCategoryIssueProject(projectCategoryDTOList.get(NumConstant.ZERO).getCustomerId(), + categoryDictDTO.getCategoryCode(),formDTO.getProjectId(),formDTO.getEpmetUserIdList()); + if(!org.springframework.util.CollectionUtils.isEmpty(projectList)){ + ProjectDataDTO projectDataDTO=new ProjectDataDTO(); + projectDataDTO.setFirstCategoryCode(categoryDictDTO.getCategoryCode()); + projectDataDTO.setFirstCategoryName(categoryDictDTO.getCategoryName()); + projectDataDTO.setProjectList(projectList); + projectData.add(projectDataDTO); + } + } + resultDTO.setProjectData(projectData); + return resultDTO; + } + /** * @Description 区间项目分类数量处理 * @param categories diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java index 33f7668140..ed2c5ee690 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java @@ -716,7 +716,7 @@ public class ResiEventServiceImpl extends BaseServiceImpl + + + \ No newline at end of file From 18c4820c3761382fcce9866640e2c489ff238b13 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 9 Dec 2021 23:40:34 +0800 Subject: [PATCH 2/3] issueId --- .../gov-project-server/src/main/resources/mapper/ProjectDao.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml index ff4ad03072..ee2ffffe79 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml @@ -444,7 +444,7 @@ DISTINCT pc.PROJECT_ID AS projectId, p.TITLE AS projectTitle, - p.ORIGIN_ID AS resiEventId, + p.ORIGIN_ID AS issueId, p.`STATUS` AS projectStatus FROM project_category pc From 95ca57ed3e911db7305018ac35d650f93257c68a Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 9 Dec 2021 23:44:42 +0800 Subject: [PATCH 3/3] topicId --- .../src/main/resources/mapper/ProjectDao.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml index ee2ffffe79..d71fab0ee2 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml @@ -419,7 +419,9 @@ distinct pc.PROJECT_ID as projectId, p.TITLE as projectTitle, p.ORIGIN_ID as resiEventId, - p.`STATUS` as projectStatus + p.`STATUS` as projectStatus, + '' as issueId, + '' as topicId from project_category pc inner join project p on(pc.PROJECT_ID=p.id) @@ -445,7 +447,9 @@ pc.PROJECT_ID AS projectId, p.TITLE AS projectTitle, p.ORIGIN_ID AS issueId, - p.`STATUS` AS projectStatus + per.SOURCE_ID as topicId, + p.`STATUS` AS projectStatus, + '' as resiEventId FROM project_category pc INNER JOIN project_related_personnel per ON ( pc.PROJECT_ID = per.PROJECT_ID )