Browse Source

党建引领

master
zxc 5 years ago
parent
commit
af9a5e988c
  1. 38
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PartyGuideServiceImpl.java

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

@ -182,14 +182,18 @@ public class PartyGuideServiceImpl implements PartyGuideService {
*/
public void disPoseParty(List<CustomerAgencyInfoResultDTO> agencyIdList, Boolean isGrid, String customerId, String monthId) {
List<ScreenPartyLinkMassesDataFormDTO> result = new ArrayList<>();
// 判断当前级别agency是否为空
if (!CollectionUtils.isEmpty(agencyIdList)){
// 获取agencyIds
List<String> orgIds = agencyIdList.stream().map(m -> m.getAgencyId()).collect(Collectors.toList());
if (isGrid == true){
agencyIdList.forEach(agency -> {
// 计算社区级别的下级(实际就是网格)
GridPartyGuideDTO gridPartyGuideDTO = communityLevelSubGrid(customerId, monthId, agency);
orgIds.addAll(gridPartyGuideDTO.getOrgIds());
result.addAll(gridPartyGuideDTO.getResult());
});
// 根据agencyId分组,计算各个社区的
Map<String, List<ScreenPartyLinkMassesDataFormDTO>> groupByAgency = result.stream().collect(Collectors.groupingBy(ScreenPartyLinkMassesDataFormDTO::getParentId));
groupByAgency.forEach((agencyId,gridList) -> {
ScreenPartyLinkMassesDataFormDTO form = new ScreenPartyLinkMassesDataFormDTO();
@ -225,6 +229,7 @@ public class PartyGuideServiceImpl implements PartyGuideService {
// 不为空 存在直属网格
if (!CollectionUtils.isEmpty(disGridIds)){
List<ScreenPartyLinkMassesDataFormDTO> gridResult = new ArrayList<>();
// 查询党员创建组,组内成员数
List<ScreenPartyLinkMassesDataFormDTO> partyLinkMassesDataList = groupMainService.selectPartyCreateGroupInfo(customerId, monthId, disGridIds);
List<OrgNameResultDTO> orgNameList = agencyService.selectOrgNameGrid(partyLinkMassesDataList.stream().map(m -> m.getOrgId()).collect(Collectors.toList()));
if (!CollectionUtils.isEmpty(partyLinkMassesDataList)){
@ -240,6 +245,7 @@ public class PartyGuideServiceImpl implements PartyGuideService {
}
delAndInsertLink(gridResult,customerId,monthId,disGridIds);
}
// 查询直属网格的信息 + 下级机关的信息 = agency的机关信息
List<ScreenPartyLinkMassesDataFormDTO> screenPartyLinkMassesDataGrid = groupMainService.selectPartyCreateGroupInfo(customerId, monthId, disGridIds);
List<ScreenPartyLinkMassesDataFormDTO> screenPartyLinkMassesDataList = linkMassesDataService.selectPartyLinkMassesInfo(customerId, monthId, agencyId);
screenPartyLinkMassesDataList.addAll(screenPartyLinkMassesDataGrid);
@ -263,6 +269,12 @@ public class PartyGuideServiceImpl implements PartyGuideService {
/**
* @Description 处理参与人数组织次数
* eg:假设 组织AA1 组织的直属网格A1-G1
* 统计 A1的参与人数组织次数应为
*
* 组织次数以A1的名义组织活动次数 + 以A1-G1的名义组织活动次数 = A1组织活动总次数
* 参与人数以A1的名义组织活动参与人数和 + 以A1-G1的名义组织活动参与人数和 = A1组织活动参与人数总数
*
* @Param agencyIdList
* @Param isGrid
* @Param customerId
@ -272,7 +284,9 @@ public class PartyGuideServiceImpl implements PartyGuideService {
*/
public void disPoseOrganize(List<CustomerAgencyInfoResultDTO> agencyIdList, Boolean isGrid, String customerId, String monthId){
if (!CollectionUtils.isEmpty(agencyIdList)){
// 包括 gridId 和 agencyId
List<String> orgIds = new ArrayList<>();
// orgIdsAgency 客户下某个级别的所有agencyId
List<String> orgIdsAgency = agencyIdList.stream().map(m -> m.getAgencyId()).collect(Collectors.toList());
orgIds.addAll(orgIdsAgency);
orgIdsAgency.forEach(orgId -> {
@ -284,8 +298,11 @@ public class PartyGuideServiceImpl implements PartyGuideService {
if (isGrid == false){
orgIds.addAll(directGridIds.stream().map(m -> m.getGridId()).collect(Collectors.toList()));
}
// 查询客户下所有机关,网格下的参与人数
List<JoinUserCountResultDTO> joinUserCountList = actUserRelationService.selectJoinUserCount(customerId, monthId, null);
// 查询机关界别的组织次数
List<ScreenPartyBranchDataFormDTO> screenPartyBranchDataByAgencyList = actInfoService.selectActInfo(customerId, monthId, ScreenConstant.AGENCY, orgIds);
// 查询客户下所有网格和所有机关
List<ScreenPartyBranchDataFormDTO> screenPartyBranchData = agencyService.selectAllAgencyIdToOrganize(customerId, monthId);
List<ScreenPartyBranchDataFormDTO> screenPartyBranchDataListAgencyAll = gridService.selectAllGridIdToOrganize(customerId, monthId);
screenPartyBranchDataListAgencyAll.addAll(screenPartyBranchData);
@ -297,10 +314,10 @@ public class PartyGuideServiceImpl implements PartyGuideService {
}
});
});
// 查询所有机关、网格组织次数
List<ScreenPartyBranchDataFormDTO> screenPartyBranchDataList = actInfoService.selectActInfo(customerId, monthId, null, orgIds);
if (isGrid == true){
agencyIdList.forEach(agency -> {
finalResult.forEach(fl -> {
screenPartyBranchDataList.forEach(sp -> {
if (fl.getOrgId().equals(sp.getOrgId())){
@ -325,6 +342,7 @@ public class PartyGuideServiceImpl implements PartyGuideService {
if (fl.getOrgId().equals(agencyId)){
fl.setOrganizeCount(actList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount)));
fl.setJoinUserCount(actList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getJoinUserCount)));
// 如果存在本级名义的, 下级机关 + 本级
screenPartyBranchDataByAgencyList.forEach(organize -> {
if (organize.getOrgId().equals(agencyId)){
fl.setOrganizeCount(calAdd(organize.getOrganizeCount(),actList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount))));
@ -378,6 +396,7 @@ public class PartyGuideServiceImpl implements PartyGuideService {
if (form.getOrgId().equals(agencyId)) {
form.setJoinUserCount(screenPartyBranchDataByParentList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getJoinUserCount)));
form.setOrganizeCount(screenPartyBranchDataByParentList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount)));
// 如果存在本级名义的, 下级机关 + 本级
screenPartyBranchDataByParentList.forEach(organize -> {
if (organize.getOrgId().equals(agencyId)) {
form.setOrganizeCount(calAdd(organize.getOrganizeCount(), screenPartyBranchDataByParentList.stream().collect(Collectors.summingInt(ScreenPartyBranchDataFormDTO::getOrganizeCount))));
@ -398,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){
if (null != a && null != b){
return a + b;
@ -474,7 +500,7 @@ public class PartyGuideServiceImpl implements PartyGuideService {
}
/**
* @Description
* @Description 组织次数参与人数添加
* @Param result
* @Param customerId
* @Param monthId
@ -490,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)
public void delOrganize(String customerId, String monthId, List<String> orgIds){
Integer delNum;

Loading…
Cancel
Save