Browse Source

数字社区平台 1级项目分类数量 从业务库直接查询

dev_shibei_match
jianjun 4 years ago
parent
commit
772752b9be
  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. 44
      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

@ -24,6 +24,7 @@ import com.epmet.dataaggre.dto.govproject.ProjectRelatedPersonnelDTO;
import com.epmet.dataaggre.dto.govproject.ResiEventDTO; import com.epmet.dataaggre.dto.govproject.ResiEventDTO;
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;
@ -115,4 +116,5 @@ public interface ProjectDao extends BaseDao<ProjectEntity> {
@Param("userIds") List<String> userIds, @Param("userIds") List<String> userIds,
@Param("origin") String origin); @Param("origin") String origin);
} 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

44
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.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;
import com.epmet.commons.tools.exception.RenException; 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.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.DateUtils;
@ -46,6 +49,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -357,6 +361,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

@ -379,5 +379,20 @@
GROUP BY pc.project_id GROUP BY pc.project_id
ORDER BY p.created_time DESC ORDER BY p.created_time DESC
</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