Browse Source

支部建设接口v1

dev_shibei_match
yinzuomei 4 years ago
parent
commit
28da367a68
  1. 96
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/FactGroupActDailyDTO.java
  2. 76
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ActCategoryDictDTO.java
  3. 42
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/BranchConAnalysisFormDTO.java
  4. 32
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/GroupActCategoryQueryFormDTO.java
  5. 44
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/SubAnalysisByCodeFormDTO.java
  6. 20
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/BranchConAnalysisDetailDTO.java
  7. 37
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/BranchConAnalysisResultDTO.java
  8. 20
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/OrgInfoCommonDTO.java
  9. 30
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/SubAnalysisByCodeResultDTO.java
  10. 74
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GroupActController.java
  11. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java
  12. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java
  13. 5
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resigroup/ResiGroupDao.java
  14. 5
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
  15. 11
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
  16. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java
  17. 26
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
  18. 31
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java
  19. 156
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java
  20. 47
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml
  21. 14
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml
  22. 13
      epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiGroupDao.xml

96
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/FactGroupActDailyDTO.java

@ -0,0 +1,96 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dataaggre.dto.datastats;
import lombok.Data;
import java.io.Serializable;
/**
* 组织活动(参加人数组织次数平均参加人数)按天累计值分析
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-05-13
*/
@Data
public class FactGroupActDailyDTO implements Serializable {
private static final long serialVersionUID = 4411632223804355342L;
/**
* 客户ID
*/
private String customerId;
/**
* 数据更新至日期IdyyyyMMdd
*/
private String dateId;
/**
* 网格id
*/
private String orgId;
/**
* 网格grid;组织agency
*/
private String orgType;
/**
* 1)orgType=grid: pid=网格所属组织id;
2)orgType=agency pid=当前组织的上级组织
*/
private String pid;
/**
* 1)orgType=grid: pids=网格所有上级组织包括pid;
2)orgType=agency pids=当前组织的所有上级组织包括pid.
*/
private String pids;
/**
* 活动分类编码
*/
private String categoryCode;
/**
* 上级分类编码
*/
private String parentCode;
/**
* 分类等级
*/
private Integer level;
/**
* 截止到dateId: 组织次数;包含dateId这一天的数据
*/
private Integer organizeTotal;
/**
* 截止到dateId: 参加人数;包含dateId这一天的数据
*/
private Integer participateUserTotal;
/**
* 截止到dateId: 平均参加人数;包含dateId这一天的数据
*/
private Integer avgParticipateUserTotal;
}

76
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ActCategoryDictDTO.java

@ -0,0 +1,76 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dataaggre.dto.resigroup;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
/**
* 活动类别字典
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2021-04-16
*/
@Data
public class ActCategoryDictDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@JsonIgnore
private String id;
/**
* 客户id
*/
@JsonIgnore
private String customerId;
/**
* 类别编码
*/
private String categoryCode;
/**
* 活动类别名称eg支部建设联建共建
*/
private String categoryName;
/**
* 等级1,2......
*/
@JsonIgnore
private Integer level;
/**
* 排序
*/
@JsonIgnore
private Integer sort;
/**
* 上级类别编码
*/
@JsonIgnore
private String parentCode;
}

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

@ -0,0 +1,42 @@
package com.epmet.dataaggre.dto.resigroup.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 001支建+联建统计分析 入参
*
* @author yinzuomei@elink-cn.com
* @date 2021/5/18 9:16
*/
@Data
public class BranchConAnalysisFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
/**
* 支部建设100联建共建101
*/
@NotBlank(message = "firstCategoryCode必传,支部建设:100;联建共建:101", groups = AddUserInternalGroup.class)
private String firstCategoryCode;
/**
* 当前客户id
*/
@NotBlank(message = "客户id不能为空", groups = AddUserInternalGroup.class)
private String customerId;
/**
* 当前组织或者网格id
*/
@NotBlank(message = "orgId不能为空", groups = AddUserInternalGroup.class)
private String orgId;
/**
* 默认传组织agency; 网格grid
*/
@NotBlank(message = "orgType不能为空", groups = AddUserInternalGroup.class)
private String orgType;
}

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

@ -0,0 +1,32 @@
package com.epmet.dataaggre.dto.resigroup.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 002支建+联建二级分类字典查询 入参
*
* @author yinzuomei@elink-cn.com
* @date 2021/5/18 13:42
*/
@Data
public class GroupActCategoryQueryFormDTO implements Serializable {
private static final long serialVersionUID = 8373780230315448396L;
public interface AddUserInternalGroup {
}
/**
* 支部建设100联建共建101
*/
@NotBlank(message = "firstCategoryCode必传,支部建设:100;联建共建:101", groups = AddUserInternalGroup.class)
private String firstCategoryCode;
/**
* 当前客户id
*/
@NotBlank(message = "客户id不能为空", groups = BranchConAnalysisFormDTO.AddUserInternalGroup.class)
private String customerId;
}

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

@ -0,0 +1,44 @@
package com.epmet.dataaggre.dto.resigroup.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 003支建+联建下级组织折线图 入参
*
* @author yinzuomei@elink-cn.com
* @date 2021/5/18 13:52
*/
@Data
public class SubAnalysisByCodeFormDTO implements Serializable {
private static final long serialVersionUID = -4132250208377993452L;
public interface AddUserInternalGroup {
}
/**
* 分类编码002接口返回的
*/
@NotBlank(message = "categoryCode不能为空", groups = AddUserInternalGroup.class)
private String categoryCode;
/**
* 当前客户id
*/
@NotBlank(message = "客户id不能为空", groups = AddUserInternalGroup.class)
private String customerId;
/**
* 当前组织或者网格id
*/
@NotBlank(message = "orgId不能为空", groups = AddUserInternalGroup.class)
private String orgId;
/**
* 默认传组织agency; 网格grid
*/
@NotBlank(message = "orgType不能为空", groups = AddUserInternalGroup.class)
private String orgType;
}

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

@ -0,0 +1,20 @@
package com.epmet.dataaggre.dto.resigroup.result;
import lombok.Data;
import java.io.Serializable;
/**
* 001支建+联建统计分析 返参
*
* @author yinzuomei@elink-cn.com
* @date 2021/5/18 15:12
*/
@Data
public class BranchConAnalysisDetailDTO implements Serializable {
private String name;
private String type;
private Integer value;
private Integer avg;
private String categoryCode;
}

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

@ -0,0 +1,37 @@
package com.epmet.dataaggre.dto.resigroup.result;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 001支建+联建统计分析 返参
*
* @author yinzuomei@elink-cn.com
* @date 2021/5/18 10:01
*/
@Data
public class BranchConAnalysisResultDTO implements Serializable {
private static final long serialVersionUID = -4998343002705222898L;
/**
* 组织活动次数
*/
private Integer organizeTotal;
/**
* 参加活动人数
*/
private Integer participateUserTotal;
private List<BranchConAnalysisDetailDTO> dataList;
public BranchConAnalysisResultDTO() {
this.organizeTotal = NumConstant.ZERO;
this.participateUserTotal = NumConstant.ZERO;
this.dataList=new ArrayList<>();
}
}

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

@ -0,0 +1,20 @@
package com.epmet.dataaggre.dto.resigroup.result;
import lombok.Data;
import java.io.Serializable;
/**
* 组织或者网格基本信息
*
* @author yinzuomei@elink-cn.com
* @date 2021/5/18 14:36
*/
@Data
public class OrgInfoCommonDTO implements Serializable {
private static final long serialVersionUID = -2191521364070476999L;
private String orgId;
private String orgName;
private String orgType;
}

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

@ -0,0 +1,30 @@
package com.epmet.dataaggre.dto.resigroup.result;
import lombok.Data;
import java.io.Serializable;
/**
* 003支建+联建下级组织折线图 返参
*
* @author yinzuomei@elink-cn.com
* @date 2021/5/18 14:09
*/
@Data
public class SubAnalysisByCodeResultDTO implements Serializable {
private static final long serialVersionUID = -6025482721295705372L;
/**
* 横坐标名称组织名或者网格名
*/
private String name;
/**
* 参加人数组织次数平均参加人数
*/
private String type;
private Integer value;
private String orgId;
}

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

@ -0,0 +1,74 @@
package com.epmet.dataaggre.controller;
import com.epmet.commons.tools.utils.Result;
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.SubAnalysisByCodeFormDTO;
import com.epmet.dataaggre.dto.resigroup.result.BranchConAnalysisResultDTO;
import com.epmet.dataaggre.dto.resigroup.result.SubAnalysisByCodeResultDTO;
import com.epmet.dataaggre.service.resigroup.ResiGroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 专项组-组织活动相关API放这
*
* @author yinzuomei@elink-cn.com
* @date 2021/5/18 9:08
*/
@RestController
@RequestMapping("groupact")
public class GroupActController {
@Autowired
private ResiGroupService resiGroupService;
/**
* @return com.epmet.commons.tools.utils.Result<com.epmet.dataaggre.dto.resigroup.result.BranchConAnalysisResultDTO>
* @param formDTO
* @author yinzuomei
* @description 001支建+联建统计分析
* @Date 2021/5/18 10:17
**/
@PostMapping("branchconanalysis")
public Result<BranchConAnalysisResultDTO> branchConAnalysis(@RequestBody BranchConAnalysisFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,BranchConAnalysisFormDTO.AddUserInternalGroup.class);
return new Result<BranchConAnalysisResultDTO>().ok(resiGroupService.branchConAnalysis(formDTO));
}
/**
* @return com.epmet.commons.tools.utils.Result<java.util.List<com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO>>
* @param formDTO
* @author yinzuomei
* @description 002支建+联建二级分类字典查询
* @Date 2021/5/18 13:49
**/
@PostMapping("categorydictlist")
public Result<List<ActCategoryDictDTO>> queryCategoryDictList(@RequestBody GroupActCategoryQueryFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,GroupActCategoryQueryFormDTO.AddUserInternalGroup.class);
return new Result<List<ActCategoryDictDTO>>().ok(resiGroupService.queryActCategoryDictList(formDTO.getCustomerId(),formDTO.getFirstCategoryCode()));
}
/**
* @return com.epmet.commons.tools.utils.Result<com.epmet.dataaggre.dto.resigroup.result.SubAnalysisByCodeResultDTO>
* @param formDTO
* @author yinzuomei
* @description 003支建+联建下级组织折线图
* @Date 2021/5/18 14:31
**/
@PostMapping("subanalysisbycode")
public Result<List<SubAnalysisByCodeResultDTO>> querySubAnalysisByCode(@RequestBody SubAnalysisByCodeFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,GroupActCategoryQueryFormDTO.AddUserInternalGroup.class);
return new Result<List<SubAnalysisByCodeResultDTO>>().ok(resiGroupService.querySubAnalysisByCode(formDTO));
}
}

11
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java

@ -17,6 +17,7 @@
package com.epmet.dataaggre.dao.datastats;
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.*;
@ -154,4 +155,14 @@ public interface DataStatsDao {
*/
List<SubGridProjectResultDTO> getSubGridProject(@Param("gridIds") List<String> gridIds, @Param("dateId") String dateId);
List<FactGroupActDailyDTO> branchConAnalysis(@Param("customerId")String customerId,
@Param("orgId")String orgId,
@Param("orgType")String orgType,
@Param("dateId")String dateId,
@Param("parentCode")String parentCode);
List<FactGroupActDailyDTO> querySubAnalysisByCode(@Param("customerId")String customerId,
@Param("pid")String pid,
@Param("dateId")String dateId,
@Param("categoryCode")String categoryCode);
}

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java

@ -49,4 +49,7 @@ public interface CustomerAgencyDao extends BaseDao<CustomerAgencyEntity> {
String getAgencyIdByUserId(@Param("userId") String userId);
List<String> selectUsedAreaCodeList(@Param("parentAreaCode") String parentAreaCode);
List<CustomerAgencyEntity> selectNextAgency(@Param("customerId")String customerId, @Param("pid")String pid);
}

5
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resigroup/ResiGroupDao.java

@ -18,6 +18,7 @@
package com.epmet.dataaggre.dao.resigroup;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
import com.epmet.dataaggre.dto.resigroup.result.CandidateListResultDTO;
import com.epmet.dataaggre.entity.resigroup.ResiGroupEntity;
import org.apache.ibatis.annotations.Mapper;
@ -41,5 +42,7 @@ public interface ResiGroupDao extends BaseDao<ResiGroupEntity> {
* @date 2021/3/30 上午10:13
*/
List<CandidateListResultDTO> candidateList(@Param("groupId")String groupId);
List<ActCategoryDictDTO> selectActCategoryDictDTOByPcode(@Param("customerId")String customerId,
@Param("categoryCode")String firstCategoryCode);
}

5
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java

@ -1,5 +1,6 @@
package com.epmet.dataaggre.service.datastats;
import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO;
import com.epmet.dataaggre.dto.datastats.form.AgenctBasicDataFormDTO;
import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO;
import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO;
@ -91,4 +92,8 @@ public interface DataStatsService {
* @author sun
*/
List<SubGridProjectResultDTO> subGridProject(SubGridFormDTO formDTO);
List<FactGroupActDailyDTO> branchConAnalysis(String customerId, String orgId, String orgType, String dateId, String parentCode);
List<FactGroupActDailyDTO> querySubAnalysisByCode(String customerId, String pid, String dateId, String categoryCode);
}

11
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java

@ -5,6 +5,7 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.datastats.DataStatsDao;
import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO;
import com.epmet.dataaggre.dto.datastats.form.AgenctBasicDataFormDTO;
import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO;
import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO;
@ -811,4 +812,14 @@ public class DataStatsServiceImpl implements DataStatsService {
return resultList;
}
@Override
public List<FactGroupActDailyDTO> branchConAnalysis(String customerId, String orgId, String orgType, String dateId, String parentCode) {
return dataStatsDao.branchConAnalysis(customerId,orgId,orgType,dateId,parentCode);
}
@Override
public List<FactGroupActDailyDTO> querySubAnalysisByCode(String customerId, String pid, String dateId, String categoryCode) {
return dataStatsDao.querySubAnalysisByCode(customerId,pid,dateId,categoryCode);
}
}

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java

@ -5,6 +5,7 @@ import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO;
import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO;
import java.util.List;
@ -45,4 +46,6 @@ public interface GovOrgService {
String getAgencyIdByUserId(String userId);
List<NextAreaCodeResultDTO> queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO);
List<OrgInfoCommonDTO> queryNextOrgInfoDTO(String customerId, String orgId, String orgType);
}

26
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java

@ -15,6 +15,7 @@ import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO;
import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO;
import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO;
import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity;
import com.epmet.dataaggre.service.commonservice.AreaCodeService;
import com.epmet.dataaggre.service.govorg.GovOrgService;
@ -162,6 +163,31 @@ public class GovOrgServiceImpl implements GovOrgService {
return allList;
}
@Override
public List<OrgInfoCommonDTO> queryNextOrgInfoDTO(String customerId, String orgId, String orgType) {
List<OrgInfoCommonDTO> result=new ArrayList<>();
if("agency".equals(orgType)){
List<CustomerAgencyEntity> customerAgencyEntityList = customerAgencyDao.selectNextAgency(customerId, orgId);
customerAgencyEntityList.forEach(agencyEntity->{
OrgInfoCommonDTO agecnyInfo=new OrgInfoCommonDTO();
agecnyInfo.setOrgId(agencyEntity.getId());
agecnyInfo.setOrgName(agencyEntity.getOrganizationName());
agecnyInfo.setOrgType("agency");
result.add(agecnyInfo);
});
}else if("grid".equals(orgType)){
List<GridInfoResultDTO> list= customerGridDao.selectGridListByAgencyId(orgId);
list.forEach(grid->{
OrgInfoCommonDTO gridInfo=new OrgInfoCommonDTO();
gridInfo.setOrgId(grid.getGridId());
gridInfo.setOrgName(grid.getGridName());
gridInfo.setOrgType("grid");
result.add(gridInfo);
});
}
return result;
}
public static void main(String[] args) {
List<NextAreaCodeResultDTO> allList = new ArrayList<>();
NextAreaCodeResultDTO m1 = new NextAreaCodeResultDTO();

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

@ -1,9 +1,13 @@
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.SubAnalysisByCodeFormDTO;
import com.epmet.dataaggre.dto.resigroup.result.BranchConAnalysisResultDTO;
import com.epmet.dataaggre.dto.resigroup.result.CandidateListResultDTO;
import org.apache.ibatis.annotations.Param;
import com.epmet.dataaggre.dto.resigroup.result.SubAnalysisByCodeResultDTO;
import java.util.List;
@ -20,4 +24,29 @@ public interface ResiGroupService {
*/
List<CandidateListResultDTO> candidateList(CandidateListFormDTO formDTO);
List<ResiTopicDTO> selectTopicInfoByIds(List<String> topicIds);
/**
* 001支建+联建统计分析
*
* @param formDTO
* @return com.epmet.dataaggre.dto.resigroup.result.BranchConAnalysisResultDTO
*/
BranchConAnalysisResultDTO branchConAnalysis(BranchConAnalysisFormDTO formDTO);
/**
* 002支建+联建二级分类字典查询
*
* @param customerId
* @param firstCategoryCode
* @return com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO
*/
List<ActCategoryDictDTO> queryActCategoryDictList(String customerId, String firstCategoryCode);
/**
* 003支建+联建下级组织折线图
*
* @param formDTO
* @return com.epmet.dataaggre.dto.resigroup.result.DataCommonDTO
*/
List<SubAnalysisByCodeResultDTO> querySubAnalysisByCode(SubAnalysisByCodeFormDTO formDTO);
}

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

@ -1,17 +1,25 @@
package com.epmet.dataaggre.service.resigroup.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.dataaggre.constant.DataSourceConstant;
import com.epmet.dataaggre.dao.resigroup.ResiGroupDao;
import com.epmet.dataaggre.dao.resigroup.ResiTopicDao;
import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO;
import com.epmet.dataaggre.dto.epmetuser.result.UserInfosResultDTO;
import com.epmet.dataaggre.dto.resigroup.ResiGroupDTO;
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.result.CandidateListResultDTO;
import com.epmet.dataaggre.dto.resigroup.form.SubAnalysisByCodeFormDTO;
import com.epmet.dataaggre.dto.resigroup.result.*;
import com.epmet.dataaggre.entity.resigroup.ResiGroupEntity;
import com.epmet.dataaggre.redis.ResiGroupRedis;
import com.epmet.dataaggre.service.datastats.DataStatsService;
import com.epmet.dataaggre.service.epmetuser.EpmetUserService;
import com.epmet.dataaggre.service.govorg.GovOrgService;
import com.epmet.dataaggre.service.resigroup.ResiGroupService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -22,6 +30,7 @@ import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -40,6 +49,10 @@ public class ResiGroupServiceImpl implements ResiGroupService {
private EpmetUserService epmetUserService;
@Autowired
private ResiGroupRedis resiGroupRedis;
@Autowired
private DataStatsService dataStatsService;
@Autowired
private GovOrgService govOrgService;
@Override
public List<ResiTopicDTO> selectTopicInfoByIds(List<String> topicIds) {
@ -92,4 +105,143 @@ public class ResiGroupServiceImpl implements ResiGroupService {
showUsers.forEach(u -> result.stream().filter(r -> u.equals(r.getUserId())).forEach(r -> disResult.add(r)));
return disResult;
}
/**
* 001支建+联建统计分析
*
* @param formDTO
* @return Result<BranchConAnalysisResultDTO>
*/
@Override
public BranchConAnalysisResultDTO branchConAnalysis(BranchConAnalysisFormDTO formDTO) {
List<ActCategoryDictDTO> categoryList = queryActCategoryDictList(formDTO.getCustomerId(), formDTO.getFirstCategoryCode());
if (CollectionUtils.isEmpty(categoryList)) {
return new BranchConAnalysisResultDTO();
}
String dateId = DateUtils.getBeforeNDay(NumConstant.ONE);
List<FactGroupActDailyDTO> factGroupActDailyDTOList = dataStatsService.branchConAnalysis(formDTO.getCustomerId(), formDTO.getOrgId(), formDTO.getOrgType(),
dateId, formDTO.getFirstCategoryCode());
/**
* List -> Map
* 需要注意的是
* toMap 如果集合对象有重复的key会报错Duplicate key .... * apple1,apple12的id都为1
* 可以用 (k1,k2)->k1 来设置如果有重复的key,则保留key1,舍弃key2
*/
Map<String,FactGroupActDailyDTO> map = factGroupActDailyDTOList.stream().collect(Collectors.toMap(FactGroupActDailyDTO::getCategoryCode, a -> a,(k1,k2)->k1));
// 组织活动次数
int organizeTotal=0;
// 参加活动人数
int participateUserTotal=0;
List<BranchConAnalysisDetailDTO> dataList=new ArrayList<>();
for (ActCategoryDictDTO categoryDictDTO : categoryList) {
BranchConAnalysisDetailDTO participateUserTotalObject=new BranchConAnalysisDetailDTO();
participateUserTotalObject.setName(categoryDictDTO.getCategoryName());
participateUserTotalObject.setType("参加人数");
participateUserTotalObject.setCategoryCode(categoryDictDTO.getCategoryCode());
BranchConAnalysisDetailDTO organizeTotalObject=new BranchConAnalysisDetailDTO();
organizeTotalObject.setName(categoryDictDTO.getCategoryName());
organizeTotalObject.setType("组织次数");
organizeTotalObject.setCategoryCode(categoryDictDTO.getCategoryCode());
/*DataCommonDTO avgParticipateUserTotalObject=new DataCommonDTO();
avgParticipateUserTotalObject.setName(categoryDictDTO.getCategoryName());
avgParticipateUserTotalObject.setType("平均参加人数");*/
if (map.containsKey(categoryDictDTO.getCategoryCode())) {
participateUserTotalObject.setValue(map.get(categoryDictDTO.getCategoryCode()).getParticipateUserTotal());
organizeTotalObject.setValue(map.get(categoryDictDTO.getCategoryCode()).getOrganizeTotal());
// avgParticipateUserTotalObject.setValue(map.get(categoryDictDTO.getCategoryCode()).getAvgParticipateUserTotal());
participateUserTotalObject.setAvg(map.get(categoryDictDTO.getCategoryCode()).getAvgParticipateUserTotal());
organizeTotalObject.setAvg(map.get(categoryDictDTO.getCategoryCode()).getAvgParticipateUserTotal());
organizeTotal += map.get(categoryDictDTO.getCategoryCode()).getOrganizeTotal();
participateUserTotal += map.get(categoryDictDTO.getCategoryCode()).getParticipateUserTotal();
} else {
participateUserTotalObject.setValue(NumConstant.ZERO);
organizeTotalObject.setValue(NumConstant.ZERO);
participateUserTotalObject.setAvg(NumConstant.ZERO);
organizeTotalObject.setAvg(NumConstant.ZERO);
// avgParticipateUserTotalObject.setValue(NumConstant.ZERO);
}
dataList.add(participateUserTotalObject);
dataList.add(organizeTotalObject);
// dataList.add(avgParticipateUserTotalObject);
}
BranchConAnalysisResultDTO resultDTO = new BranchConAnalysisResultDTO();
resultDTO.setOrganizeTotal(organizeTotal);
resultDTO.setParticipateUserTotal(participateUserTotal);
resultDTO.setDataList(dataList);
return resultDTO;
}
@Override
public List<ActCategoryDictDTO> queryActCategoryDictList(String customerId, String firstCategoryCode) {
List<ActCategoryDictDTO> categoryList=resiGroupDao.selectActCategoryDictDTOByPcode(customerId,firstCategoryCode);
if(CollectionUtils.isEmpty(categoryList)){
categoryList=resiGroupDao.selectActCategoryDictDTOByPcode(Constant.DEFAULT_CUSTOMER,firstCategoryCode);
}
return categoryList;
}
/**
* 003支建+联建下级组织折线图
*
* @param formDTO
* @return com.epmet.dataaggre.dto.resigroup.result.SubAnalysisByCodeResultDTO
*/
@Override
public List<SubAnalysisByCodeResultDTO> querySubAnalysisByCode(SubAnalysisByCodeFormDTO formDTO) {
List<OrgInfoCommonDTO> orgInfoDTOList = govOrgService.queryNextOrgInfoDTO(formDTO.getCustomerId(), formDTO.getOrgId(), formDTO.getOrgType());
if (CollectionUtils.isEmpty(orgInfoDTOList)) {
return new ArrayList<>();
}
String dateId = DateUtils.getBeforeNDay(NumConstant.ONE);
List<FactGroupActDailyDTO> factGroupActDailyDTOList = dataStatsService.querySubAnalysisByCode(formDTO.getCustomerId(), formDTO.getOrgId(),
dateId, formDTO.getCategoryCode());
Map<String, FactGroupActDailyDTO> map = factGroupActDailyDTOList.stream().collect(Collectors.toMap(FactGroupActDailyDTO::getOrgId, a -> a, (k1, k2) -> k1));
List<SubAnalysisByCodeResultDTO> resultList = new ArrayList<>();
for (OrgInfoCommonDTO orgInfo : orgInfoDTOList) {
SubAnalysisByCodeResultDTO participateUserTotalObject=new SubAnalysisByCodeResultDTO();
participateUserTotalObject.setName(orgInfo.getOrgName());
participateUserTotalObject.setType("参加人数");
participateUserTotalObject.setOrgId(orgInfo.getOrgId());
SubAnalysisByCodeResultDTO organizeTotalObject=new SubAnalysisByCodeResultDTO();
organizeTotalObject.setName(orgInfo.getOrgName());
organizeTotalObject.setType("组织次数");
organizeTotalObject.setOrgId(orgInfo.getOrgId());
SubAnalysisByCodeResultDTO avgParticipateUserTotalObject=new SubAnalysisByCodeResultDTO();
avgParticipateUserTotalObject.setName(orgInfo.getOrgName());
avgParticipateUserTotalObject.setType("平均参加人数");
avgParticipateUserTotalObject.setOrgId(orgInfo.getOrgId());
if (map.containsKey(orgInfo.getOrgId())) {
participateUserTotalObject.setValue(map.get(orgInfo.getOrgId()).getParticipateUserTotal());
organizeTotalObject.setValue(map.get(orgInfo.getOrgId()).getOrganizeTotal());
avgParticipateUserTotalObject.setValue(map.get(orgInfo.getOrgId()).getAvgParticipateUserTotal());
} else {
participateUserTotalObject.setValue(NumConstant.ZERO);
organizeTotalObject.setValue(NumConstant.ZERO);
avgParticipateUserTotalObject.setValue(NumConstant.ZERO);
}
resultList.add(participateUserTotalObject);
resultList.add(organizeTotalObject);
resultList.add(avgParticipateUserTotalObject);
}
return resultList;
}
}

47
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml

@ -314,4 +314,51 @@
project_total DESC
</select>
<select id="branchConAnalysis" parameterType="map" resultType="com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO">
SELECT
m.CUSTOMER_ID as customerId,
m.DATE_ID as dateId,
m.ORG_ID as orgId,
m.ORG_TYPE as orgType,
m.PID as pid,
m.CATEGORY_CODE as categoryCode,
m.PARENT_CODE as parentCode,
m.`LEVEL` as level,
m.ORGANIZE_TOTAL as organizeTotal,
m.PARTICIPATE_USER_TOTAL as participateUserTotal,
m.AVG_PARTICIPATE_USER_TOTAL as avgParticipateUserTotal
FROM
fact_group_act_daily m
WHERE
m.DEL_FLAG = '0'
AND m.CUSTOMER_ID = #{customerId}
AND m.PARENT_CODE = #{parentCode}
AND m.DATE_ID = #{dateId}
AND m.ORG_ID = #{orgId}
AND m.ORG_TYPE = #{orgType}
order by m.CATEGORY_CODE asc
</select>
<select id="querySubAnalysisByCode" parameterType="map" resultType="com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO">
SELECT
m.CUSTOMER_ID as customerId,
m.DATE_ID as dateId,
m.ORG_ID as orgId,
m.ORG_TYPE as orgType,
m.PID as pid,
m.CATEGORY_CODE as categoryCode,
m.PARENT_CODE as parentCode,
m.`LEVEL` as level,
m.ORGANIZE_TOTAL as organizeTotal,
m.PARTICIPATE_USER_TOTAL as participateUserTotal,
m.AVG_PARTICIPATE_USER_TOTAL as avgParticipateUserTotal
FROM
fact_group_act_daily m
WHERE
m.DEL_FLAG = '0'
AND m.CUSTOMER_ID = #{customerId}
AND m.CATEGORY_CODE = #{categoryCode}
AND m.DATE_ID = #{dateId}
AND m.PID = #{pid}
</select>
</mapper>

14
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml

@ -31,4 +31,18 @@
ca.DEL_FLAG = '0'
AND ca.PARENT_AREA_CODE = #{parentAreaCode}
</select>
<select id="selectNextAgency" parameterType="map" resultType="com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity">
SELECT
*
FROM
customer_agency ca
WHERE
ca.DEL_FLAG = '0'
<if test="customerId != null and customerId != ''">
AND ca.CUSTOMER_ID = #{customerId}
</if>
AND ca.PID = #{pid}
order by ca.CREATED_TIME asc
</select>
</mapper>

13
epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiGroupDao.xml

@ -15,4 +15,17 @@
AND rgm.GROUP_LEADER_FLAG != 'leader'
AND rgm.RESI_GROUP_ID = #{groupId}
</select>
<select id="selectActCategoryDictDTOByPcode" parameterType="map" resultType="com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO">
SELECT
*
FROM
act_category_dict acd
WHERE
acd.DEL_FLAG = '0'
AND acd.PARENT_CODE = #{categoryCode}
AND acd.CUSTOMER_ID = #{customerId}
ORDER BY
acd.SORT ASC
</select>
</mapper>
Loading…
Cancel
Save