From de33afd6141bff05cb167c5339c4df4dd88a0759 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 28 Sep 2020 14:46:21 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=85=9A=E5=BB=BA=E5=BC=95=E9=A2=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../evaluationindex/extract/toscreen/PartyGuideService.java | 6 +++--- .../extract/toscreen/impl/PartyGuideServiceImpl.java | 3 ++- .../extract/toscreen/impl/ScreenExtractServiceImpl.java | 5 +++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/PartyGuideService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/PartyGuideService.java index 2628a50ced..2d8ac15142 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/PartyGuideService.java +++ b/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; -import com.epmet.dto.extract.form.ScreenExtractFormDTO; +import com.epmet.dto.extract.form.ExtractScreenFormDTO; /** * @Author zxc @@ -10,10 +10,10 @@ public interface PartyGuideService { /** * @Description 党建引领抽取 - * @param screenExtractFormDTO + * @param formDTO * @author zxc * @date 2020/9/24 5:10 下午 */ - Boolean partyGuideExtract(ScreenExtractFormDTO screenExtractFormDTO); + Boolean partyGuideExtract(ExtractScreenFormDTO formDTO); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PartyGuideServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PartyGuideServiceImpl.java index b58a38ee7e..48167f4263 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PartyGuideServiceImpl.java +++ b/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.utils.ConvertUtils; 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.ScreenPartyBranchDataFormDTO; import com.epmet.dto.extract.form.ScreenPartyLinkMassesDataFormDTO; @@ -64,7 +65,7 @@ public class PartyGuideServiceImpl implements PartyGuideService { * @date 2020/9/24 5:10 下午 */ @Override - public Boolean partyGuideExtract(ScreenExtractFormDTO screenExtractFormDTO) { + public Boolean partyGuideExtract(ExtractScreenFormDTO screenExtractFormDTO) { int pageNo = NumConstant.ONE; int pageSize = NumConstant.ONE_HUNDRED; List customerIds = new ArrayList<>(); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java index 5712789d6c..946c965fde 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/ScreenExtractServiceImpl.java +++ b/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 private PartyBaseInfoService partyBaseInfoService; @Autowired + private PartyGuideService partyGuideService; + @Autowired private PioneerDataExtractService pioneerDataExtractService; @Autowired private PublicPartExtractService publicPartExtractService; @@ -140,5 +142,8 @@ public class ScreenExtractServiceImpl implements ScreenExtractService { orgRankExtractService.extractGridData(customerId, monthId); orgRankExtractService.extractCommunityData(customerId, monthId); orgRankExtractService.extractStreetData(customerId, monthId); + + // 党建引领 screen_party_branch_data,screen_party_link_masses_data + partyGuideService.partyGuideExtract(formDTO); } } From af9a5e988cbfaf5d4a6386e0c2173476d492fd0f Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Mon, 28 Sep 2020 15:19:15 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=85=9A=E5=BB=BA=E5=BC=95=E9=A2=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../toscreen/impl/PartyGuideServiceImpl.java | 38 ++++++++++++++++++- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PartyGuideServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PartyGuideServiceImpl.java index 48167f4263..091b920adc 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PartyGuideServiceImpl.java +++ b/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 agencyIdList, Boolean isGrid, String customerId, String monthId) { List result = new ArrayList<>(); + // 判断当前级别agency是否为空 if (!CollectionUtils.isEmpty(agencyIdList)){ + // 获取agencyIds List 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> 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 gridResult = new ArrayList<>(); + // 查询党员创建组,组内成员数 List partyLinkMassesDataList = groupMainService.selectPartyCreateGroupInfo(customerId, monthId, disGridIds); List 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 screenPartyLinkMassesDataGrid = groupMainService.selectPartyCreateGroupInfo(customerId, monthId, disGridIds); List screenPartyLinkMassesDataList = linkMassesDataService.selectPartyLinkMassesInfo(customerId, monthId, agencyId); screenPartyLinkMassesDataList.addAll(screenPartyLinkMassesDataGrid); @@ -263,6 +269,12 @@ public class PartyGuideServiceImpl implements PartyGuideService { /** * @Description 处理【参与人数,组织次数】 + * eg:假设 组织A:A1 组织的直属网格: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 agencyIdList, Boolean isGrid, String customerId, String monthId){ if (!CollectionUtils.isEmpty(agencyIdList)){ + // 包括 gridId 和 agencyId List orgIds = new ArrayList<>(); + // orgIdsAgency 客户下某个级别的所有agencyId List 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 joinUserCountList = actUserRelationService.selectJoinUserCount(customerId, monthId, null); + // 查询机关界别的组织次数 List screenPartyBranchDataByAgencyList = actInfoService.selectActInfo(customerId, monthId, ScreenConstant.AGENCY, orgIds); + // 查询客户下所有网格和所有机关 List screenPartyBranchData = agencyService.selectAllAgencyIdToOrganize(customerId, monthId); List screenPartyBranchDataListAgencyAll = gridService.selectAllGridIdToOrganize(customerId, monthId); screenPartyBranchDataListAgencyAll.addAll(screenPartyBranchData); @@ -297,10 +314,10 @@ public class PartyGuideServiceImpl implements PartyGuideService { } }); }); + // 查询所有机关、网格组织次数 List 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 orgIds){ Integer delNum; From bfd588af06de61d35ed1b014bf4822c71e34478c Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 28 Sep 2020 15:27:34 +0800 Subject: [PATCH 3/3] =?UTF-8?q?factorigin/extractall=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/controller/FactOriginExtractController.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginExtractController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginExtractController.java index 9610137079..7a6e11f801 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginExtractController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/FactOriginExtractController.java @@ -1,6 +1,5 @@ package com.epmet.controller; -import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; 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.RestController; -import java.util.List; - /** * 原始数据清洗 @@ -43,7 +40,7 @@ public class FactOriginExtractController { */ @PostMapping("extractall") 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 daysBetween = DateUtils.getDaysBetween(extractOriginFormDTO.getStartDate(), extractOriginFormDTO.getEndDate()); for (int i = 0; i < daysBetween.size(); i++) { String dateDimId = daysBetween.get(i); @@ -52,7 +49,7 @@ public class FactOriginExtractController { } } else { factOriginExtractService.extractAll(extractOriginFormDTO); - } + }*/ factOriginExtractService.extractAll(extractOriginFormDTO); return new Result(); }