Browse Source

Merge remote-tracking branch 'origin/dev_third_data' into dev_temp

dev_shibei_match
yinzuomei 4 years ago
parent
commit
400eade4da
  1. 48
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/GroupActRankFormDTO.java
  2. 23
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankDetailDTO.java
  3. 43
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankResultDTO.java
  4. 15
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GroupActController.java
  5. 7
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java
  6. 4
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
  7. 10
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  8. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java
  9. 14
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  10. 18
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java
  11. 83
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java
  12. 20
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml

48
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/GroupActRankFormDTO.java

@ -0,0 +1,48 @@
package com.epmet.dataaggre.dto.resigroup.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 005支建+联建下级组织排行列表
*
* @author yinzuomei@elink-cn.com
* @date 2021/5/18 17:30
*/
@Data
public class GroupActRankFormDTO implements Serializable {
private static final long serialVersionUID = 2293552582281839132L;
public interface AddUserInternalGroup {
}
/**
* 支部建设100联建共建101
*/
@NotBlank(message = "firstCategoryCode必传,支部建设:100;联建共建:101", groups = BranchConAnalysisFormDTO.AddUserInternalGroup.class)
private String firstCategoryCode;
/**
* 当前客户id
*/
@NotBlank(message = "客户id不能为空", groups = BranchConAnalysisFormDTO.AddUserInternalGroup.class)
private String customerId;
/**
* 当前组织或者网格id
*/
@NotBlank(message = "orgId不能为空", groups = BranchConAnalysisFormDTO.AddUserInternalGroup.class)
private String orgId;
/**
* 默认传组织agency; 网格grid
*/
@NotBlank(message = "orgType不能为空", groups = BranchConAnalysisFormDTO.AddUserInternalGroup.class)
private String orgType;
/**
* 排序编码可以不传前端自己处理
*/
private String rankCode;
}

23
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankDetailDTO.java

@ -0,0 +1,23 @@
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 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;
}

43
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankResultDTO.java

@ -0,0 +1,43 @@
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支建+联建下级组织排行列表
*
* @author yinzuomei@elink-cn.com
* @date 2021/5/18 17:33
*/
@Data
public class GroupActRankResultDTO implements Serializable {
private String orgId;
private String orgType;
private String orgName;
private Integer organizeTotal;
private String organizeName;
private Integer participateUserTotal;
private String participateUserName;
private List<GroupActRankDetailDTO> 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<>();
}
}

15
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GroupActController.java

@ -5,8 +5,10 @@ import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
import com.epmet.dataaggre.dto.resigroup.form.BranchConAnalysisFormDTO;
import com.epmet.dataaggre.dto.resigroup.form.GroupActCategoryQueryFormDTO;
import com.epmet.dataaggre.dto.resigroup.form.GroupActRankFormDTO;
import com.epmet.dataaggre.dto.resigroup.form.SubAnalysisByCodeFormDTO;
import com.epmet.dataaggre.dto.resigroup.result.BranchConAnalysisResultDTO;
import com.epmet.dataaggre.dto.resigroup.result.GroupActRankResultDTO;
import com.epmet.dataaggre.dto.resigroup.result.RankCodeResultDTO;
import com.epmet.dataaggre.dto.resigroup.result.SubAnalysisByCodeResultDTO;
import com.epmet.dataaggre.service.resigroup.ResiGroupService;
@ -86,4 +88,17 @@ public class GroupActController {
}
/**
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.dataaggre.dto.resigroup.result.GroupActRankResultDTO>>
* @param formDTO
* @author yinzuomei
* @description 005支建+联建下级组织排行列表
* @Date 2021/5/18 17:46
**/
@PostMapping("subranklist")
public Result<List<GroupActRankResultDTO>> querySubRankList(@RequestBody GroupActRankFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,GroupActRankFormDTO.AddUserInternalGroup.class);
return new Result<List<GroupActRankResultDTO>>().ok(resiGroupService.querySubRankList(formDTO));
}
}

7
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<GroupActRankDetailDTO> selectGroupActRankDetail(@Param("customerId") String customerId,
@Param("dateId") String dateId,
@Param("orgId") String orgId,
@Param("actCategoryDictDTOList") List<ActCategoryDictDTO> actCategoryDictDTOList);
}

4
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<FactGroupActDailyDTO> branchConAnalysis(String customerId, String orgId, String orgType, String dateId, String parentCode);
List<FactGroupActDailyDTO> querySubAnalysisByCode(String customerId, String pid, String dateId, String categoryCode);
List<GroupActRankDetailDTO> selectGroupActRankDetail(String customerId, String dateId, String orgId, List<ActCategoryDictDTO> actCategoryDictDTOList);
}

10
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<GroupActRankDetailDTO> selectGroupActRankDetail(String customerId, String dateId, String orgId, List<ActCategoryDictDTO> actCategoryDictDTOList) {
if(CollectionUtils.isNotEmpty(actCategoryDictDTOList)){
return dataStatsDao.selectGroupActRankDetail(customerId,dateId,orgId,actCategoryDictDTOList);
}
return new ArrayList<>();
}
}

2
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<NextAreaCodeResultDTO> queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO);
List<OrgInfoCommonDTO> queryNextOrgInfoDTO(String customerId, String orgId, String orgType);
List<OrgInfoCommonDTO> queryNextOrgInfoDTO(String customerId, String orgId);
}

14
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<OrgInfoCommonDTO> queryNextOrgInfoDTO(String customerId, String orgId, String orgType) {
public List<OrgInfoCommonDTO> queryNextOrgInfoDTO(String customerId, String orgId) {
List<OrgInfoCommonDTO> result=new ArrayList<>();
if("agency".equals(orgType)){
List<CustomerAgencyEntity> customerAgencyEntityList = customerAgencyDao.selectNextAgency(customerId, orgId);
List<CustomerAgencyEntity> customerAgencyEntityList = customerAgencyDao.selectNextAgency(customerId, orgId);
if(CollectionUtils.isNotEmpty(customerAgencyEntityList)){
customerAgencyEntityList.forEach(agencyEntity->{
OrgInfoCommonDTO agecnyInfo=new OrgInfoCommonDTO();
agecnyInfo.setOrgId(agencyEntity.getId());
@ -175,9 +175,11 @@ public class GovOrgServiceImpl implements GovOrgService {
agecnyInfo.setOrgType("agency");
result.add(agecnyInfo);
});
}else if("grid".equals(orgType)){
List<GridInfoResultDTO> list= customerGridDao.selectGridListByAgencyId(orgId);
list.forEach(grid->{
return result;
}
List<GridInfoResultDTO> gridInfoResultDTOList=customerGridDao.selectGridListByAgencyId(orgId);
if(CollectionUtils.isNotEmpty(gridInfoResultDTOList)){
gridInfoResultDTOList.forEach(grid->{
OrgInfoCommonDTO gridInfo=new OrgInfoCommonDTO();
gridInfo.setOrgId(grid.getGridId());
gridInfo.setOrgName(grid.getGridName());

18
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java

@ -2,14 +2,8 @@ package com.epmet.dataaggre.service.resigroup;
import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO;
import com.epmet.dataaggre.dto.resigroup.form.BranchConAnalysisFormDTO;
import com.epmet.dataaggre.dto.resigroup.form.CandidateListFormDTO;
import com.epmet.dataaggre.dto.resigroup.form.GroupActCategoryQueryFormDTO;
import com.epmet.dataaggre.dto.resigroup.form.SubAnalysisByCodeFormDTO;
import com.epmet.dataaggre.dto.resigroup.result.BranchConAnalysisResultDTO;
import com.epmet.dataaggre.dto.resigroup.result.CandidateListResultDTO;
import com.epmet.dataaggre.dto.resigroup.result.RankCodeResultDTO;
import com.epmet.dataaggre.dto.resigroup.result.SubAnalysisByCodeResultDTO;
import com.epmet.dataaggre.dto.resigroup.form.*;
import com.epmet.dataaggre.dto.resigroup.result.*;
import java.util.List;
@ -59,4 +53,12 @@ public interface ResiGroupService {
* @return com.epmet.dataaggre.dto.resigroup.result.RankCodeResultDTO
*/
List<RankCodeResultDTO> queryRankCodeList(GroupActCategoryQueryFormDTO formDTO);
/**
* 005支建+联建下级组织排行列表
*
* @param formDTO
* @return com.epmet.dataaggre.dto.resigroup.result.GroupActRankResultDTO
*/
List<GroupActRankResultDTO> querySubRankList(GroupActRankFormDTO formDTO);
}

83
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java

@ -11,10 +11,7 @@ import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO;
import com.epmet.dataaggre.dto.epmetuser.result.UserInfosResultDTO;
import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO;
import com.epmet.dataaggre.dto.resigroup.form.BranchConAnalysisFormDTO;
import com.epmet.dataaggre.dto.resigroup.form.CandidateListFormDTO;
import com.epmet.dataaggre.dto.resigroup.form.GroupActCategoryQueryFormDTO;
import com.epmet.dataaggre.dto.resigroup.form.SubAnalysisByCodeFormDTO;
import com.epmet.dataaggre.dto.resigroup.form.*;
import com.epmet.dataaggre.dto.resigroup.result.*;
import com.epmet.dataaggre.entity.resigroup.ResiGroupEntity;
import com.epmet.dataaggre.redis.ResiGroupRedis;
@ -28,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;
@ -201,7 +200,7 @@ public class ResiGroupServiceImpl implements ResiGroupService {
*/
@Override
public List<SubAnalysisByCodeResultDTO> querySubAnalysisByCode(SubAnalysisByCodeFormDTO formDTO) {
List<OrgInfoCommonDTO> orgInfoDTOList = govOrgService.queryNextOrgInfoDTO(formDTO.getCustomerId(), formDTO.getOrgId(), formDTO.getOrgType());
List<OrgInfoCommonDTO> orgInfoDTOList = govOrgService.queryNextOrgInfoDTO(formDTO.getCustomerId(), formDTO.getOrgId());
if (CollectionUtils.isEmpty(orgInfoDTOList)) {
return new ArrayList<>();
}
@ -271,4 +270,78 @@ public class ResiGroupServiceImpl implements ResiGroupService {
});
return resultList;
}
/**
* 005支建+联建下级组织排行列表
*
* @param formDTO
* @return com.epmet.dataaggre.dto.resigroup.result.GroupActRankResultDTO
*/
@Override
public List<GroupActRankResultDTO> querySubRankList(GroupActRankFormDTO formDTO) {
List<OrgInfoCommonDTO> orgInfoDTOList = govOrgService.queryNextOrgInfoDTO(formDTO.getCustomerId(), formDTO.getOrgId());
if (CollectionUtils.isEmpty(orgInfoDTOList)) {
return new ArrayList<>();
}
List<GroupActRankResultDTO> resultDTOList=new ArrayList<>();
String dateId = DateUtils.getBeforeNDay(NumConstant.ONE);
// 1、根据以及编码查询出二级编码列表
List<ActCategoryDictDTO> 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)){
List<GroupActRankDetailDTO> detailList=new ArrayList<>();
List<GroupActRankDetailDTO> detailRecords=dataStatsService.selectGroupActRankDetail(formDTO.getCustomerId(),dateId,orgInfo.getOrgId(),actCategoryDictDTOList);
Map<String, GroupActRankDetailDTO> map = detailRecords.stream().collect(Collectors.toMap(GroupActRankDetailDTO::getCategoryCode, a -> a, (k1, k2) -> k1));
for(ActCategoryDictDTO actCategoryDictDTO:actCategoryDictDTOList){
GroupActRankDetailDTO temp=new GroupActRankDetailDTO();
temp.setCategoryCode(actCategoryDictDTO.getCategoryCode());
temp.setCategoryName(actCategoryDictDTO.getCategoryName());
temp.setOrganizeName("组织总次数");
temp.setParticipateUserName("参加总人数");
if(map.containsKey(actCategoryDictDTO.getCategoryCode())){
temp.setOrganizeTotal(map.get(actCategoryDictDTO.getCategoryCode()).getOrganizeTotal());
temp.setParticipateUserTotal(map.get(actCategoryDictDTO.getCategoryCode()).getParticipateUserTotal());
}else{
temp.setOrganizeTotal(NumConstant.ZERO);
temp.setParticipateUserTotal(NumConstant.ZERO);
}
detailList.add(temp);
}
resultDTO.setCategoryList(detailList);
int organizeTotal = NumConstant.ZERO;
int participateUserTotal = NumConstant.ZERO;
for(GroupActRankDetailDTO deatil:detailList){
organizeTotal+=deatil.getOrganizeTotal();
participateUserTotal+=deatil.getParticipateUserTotal();
}
resultDTO.setOrganizeTotal(organizeTotal);
resultDTO.setParticipateUserTotal(participateUserTotal);
}
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;
}
}

20
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}
</select>
<select id="selectGroupActRankDetail" parameterType="map" resultType="com.epmet.dataaggre.dto.resigroup.result.GroupActRankDetailDTO">
<foreach collection="actCategoryDictDTOList" item="category" separator=" UNION ">
select
#{category.categoryCode} as categoryCode,
#{category.categoryName} as categoryName,
IFNULL(m.ORGANIZE_TOTAL,0) as organizeTotal,
IFNULL(m.PARTICIPATE_USER_TOTAL,0) as participateUserTotal,
'组织总次数' as organizeName,
'参加总人数'as participateUserName
FROM
fact_group_act_daily m
WHERE
m.DEL_FLAG = '0'
AND m.CUSTOMER_ID = #{customerId}
AND m.CATEGORY_CODE = #{category.categoryCode}
AND m.DATE_ID = #{dateId}
AND m.ORG_ID = #{orgId}
</foreach>
</select>
</mapper>
Loading…
Cancel
Save