From 535837686c082900d08863c886c18c217c028337 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Wed, 19 May 2021 12:28:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E9=83=A8=E5=BB=BA=E8=AE=BE=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3v3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resigroup/form/GroupActRankFormDTO.java | 3 ++ .../result/GroupActRankDetailDTO.java | 14 +++++- .../result/GroupActRankResultDTO.java | 21 +++++++++ .../controller/GroupActController.java | 2 +- .../dataaggre/dao/datastats/DataStatsDao.java | 7 +++ .../service/datastats/DataStatsService.java | 4 ++ .../datastats/impl/DataStatsServiceImpl.java | 10 ++++ .../service/govorg/GovOrgService.java | 2 +- .../govorg/impl/GovOrgServiceImpl.java | 17 +++++-- .../resigroup/impl/ResiGroupServiceImpl.java | 47 +++++++++++++++++-- .../mapper/datastats/DatsStatsDao.xml | 20 ++++++++ 11 files changed, 136 insertions(+), 11 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/GroupActRankFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/GroupActRankFormDTO.java index e9a920f869..58a029661b 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/GroupActRankFormDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/GroupActRankFormDTO.java @@ -41,5 +41,8 @@ public class GroupActRankFormDTO implements Serializable { @NotBlank(message = "orgType不能为空", groups = BranchConAnalysisFormDTO.AddUserInternalGroup.class) private String orgType; + /** + * 排序编码;可以不传,前端自己处理。 + */ private String rankCode; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankDetailDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankDetailDTO.java index 21e3dc29fd..575b9bd803 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankDetailDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankDetailDTO.java @@ -2,12 +2,22 @@ package com.epmet.dataaggre.dto.resigroup.result; import lombok.Data; +import java.io.Serializable; + /** - * 描述一下 + * 005、【支建+联建】下级组织排行列表 * * @author yinzuomei@elink-cn.com * @date 2021/5/19 9:31 */ @Data -public class GroupActRankDetailDTO { +public class GroupActRankDetailDTO implements Serializable { + private static final long serialVersionUID = 7738751412518098478L; + + private String categoryCode; + private String categoryName; + private Integer organizeTotal; + private Integer participateUserTotal; + private String organizeName="组织总次数"; + private String participateUserName="参加总人数"; } diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankResultDTO.java index 45efaa413b..56822631f2 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankResultDTO.java @@ -1,8 +1,12 @@ package com.epmet.dataaggre.dto.resigroup.result; +import com.epmet.commons.tools.constant.NumConstant; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; /** * 005、【支建+联建】下级组织排行列表 @@ -19,4 +23,21 @@ public class GroupActRankResultDTO implements Serializable { private String organizeName = "组织总次数"; private Integer participateUserTotal; private String participateUserName = "参加总人数"; + private List categoryList; + + @JsonIgnore + private Integer sortValue; + + public GroupActRankResultDTO() { + this.orgId = ""; + this.orgType = ""; + this.orgName = ""; + this.organizeTotal = NumConstant.ZERO; + this.organizeName = "组织总次数"; + this.participateUserTotal = NumConstant.ZERO; + this.participateUserName = "参加总人数"; + this.categoryList = new ArrayList<>(); + } + + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GroupActController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GroupActController.java index b79cb0b7f7..ee86d8c1d1 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GroupActController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GroupActController.java @@ -97,7 +97,7 @@ public class GroupActController { **/ @PostMapping("subranklist") public Result> querySubRankList(@RequestBody GroupActRankFormDTO formDTO){ - ValidatorUtils.validateEntity(formDTO,GroupActRankFormDTO.class); + ValidatorUtils.validateEntity(formDTO,GroupActRankFormDTO.AddUserInternalGroup.class); return new Result>().ok(resiGroupService.querySubRankList(formDTO)); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java index 2a7aae6f5e..61632b35bd 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java @@ -21,6 +21,8 @@ import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO; import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO; import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO; import com.epmet.dataaggre.dto.datastats.result.*; +import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; +import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; import com.epmet.dataaggre.entity.datastats.DimGridEntity; import org.apache.ibatis.annotations.Mapper; @@ -219,4 +221,9 @@ public interface DataStatsDao { @Param("pid")String pid, @Param("dateId")String dateId, @Param("categoryCode")String categoryCode); + + List selectGroupActRankDetail(@Param("customerId") String customerId, + @Param("dateId") String dateId, + @Param("orgId") String orgId, + @Param("actCategoryDictDTOList") List actCategoryDictDTOList); } \ No newline at end of file diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java index 0fe6517106..1e99251989 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java @@ -7,6 +7,8 @@ import com.epmet.dataaggre.dto.datastats.form.GridBasicDataFormDTO; import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO; import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO; import com.epmet.dataaggre.dto.datastats.result.*; +import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; +import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import java.util.List; @@ -124,4 +126,6 @@ public interface DataStatsService { List branchConAnalysis(String customerId, String orgId, String orgType, String dateId, String parentCode); List querySubAnalysisByCode(String customerId, String pid, String dateId, String categoryCode); + + List selectGroupActRankDetail(String customerId, String dateId, String orgId, List actCategoryDictDTOList); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index acb2cc22a0..415b1e969b 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -13,6 +13,8 @@ import com.epmet.dataaggre.dto.datastats.form.GridBasicDataFormDTO; import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO; import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO; import com.epmet.dataaggre.dto.datastats.result.*; +import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO; +import com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO; import com.epmet.dataaggre.entity.datastats.DimAgencyEntity; import com.epmet.dataaggre.entity.datastats.DimGridEntity; import com.epmet.dataaggre.service.datastats.DataStatsService; @@ -999,4 +1001,12 @@ public class DataStatsServiceImpl implements DataStatsService { return dataStatsDao.querySubAnalysisByCode(customerId,pid,dateId,categoryCode); } + @Override + public List selectGroupActRankDetail(String customerId, String dateId, String orgId, List actCategoryDictDTOList) { + if(CollectionUtils.isNotEmpty(actCategoryDictDTOList)){ + return dataStatsDao.selectGroupActRankDetail(customerId,dateId,orgId,actCategoryDictDTOList); + } + return new ArrayList<>(); + } + } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java index d0780b046d..916044b1f3 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java @@ -47,5 +47,5 @@ public interface GovOrgService { List queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO); - List queryNextOrgInfoDTO(String customerId, String orgId, String orgType); + List queryNextOrgInfoDTO(String customerId, String orgId); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java index 100978e144..ec45f0419f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java @@ -164,10 +164,10 @@ public class GovOrgServiceImpl implements GovOrgService { } @Override - public List queryNextOrgInfoDTO(String customerId, String orgId, String orgType) { + public List queryNextOrgInfoDTO(String customerId, String orgId) { List result=new ArrayList<>(); - if("agency".equals(orgType)){ - List customerAgencyEntityList = customerAgencyDao.selectNextAgency(customerId, orgId); + List customerAgencyEntityList = customerAgencyDao.selectNextAgency(customerId, orgId); + if(CollectionUtils.isNotEmpty(customerAgencyEntityList)){ customerAgencyEntityList.forEach(agencyEntity->{ OrgInfoCommonDTO agecnyInfo=new OrgInfoCommonDTO(); agecnyInfo.setOrgId(agencyEntity.getId()); @@ -175,6 +175,17 @@ public class GovOrgServiceImpl implements GovOrgService { agecnyInfo.setOrgType("agency"); result.add(agecnyInfo); }); + return result; + } + List gridInfoResultDTOList=customerGridDao.selectGridListByAgencyId(orgId); + if(CollectionUtils.isNotEmpty(gridInfoResultDTOList)){ + gridInfoResultDTOList.forEach(grid->{ + OrgInfoCommonDTO gridInfo=new OrgInfoCommonDTO(); + gridInfo.setOrgId(grid.getGridId()); + gridInfo.setOrgName(grid.getGridName()); + gridInfo.setOrgType("grid"); + result.add(gridInfo); + }); } return result; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java index 030adf6b6a..a56c37e37f 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java @@ -25,8 +25,10 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.util.ArrayList; +import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -198,7 +200,7 @@ public class ResiGroupServiceImpl implements ResiGroupService { */ @Override public List querySubAnalysisByCode(SubAnalysisByCodeFormDTO formDTO) { - List orgInfoDTOList = govOrgService.queryNextOrgInfoDTO(formDTO.getCustomerId(), formDTO.getOrgId(), formDTO.getOrgType()); + List orgInfoDTOList = govOrgService.queryNextOrgInfoDTO(formDTO.getCustomerId(), formDTO.getOrgId()); if (CollectionUtils.isEmpty(orgInfoDTOList)) { return new ArrayList<>(); } @@ -277,11 +279,48 @@ public class ResiGroupServiceImpl implements ResiGroupService { */ @Override public List querySubRankList(GroupActRankFormDTO formDTO) { - List orgInfoDTOList = govOrgService.queryNextOrgInfoDTO(formDTO.getCustomerId(), formDTO.getOrgId(), formDTO.getOrgType()); + List orgInfoDTOList = govOrgService.queryNextOrgInfoDTO(formDTO.getCustomerId(), formDTO.getOrgId()); if (CollectionUtils.isEmpty(orgInfoDTOList)) { return new ArrayList<>(); } - // todo - return null; + List resultDTOList=new ArrayList<>(); + String dateId = DateUtils.getBeforeNDay(NumConstant.ONE); + // 1、根据以及编码查询出二级编码列表 + List actCategoryDictDTOList=queryActCategoryDictList(formDTO.getCustomerId(),formDTO.getFirstCategoryCode()); + for(OrgInfoCommonDTO orgInfo:orgInfoDTOList){ + GroupActRankResultDTO resultDTO=new GroupActRankResultDTO(); + resultDTO.setOrgId(orgInfo.getOrgId()); + resultDTO.setOrgName(orgInfo.getOrgName()); + resultDTO.setOrgType(orgInfo.getOrgType()); + if(!CollectionUtils.isEmpty(actCategoryDictDTOList)){ + int organizeTotal = NumConstant.ZERO; + int participateUserTotal = NumConstant.ZERO; + List detailList=dataStatsService.selectGroupActRankDetail(formDTO.getCustomerId(),dateId,orgInfo.getOrgId(),actCategoryDictDTOList); + for(GroupActRankDetailDTO deatil:detailList){ + organizeTotal+=deatil.getOrganizeTotal(); + participateUserTotal+=deatil.getParticipateUserTotal(); + } + resultDTO.setOrganizeTotal(organizeTotal); + resultDTO.setParticipateUserTotal(participateUserTotal); + resultDTO.setCategoryList(detailList); + } + resultDTOList.add(resultDTO); + } + + if(StringUtils.isEmpty(formDTO.getRankCode())||"orgtotal".equals(formDTO.getRankCode())){ + //按照 组织总次数降序排列 + resultDTOList.sort(Comparator.comparing(GroupActRankResultDTO::getOrganizeTotal).reversed()); + }else{ + resultDTOList.forEach(m->{ + for(GroupActRankDetailDTO categoryDto:m.getCategoryList()){ + if(formDTO.getRankCode().equals(categoryDto.getCategoryCode())){ + m.setSortValue(categoryDto.getOrganizeTotal()); + break; + } + } + }); + resultDTOList.sort(Comparator.comparing(GroupActRankResultDTO::getSortValue).reversed()); + } + return resultDTOList; } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml index d918e91a3f..0b41cf0b15 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml @@ -578,4 +578,24 @@ AND m.DATE_ID = #{dateId} AND m.PID = #{pid} + + \ No newline at end of file