Browse Source

Merge remote-tracking branch 'origin/dev_screen_data_2.0' into dev_temp

dev_shibei_match
zxc 5 years ago
parent
commit
8e74124b06
  1. 7
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginExtractController.java
  2. 6
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/PartyGuideService.java
  3. 41
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PartyGuideServiceImpl.java
  4. 5
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java

7
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginExtractController.java

@ -1,6 +1,5 @@
package com.epmet.controller; package com.epmet.controller;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.extract.form.ExtractOriginFormDTO; import com.epmet.dto.extract.form.ExtractOriginFormDTO;
@ -12,8 +11,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/** /**
* 原始数据清洗 * 原始数据清洗
@ -43,7 +40,7 @@ public class FactOriginExtractController {
*/ */
@PostMapping("extractall") @PostMapping("extractall")
public Result extractAll(@RequestBody ExtractOriginFormDTO extractOriginFormDTO) { public Result extractAll(@RequestBody ExtractOriginFormDTO extractOriginFormDTO) {
if (StringUtils.isNotBlank(extractOriginFormDTO.getStartDate()) && StringUtils.isNotBlank(extractOriginFormDTO.getEndDate())) { /*if (StringUtils.isNotBlank(extractOriginFormDTO.getStartDate()) && StringUtils.isNotBlank(extractOriginFormDTO.getEndDate())) {
List<String> daysBetween = DateUtils.getDaysBetween(extractOriginFormDTO.getStartDate(), extractOriginFormDTO.getEndDate()); List<String> daysBetween = DateUtils.getDaysBetween(extractOriginFormDTO.getStartDate(), extractOriginFormDTO.getEndDate());
for (int i = 0; i < daysBetween.size(); i++) { for (int i = 0; i < daysBetween.size(); i++) {
String dateDimId = daysBetween.get(i); String dateDimId = daysBetween.get(i);
@ -52,7 +49,7 @@ public class FactOriginExtractController {
} }
} else { } else {
factOriginExtractService.extractAll(extractOriginFormDTO); factOriginExtractService.extractAll(extractOriginFormDTO);
} }*/
factOriginExtractService.extractAll(extractOriginFormDTO); factOriginExtractService.extractAll(extractOriginFormDTO);
return new Result(); return new Result();
} }

6
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/PartyGuideService.java

@ -1,6 +1,6 @@
package com.epmet.service.evaluationindex.extract.toscreen; package com.epmet.service.evaluationindex.extract.toscreen;
import com.epmet.dto.extract.form.ScreenExtractFormDTO; import com.epmet.dto.extract.form.ExtractScreenFormDTO;
/** /**
* @Author zxc * @Author zxc
@ -10,10 +10,10 @@ public interface PartyGuideService {
/** /**
* @Description 党建引领抽取 * @Description 党建引领抽取
* @param screenExtractFormDTO * @param formDTO
* @author zxc * @author zxc
* @date 2020/9/24 5:10 下午 * @date 2020/9/24 5:10 下午
*/ */
Boolean partyGuideExtract(ScreenExtractFormDTO screenExtractFormDTO); Boolean partyGuideExtract(ExtractScreenFormDTO formDTO);
} }

41
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PartyGuideServiceImpl.java

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.constant.ScreenConstant; import com.epmet.constant.ScreenConstant;
import com.epmet.dto.extract.form.ExtractScreenFormDTO;
import com.epmet.dto.extract.form.ScreenExtractFormDTO; import com.epmet.dto.extract.form.ScreenExtractFormDTO;
import com.epmet.dto.extract.form.ScreenPartyBranchDataFormDTO; import com.epmet.dto.extract.form.ScreenPartyBranchDataFormDTO;
import com.epmet.dto.extract.form.ScreenPartyLinkMassesDataFormDTO; import com.epmet.dto.extract.form.ScreenPartyLinkMassesDataFormDTO;
@ -64,7 +65,7 @@ public class PartyGuideServiceImpl implements PartyGuideService {
* @date 2020/9/24 5:10 下午 * @date 2020/9/24 5:10 下午
*/ */
@Override @Override
public Boolean partyGuideExtract(ScreenExtractFormDTO screenExtractFormDTO) { public Boolean partyGuideExtract(ExtractScreenFormDTO screenExtractFormDTO) {
int pageNo = NumConstant.ONE; int pageNo = NumConstant.ONE;
int pageSize = NumConstant.ONE_HUNDRED; int pageSize = NumConstant.ONE_HUNDRED;
List<String> customerIds = new ArrayList<>(); List<String> customerIds = new ArrayList<>();
@ -181,14 +182,18 @@ public class PartyGuideServiceImpl implements PartyGuideService {
*/ */
public void disPoseParty(List<CustomerAgencyInfoResultDTO> agencyIdList, Boolean isGrid, String customerId, String monthId) { public void disPoseParty(List<CustomerAgencyInfoResultDTO> agencyIdList, Boolean isGrid, String customerId, String monthId) {
List<ScreenPartyLinkMassesDataFormDTO> result = new ArrayList<>(); List<ScreenPartyLinkMassesDataFormDTO> result = new ArrayList<>();
// 判断当前级别agency是否为空
if (!CollectionUtils.isEmpty(agencyIdList)){ if (!CollectionUtils.isEmpty(agencyIdList)){
// 获取agencyIds
List<String> orgIds = agencyIdList.stream().map(m -> m.getAgencyId()).collect(Collectors.toList()); List<String> orgIds = agencyIdList.stream().map(m -> m.getAgencyId()).collect(Collectors.toList());
if (isGrid == true){ if (isGrid == true){
agencyIdList.forEach(agency -> { agencyIdList.forEach(agency -> {
// 计算社区级别的下级(实际就是网格)
GridPartyGuideDTO gridPartyGuideDTO = communityLevelSubGrid(customerId, monthId, agency); GridPartyGuideDTO gridPartyGuideDTO = communityLevelSubGrid(customerId, monthId, agency);
orgIds.addAll(gridPartyGuideDTO.getOrgIds()); orgIds.addAll(gridPartyGuideDTO.getOrgIds());
result.addAll(gridPartyGuideDTO.getResult()); result.addAll(gridPartyGuideDTO.getResult());
}); });
// 根据agencyId分组,计算各个社区的
Map<String, List<ScreenPartyLinkMassesDataFormDTO>> groupByAgency = result.stream().collect(Collectors.groupingBy(ScreenPartyLinkMassesDataFormDTO::getParentId)); Map<String, List<ScreenPartyLinkMassesDataFormDTO>> groupByAgency = result.stream().collect(Collectors.groupingBy(ScreenPartyLinkMassesDataFormDTO::getParentId));
groupByAgency.forEach((agencyId,gridList) -> { groupByAgency.forEach((agencyId,gridList) -> {
ScreenPartyLinkMassesDataFormDTO form = new ScreenPartyLinkMassesDataFormDTO(); ScreenPartyLinkMassesDataFormDTO form = new ScreenPartyLinkMassesDataFormDTO();
@ -224,6 +229,7 @@ public class PartyGuideServiceImpl implements PartyGuideService {
// 不为空 存在直属网格 // 不为空 存在直属网格
if (!CollectionUtils.isEmpty(disGridIds)){ if (!CollectionUtils.isEmpty(disGridIds)){
List<ScreenPartyLinkMassesDataFormDTO> gridResult = new ArrayList<>(); List<ScreenPartyLinkMassesDataFormDTO> gridResult = new ArrayList<>();
// 查询党员创建组,组内成员数
List<ScreenPartyLinkMassesDataFormDTO> partyLinkMassesDataList = groupMainService.selectPartyCreateGroupInfo(customerId, monthId, disGridIds); List<ScreenPartyLinkMassesDataFormDTO> partyLinkMassesDataList = groupMainService.selectPartyCreateGroupInfo(customerId, monthId, disGridIds);
List<OrgNameResultDTO> orgNameList = agencyService.selectOrgNameGrid(partyLinkMassesDataList.stream().map(m -> m.getOrgId()).collect(Collectors.toList())); List<OrgNameResultDTO> orgNameList = agencyService.selectOrgNameGrid(partyLinkMassesDataList.stream().map(m -> m.getOrgId()).collect(Collectors.toList()));
if (!CollectionUtils.isEmpty(partyLinkMassesDataList)){ if (!CollectionUtils.isEmpty(partyLinkMassesDataList)){
@ -239,6 +245,7 @@ public class PartyGuideServiceImpl implements PartyGuideService {
} }
delAndInsertLink(gridResult,customerId,monthId,disGridIds); delAndInsertLink(gridResult,customerId,monthId,disGridIds);
} }
// 查询直属网格的信息 + 下级机关的信息 = agency的机关信息
List<ScreenPartyLinkMassesDataFormDTO> screenPartyLinkMassesDataGrid = groupMainService.selectPartyCreateGroupInfo(customerId, monthId, disGridIds); List<ScreenPartyLinkMassesDataFormDTO> screenPartyLinkMassesDataGrid = groupMainService.selectPartyCreateGroupInfo(customerId, monthId, disGridIds);
List<ScreenPartyLinkMassesDataFormDTO> screenPartyLinkMassesDataList = linkMassesDataService.selectPartyLinkMassesInfo(customerId, monthId, agencyId); List<ScreenPartyLinkMassesDataFormDTO> screenPartyLinkMassesDataList = linkMassesDataService.selectPartyLinkMassesInfo(customerId, monthId, agencyId);
screenPartyLinkMassesDataList.addAll(screenPartyLinkMassesDataGrid); screenPartyLinkMassesDataList.addAll(screenPartyLinkMassesDataGrid);
@ -262,6 +269,12 @@ public class PartyGuideServiceImpl implements PartyGuideService {
/** /**
* @Description 处理参与人数组织次数 * @Description 处理参与人数组织次数
* eg:假设 组织AA1 组织的直属网格A1-G1
* 统计 A1的参与人数组织次数应为
*
* 组织次数以A1的名义组织活动次数 + 以A1-G1的名义组织活动次数 = A1组织活动总次数
* 参与人数以A1的名义组织活动参与人数和 + 以A1-G1的名义组织活动参与人数和 = A1组织活动参与人数总数
*
* @Param agencyIdList * @Param agencyIdList
* @Param isGrid * @Param isGrid
* @Param customerId * @Param customerId
@ -271,7 +284,9 @@ public class PartyGuideServiceImpl implements PartyGuideService {
*/ */
public void disPoseOrganize(List<CustomerAgencyInfoResultDTO> agencyIdList, Boolean isGrid, String customerId, String monthId){ public void disPoseOrganize(List<CustomerAgencyInfoResultDTO> agencyIdList, Boolean isGrid, String customerId, String monthId){
if (!CollectionUtils.isEmpty(agencyIdList)){ if (!CollectionUtils.isEmpty(agencyIdList)){
// 包括 gridId 和 agencyId
List<String> orgIds = new ArrayList<>(); List<String> orgIds = new ArrayList<>();
// orgIdsAgency 客户下某个级别的所有agencyId
List<String> orgIdsAgency = agencyIdList.stream().map(m -> m.getAgencyId()).collect(Collectors.toList()); List<String> orgIdsAgency = agencyIdList.stream().map(m -> m.getAgencyId()).collect(Collectors.toList());
orgIds.addAll(orgIdsAgency); orgIds.addAll(orgIdsAgency);
orgIdsAgency.forEach(orgId -> { orgIdsAgency.forEach(orgId -> {
@ -283,8 +298,11 @@ public class PartyGuideServiceImpl implements PartyGuideService {
if (isGrid == false){ if (isGrid == false){
orgIds.addAll(directGridIds.stream().map(m -> m.getGridId()).collect(Collectors.toList())); orgIds.addAll(directGridIds.stream().map(m -> m.getGridId()).collect(Collectors.toList()));
} }
// 查询客户下所有机关,网格下的参与人数
List<JoinUserCountResultDTO> joinUserCountList = actUserRelationService.selectJoinUserCount(customerId, monthId, null); List<JoinUserCountResultDTO> joinUserCountList = actUserRelationService.selectJoinUserCount(customerId, monthId, null);
// 查询机关界别的组织次数
List<ScreenPartyBranchDataFormDTO> screenPartyBranchDataByAgencyList = actInfoService.selectActInfo(customerId, monthId, ScreenConstant.AGENCY, orgIds); List<ScreenPartyBranchDataFormDTO> screenPartyBranchDataByAgencyList = actInfoService.selectActInfo(customerId, monthId, ScreenConstant.AGENCY, orgIds);
// 查询客户下所有网格和所有机关
List<ScreenPartyBranchDataFormDTO> screenPartyBranchData = agencyService.selectAllAgencyIdToOrganize(customerId, monthId); List<ScreenPartyBranchDataFormDTO> screenPartyBranchData = agencyService.selectAllAgencyIdToOrganize(customerId, monthId);
List<ScreenPartyBranchDataFormDTO> screenPartyBranchDataListAgencyAll = gridService.selectAllGridIdToOrganize(customerId, monthId); List<ScreenPartyBranchDataFormDTO> screenPartyBranchDataListAgencyAll = gridService.selectAllGridIdToOrganize(customerId, monthId);
screenPartyBranchDataListAgencyAll.addAll(screenPartyBranchData); screenPartyBranchDataListAgencyAll.addAll(screenPartyBranchData);
@ -296,10 +314,10 @@ public class PartyGuideServiceImpl implements PartyGuideService {
} }
}); });
}); });
// 查询所有机关、网格组织次数
List<ScreenPartyBranchDataFormDTO> screenPartyBranchDataList = actInfoService.selectActInfo(customerId, monthId, null, orgIds); List<ScreenPartyBranchDataFormDTO> screenPartyBranchDataList = actInfoService.selectActInfo(customerId, monthId, null, orgIds);
if (isGrid == true){ if (isGrid == true){
agencyIdList.forEach(agency -> { agencyIdList.forEach(agency -> {
finalResult.forEach(fl -> { finalResult.forEach(fl -> {
screenPartyBranchDataList.forEach(sp -> { screenPartyBranchDataList.forEach(sp -> {
if (fl.getOrgId().equals(sp.getOrgId())){ if (fl.getOrgId().equals(sp.getOrgId())){
@ -324,6 +342,7 @@ public class PartyGuideServiceImpl implements PartyGuideService {
if (fl.getOrgId().equals(agencyId)){ if (fl.getOrgId().equals(agencyId)){
fl.setOrganizeCount(actList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount))); fl.setOrganizeCount(actList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount)));
fl.setJoinUserCount(actList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getJoinUserCount))); fl.setJoinUserCount(actList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getJoinUserCount)));
// 如果存在本级名义的, 下级机关 + 本级
screenPartyBranchDataByAgencyList.forEach(organize -> { screenPartyBranchDataByAgencyList.forEach(organize -> {
if (organize.getOrgId().equals(agencyId)){ if (organize.getOrgId().equals(agencyId)){
fl.setOrganizeCount(calAdd(organize.getOrganizeCount(),actList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount)))); fl.setOrganizeCount(calAdd(organize.getOrganizeCount(),actList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount))));
@ -377,6 +396,7 @@ public class PartyGuideServiceImpl implements PartyGuideService {
if (form.getOrgId().equals(agencyId)) { if (form.getOrgId().equals(agencyId)) {
form.setJoinUserCount(screenPartyBranchDataByParentList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getJoinUserCount))); form.setJoinUserCount(screenPartyBranchDataByParentList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getJoinUserCount)));
form.setOrganizeCount(screenPartyBranchDataByParentList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount))); form.setOrganizeCount(screenPartyBranchDataByParentList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount)));
// 如果存在本级名义的, 下级机关 + 本级
screenPartyBranchDataByParentList.forEach(organize -> { screenPartyBranchDataByParentList.forEach(organize -> {
if (organize.getOrgId().equals(agencyId)) { if (organize.getOrgId().equals(agencyId)) {
form.setOrganizeCount(calAdd(organize.getOrganizeCount(), screenPartyBranchDataByParentList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount)))); form.setOrganizeCount(calAdd(organize.getOrganizeCount(), screenPartyBranchDataByParentList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount))));
@ -397,6 +417,13 @@ public class PartyGuideServiceImpl implements PartyGuideService {
} }
} }
/**
* @Description 加法运算
* @Param a
* @Param b
* @author zxc
* @date 2020/9/28 3:17 下午
*/
public Integer calAdd(Integer a, Integer b){ public Integer calAdd(Integer a, Integer b){
if (null != a && null != b){ if (null != a && null != b){
return a + b; return a + b;
@ -473,7 +500,7 @@ public class PartyGuideServiceImpl implements PartyGuideService {
} }
/** /**
* @Description * @Description 组织次数参与人数添加
* @Param result * @Param result
* @Param customerId * @Param customerId
* @Param monthId * @Param monthId
@ -489,6 +516,14 @@ public class PartyGuideServiceImpl implements PartyGuideService {
}); });
} }
/**
* @Description 组织次数参与人数旧纪录删除
* @Param customerId
* @Param monthId
* @Param orgIds
* @author zxc
* @date 2020/9/28 3:18 下午
*/
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void delOrganize(String customerId, String monthId, List<String> orgIds){ public void delOrganize(String customerId, String monthId, List<String> orgIds){
Integer delNum; Integer delNum;

5
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java

@ -29,6 +29,8 @@ public class ScreenExtractServiceImpl implements ScreenExtractService {
@Autowired @Autowired
private PartyBaseInfoService partyBaseInfoService; private PartyBaseInfoService partyBaseInfoService;
@Autowired @Autowired
private PartyGuideService partyGuideService;
@Autowired
private PioneerDataExtractService pioneerDataExtractService; private PioneerDataExtractService pioneerDataExtractService;
@Autowired @Autowired
private PublicPartExtractService publicPartExtractService; private PublicPartExtractService publicPartExtractService;
@ -140,5 +142,8 @@ public class ScreenExtractServiceImpl implements ScreenExtractService {
orgRankExtractService.extractGridData(customerId, monthId); orgRankExtractService.extractGridData(customerId, monthId);
orgRankExtractService.extractCommunityData(customerId, monthId); orgRankExtractService.extractCommunityData(customerId, monthId);
orgRankExtractService.extractStreetData(customerId, monthId); orgRankExtractService.extractStreetData(customerId, monthId);
// 党建引领 screen_party_branch_data,screen_party_link_masses_data
partyGuideService.partyGuideExtract(formDTO);
} }
} }

Loading…
Cancel
Save