Browse Source

Merge remote-tracking branch 'remotes/origin/dev_shibei_project_catagory' into dev

# Conflicts:
#	epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java
#	epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java
#	epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml
master
jianjun 4 years ago
parent
commit
6d1e55e7ca
  1. 9
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/govproject/form/ProjectCategoryTotalFormDTO.java
  2. 14
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java
  3. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java
  4. 7
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/GovProjectService.java
  5. 41
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java
  6. 17
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml

9
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.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
* @Description 赋能平台项目分类分析-接口入参 * @Description 赋能平台项目分类分析-接口入参
@ -26,6 +24,13 @@ public class ProjectCategoryTotalFormDTO implements Serializable {
private String customerId; private String customerId;
/**
* 一级分类 code长度
*/
private Integer categoryOneLength;
private String fullOrgIds;
public interface Project extends CustomerClientShowGroup { public interface Project extends CustomerClientShowGroup {
} }

14
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GovProjectController.java

@ -90,13 +90,25 @@ public class GovProjectController {
* @Description 赋能平台项目分类分析各分类项目数图表 * @Description 赋能平台项目分类分析各分类项目数图表
* @author sun * @author sun
*/ */
@PostMapping("projectcategorylist") @Deprecated //由v2替换 先测试 再说 后期就可以整条链路干掉了
@PostMapping("projectcategorylistOld")
public Result<List<ProjectCategoryTotalResultDTO>> projectCategoryList(@LoginUser TokenDto tokenDto, @RequestBody ProjectCategoryTotalFormDTO formDTO) { public Result<List<ProjectCategoryTotalResultDTO>> projectCategoryList(@LoginUser TokenDto tokenDto, @RequestBody ProjectCategoryTotalFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, ProjectCategoryTotalFormDTO.Project.class); ValidatorUtils.validateEntity(formDTO, ProjectCategoryTotalFormDTO.Project.class);
formDTO.setCustomerId(tokenDto.getCustomerId()); formDTO.setCustomerId(tokenDto.getCustomerId());
return new Result<List<ProjectCategoryTotalResultDTO>>().ok(govProjectService.projectCategoryList(formDTO)); return new Result<List<ProjectCategoryTotalResultDTO>>().ok(govProjectService.projectCategoryList(formDTO));
} }
/**
* @Description 赋能平台项目分类分析各分类项目数图表
* @author sun
*/
@PostMapping("projectcategorylist")
public Result<List<ProjectCategoryTotalResultDTO>> projectcategorylistV2(@LoginUser TokenDto tokenDto, @RequestBody ProjectCategoryTotalFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, ProjectCategoryTotalFormDTO.Project.class);
formDTO.setCustomerId(tokenDto.getCustomerId());
return new Result<List<ProjectCategoryTotalResultDTO>>().ok(govProjectService.projectCategoryListV2(formDTO));
}
/** /**
* @Description 赋能平台项目处理分析分类下项目列表 * @Description 赋能平台项目处理分析分类下项目列表
* @author sun * @author sun

4
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govproject/ProjectDao.java

@ -25,6 +25,7 @@ import com.epmet.dataaggre.dto.govproject.ResiEventDTO;
import com.epmet.dataaggre.dto.govproject.ResiEventReportOrgDTO; import com.epmet.dataaggre.dto.govproject.ResiEventReportOrgDTO;
import com.epmet.dataaggre.dto.govproject.form.AllProjectFormDTO; import com.epmet.dataaggre.dto.govproject.form.AllProjectFormDTO;
import com.epmet.dataaggre.dto.govproject.form.CategoryProjectFormDTO; 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.form.ProjectTotalFormDTO;
import com.epmet.dataaggre.dto.govproject.result.*; import com.epmet.dataaggre.dto.govproject.result.*;
import com.epmet.dataaggre.entity.govproject.ProjectEntity; import com.epmet.dataaggre.entity.govproject.ProjectEntity;
@ -121,4 +122,5 @@ public interface ProjectDao extends BaseDao<ProjectEntity> {
* @author sun * @author sun
*/ */
List<ResiEventReportOrgDTO> getEventOrgList(@Param("eventIds") List<String> eventIds); List<ResiEventReportOrgDTO> getEventOrgList(@Param("eventIds") List<String> eventIds);
} List<ProjectCategoryTotalResultDTO> getCategoryCount(ProjectCategoryTotalFormDTO formDTO);
}

7
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<ProjectCategoryTotalResultDTO> projectCategoryList(ProjectCategoryTotalFormDTO formDTO); List<ProjectCategoryTotalResultDTO> projectCategoryList(ProjectCategoryTotalFormDTO formDTO);
/**
* desc: 查询业务数据中一级分类项目数量
* @param formDTO
* @return
*/
List<ProjectCategoryTotalResultDTO> projectCategoryListV2(ProjectCategoryTotalFormDTO formDTO);
/** /**
* @Description 赋能平台项目处理分析分类下项目列表 * @Description 赋能平台项目处理分析分类下项目列表
* @author sun * @author sun

41
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govproject/impl/GovProjectServiceImpl.java

@ -2,6 +2,7 @@ package com.epmet.dataaggre.service.govproject.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.NumConstant; 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.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.EpmetException;
@ -362,6 +363,46 @@ public class GovProjectServiceImpl implements GovProjectService {
return resultList; return resultList;
} }
@Override
public List<ProjectCategoryTotalResultDTO> projectCategoryListV2(ProjectCategoryTotalFormDTO formDTO) {
//1.查询客户下一级分类信息
List<IssueProjectCategoryDictDTO> 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<String, IssueProjectCategoryDictDTO> 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<ProjectCategoryTotalResultDTO> categoryCount = projectDao.getCategoryCount(formDTO);
Iterator<ProjectCategoryTotalResultDTO> 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 赋能平台项目处理分析分类下项目列表 * @Description 赋能平台项目处理分析分类下项目列表
* @author sun * @author sun

17
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govproject/ProjectDao.xml

@ -395,5 +395,20 @@
#{eventId} #{eventId}
</foreach> </foreach>
</select> </select>
<select id="getCategoryCount" resultType="com.epmet.dataaggre.dto.govproject.result.ProjectCategoryTotalResultDTO">
SELECT
LEFT(c.CATEGORY_CODE,#{categoryOneLength}) CATEGORY_CODE,
COUNT(DISTINCT c.PROJECT_ID) total
FROM
project_category c
LEFT JOIN project p ON p.ID = c.PROJECT_ID
WHERE
p.ORG_ID_PATH LIKE concat(#{fullOrgIds},'%')
AND date_format(p.CREATED_TIME,'%Y%m%d') <![CDATA[ <= ]]> #{dateId}
AND p.DEL_FLAG = '0'
AND c.DEL_FLAG = '0'
GROUP BY LEFT(c.CATEGORY_CODE,#{categoryOneLength})
ORDER BY total DESC
</select>
</mapper> </mapper>

Loading…
Cancel
Save