Browse Source

Merge remote-tracking branch 'origin/develop' into release_temp

dev_shibei_match
yinzuomei 4 years ago
parent
commit
52f10a6eb2
  1. 2
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/ResiEventResearchAnalysisFormDTO.java
  2. 44
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/TopicResearchAnalysisFormDTO.java
  3. 6
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectInfoIcData.java
  4. 23
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/TopicResearchAnalysisResDTO.java
  5. 13
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectController.java
  6. 3
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventController.java
  7. 14
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
  8. 6
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java
  9. 86
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  10. 2
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ResiEventServiceImpl.java
  11. 33
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml

2
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;
/**

44
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<String> epmetUserIdList;
@NotBlank(message = "tokenDto中的customerId不能为空",groups = AddUserInternalGroup.class)
private String customerId;
}

6
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;
}

23
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<HouseUserDTO> houseUserList;
/**
* 入参中给的再返回去
*/
private List<String> epmetUserIdList;
private List<ProjectDataDTO> projectData;
}

13
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<ProjectDistributionAnalysisRightResultDTO>().ok(projectService.projectDistributionAnalysisRight(formDTO,tokenDto));
}
/**
* 个人档案-话题详情-研判分析
* @param tokenDto
* @param formDTO
* @return
*/
@PostMapping("topic-research-analysis")
public Result<TopicResearchAnalysisResDTO> topicResearchAnalysis(@LoginUser TokenDto tokenDto,@RequestBody TopicResearchAnalysisFormDTO formDTO){
formDTO.setCustomerId(tokenDto.getCustomerId());
ValidatorUtils.validateEntity(formDTO,TopicResearchAnalysisFormDTO.AddUserInternalGroup.class);
return new Result<TopicResearchAnalysisResDTO>().ok(projectService.topicResearchAnalysis(formDTO));
}
}

3
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ResiEventController.java

@ -251,9 +251,6 @@ public class ResiEventController {
public Result<ResiEventResearchAnalysisResDTO> 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<ResiEventResearchAnalysisResDTO>().ok(resiEventService.queryResiEventResearchAnalysis(formDTO));
}
}

14
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java

@ -242,4 +242,18 @@ public interface ProjectDao extends BaseDao<ProjectEntity> {
@Param("categoryCode")String categoryCode,
@Param("excludeProjectId") String excludeProjectId,
@Param("epmetUserIds")List<String> epmetUserIds);
/**
* 数据分析-个人档案-话题详情页面的研判分析项目列表
*
* @param customerId
* @param categoryCode
* @param excludeProjectId
* @param epmetUserIds
* @return
*/
List<ProjectInfoIcData> selectCommonCategoryIssueProject(@Param("customerId")String customerId,
@Param("categoryCode")String categoryCode,
@Param("excludeProjectId") String excludeProjectId,
@Param("epmetUserIds")List<String> epmetUserIds);
}

6
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectService.java

@ -351,4 +351,10 @@ public interface ProjectService extends BaseService<ProjectEntity> {
*/
ProjectDistributionAnalysisRightResultDTO projectDistributionAnalysisRight(ProjectDistributionAnalysisFormDTO formDTO, TokenDto tokenDto);
/**
* 个人档案-话题详情-研判分析
* @param formDTO
* @return
*/
TopicResearchAnalysisResDTO topicResearchAnalysis(TopicResearchAnalysisFormDTO formDTO);
}

86
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java

@ -2929,6 +2929,92 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
return result;
}
/**
* 个人档案-话题详情-研判分析
*
* @param formDTO
* @return
*/
@Override
public TopicResearchAnalysisResDTO topicResearchAnalysis(TopicResearchAnalysisFormDTO formDTO) {
//获取案件居民和及家属列表
Result<IcResiUserBriefDTO> 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<ProjectCategoryDTO> projectCategoryDTOList=projectCategoryService.getProjectCategoryService(formDTO.getProjectId());
if(org.springframework.util.CollectionUtils.isEmpty(projectCategoryDTOList)){
return resultDTO;
}
//筛选出所有的一级分类
Set<String> 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<String>(firstCategoryIds));
Result<List<IssueProjectCategoryDictDTO>> categoryRes=govIssueOpenFeignClient.getCategoryList(dictFormDto);
if(!categoryRes.success()|| org.springframework.util.CollectionUtils.isEmpty(categoryRes.getData())){
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取项目分类名称异常");
}
List<ProjectDataDTO> projectData=new ArrayList<>();
for(IssueProjectCategoryDictDTO categoryDictDTO:categoryRes.getData()){
//当前项目分类一致,排除当前项目,相同分类编码
List<ProjectInfoIcData> 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

2
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<ResiEventDao, ResiEven
continue;
}
//当前分类为二级分类
if(!categoryDTO.getCategoryPids().contains(StrConstant.COMMA)&&categoryDTO.getCategoryPids().contains(StrConstant.COLON)){
if(!categoryDTO.getCategoryPids().contains(StrConstant.COMMA)&&!categoryDTO.getCategoryPids().contains(StrConstant.COLON)){
firstCategoryIds.add(categoryDTO.getCategoryPids());
continue;
}

33
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)
@ -437,4 +439,33 @@
and pc.CATEGORY_CODE like concat(#{categoryCode},'%')
order by p.CREATED_TIME desc
</select>
<!-- 数据分析-个人档案-话题详情页面的研判分析项目列表 -->
<select id="selectCommonCategoryIssueProject" parameterType="map" resultType="com.epmet.dto.result.ProjectInfoIcData">
SELECT
DISTINCT
pc.PROJECT_ID AS projectId,
p.TITLE AS projectTitle,
p.ORIGIN_ID AS issueId,
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 )
INNER JOIN project p
WHERE
pc.DEL_FLAG = '0'
AND per.DEL_FLAG = '0'
AND p.DEL_FLAG = '0'
AND pc.CUSTOMER_ID = #{customerId}
AND p.ORIGIN = 'issue'
AND pc.PROJECT_ID != #{excludeProjectId}
<foreach collection="epmetUserIds" item="epmetUserId" open="AND( " separator=" OR " index="index" close=")">
AND per.USER_ID = #{epmetUserId}
</foreach>
AND pc.CATEGORY_CODE LIKE concat( #{categoryCode}, '%' )
ORDER BY
p.CREATED_TIME DESC
</select>
</mapper>
Loading…
Cancel
Save