From d6831e581592b2833d134a31634cce2636c6bcb0 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 24 Sep 2020 15:06:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=88=E8=BF=9B=E6=A8=A1=E8=8C=83=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8A=BD=E5=8F=96=E5=88=B0=E5=A4=A7=E5=B1=8F=E8=A1=A8?= =?UTF-8?q?screen=5Fpioneer=5FdataV0.5=20louti?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extract/FactOriginIssueMainDailyDao.java | 5 +- .../extract/FactOriginTopicMainDailyDao.java | 5 +- .../screen/ScreenPioneerDataDao.java | 18 +- .../dao/stats/DimCustomerPartymemberDao.java | 10 + .../FactOriginIssueMainDailyService.java | 2 +- .../FactOriginTopicMainDailyService.java | 2 +- .../FactOriginIssueMainDailyServiceImpl.java | 4 +- .../FactOriginTopicMainDailyServiceImpl.java | 4 +- .../toscreen/PioneerDataExtractService.java | 6 +- .../impl/PioneerDataExtractServiceImpl.java | 189 ++++++++++++------ .../impl/ScreenExtractServiceImpl.java | 5 +- .../screen/ScreenPioneerDataService.java | 6 +- .../impl/ScreenPioneerDataServiceImpl.java | 18 +- .../stats/DimCustomerPartymemberService.java | 8 +- .../DimCustomerPartymemberServiceImpl.java | 9 +- .../extract/FactOriginIssueMainDailyDao.xml | 6 + .../extract/FactOriginTopicMainDailyDao.xml | 6 + .../screen/ScreenPioneerDataDao.xml | 3 - .../stats/DimCustomerPartymemberDao.xml | 10 + 19 files changed, 215 insertions(+), 101 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java index 52c6e71da3..6ad257a55c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginIssueMainDailyDao.java @@ -128,7 +128,10 @@ public interface FactOriginIssueMainDailyDao extends BaseDao partyMemberUserIds); + int getParyPublishIssueTotal(@Param("customerId") String customerId, + @Param("list")List partyMemberUserIds, + @Param("gridId")String gridId, + @Param("agencyId")String agencyId); /** * @param customerId diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java index 5ff934c8b4..3d80e4a4ab 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginTopicMainDailyDao.java @@ -85,7 +85,10 @@ public interface FactOriginTopicMainDailyDao extends BaseDao partyMemberUserIds); + int selectPublishedByPartyTopicCount(@Param("customerId") String customerId, + @Param("list") List partyMemberUserIds, + @Param("gridId")String gridId, + @Param("agencyId")String agencyId); /** * @param customerId diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenPioneerDataDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenPioneerDataDao.java index 14ffbe7c6e..daeb4c7443 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenPioneerDataDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenPioneerDataDao.java @@ -34,9 +34,6 @@ import java.util.List; @Mapper public interface ScreenPioneerDataDao extends BaseDao { - Integer deletePioneerDataByCustomerId(@Param("customerId") String customerId, - @Param("deleteSize") Integer deleteSize); - /** * 10、党建引领-先锋模范数据 * 1) 根据CUSTOMER_ID进行查询,如果有数据,则先进行物理删除, 一次删除1000条 @@ -46,9 +43,22 @@ public interface ScreenPioneerDataDao extends BaseDao { * @Author zhangyong * @Date 10:52 2020-08-18 **/ + Integer deletePioneerDataByCustomerId(@Param("customerId") String customerId, + @Param("deleteSize") Integer deleteSize); + + + /** + * @return java.lang.Integer + * @param customerId + * @param orgType + * @param deleteSize + * @param orgIds + * @author yinzuomei + * @description 产品客户采集用删除方法 + * @Date 2020/9/24 14:59 + **/ Integer deletePioneerData(@Param("customerId") String customerId, @Param("orgType") String orgType, - @Param("dataEndTime")String dataEndTime, @Param("deleteSize") Integer deleteSize, @Param("orgIds")List orgIds); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimCustomerPartymemberDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimCustomerPartymemberDao.java index 47d73efe9f..0d614b2e4a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimCustomerPartymemberDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DimCustomerPartymemberDao.java @@ -90,4 +90,14 @@ public interface DimCustomerPartymemberDao extends BaseDao selectCommunityPartyMemberUserIds(@Param("customerId") String customerId, @Param("communityId")String communityId); + + /** + * @return java.util.List + * @param customerId + * @param pids + * @author yinzuomei + * @description 根据pids查询党员 + * @Date 2020/9/24 14:31 + **/ + List selectPartyMemberUserIdsByPids(@Param("customerId") String customerId, @Param("pids")String pids); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginIssueMainDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginIssueMainDailyService.java index feaa5d6729..adc0768887 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginIssueMainDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginIssueMainDailyService.java @@ -38,7 +38,7 @@ public interface FactOriginIssueMainDailyService extends BaseService partyMemberUserIds); + int getParyPublishIssueTotal(String customerId, List partyMemberUserIds,String gridId,String agencyId); /** * @return java.lang.Integer diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginTopicMainDailyService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginTopicMainDailyService.java index 6b1beefa08..fe942d34a7 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginTopicMainDailyService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginTopicMainDailyService.java @@ -70,7 +70,7 @@ public interface FactOriginTopicMainDailyService extends BaseService partyMemberUserIds); + int calPublishedByPartyTopicCount(String customerId,List partyMemberUserIds,String gridId,String agencyId); /** * @return int * @param customerId diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginIssueMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginIssueMainDailyServiceImpl.java index c255cc223a..8b6ae1a80a 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginIssueMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginIssueMainDailyServiceImpl.java @@ -51,11 +51,11 @@ public class FactOriginIssueMainDailyServiceImpl extends BaseServiceImpl partyMemberUserIds) { + public int getParyPublishIssueTotal(String customerId, List partyMemberUserIds,String gridId,String agencyId) { if(CollectionUtils.isEmpty(partyMemberUserIds)){ return NumConstant.ZERO; } - return baseDao.getParyPublishIssueTotal(customerId,partyMemberUserIds); + return baseDao.getParyPublishIssueTotal(customerId,partyMemberUserIds,gridId,agencyId); } /** diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginTopicMainDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginTopicMainDailyServiceImpl.java index 93619f865a..2043cf51f0 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginTopicMainDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginTopicMainDailyServiceImpl.java @@ -284,11 +284,11 @@ public class FactOriginTopicMainDailyServiceImpl extends BaseServiceImpl partyMemberUserIds) { + public int calPublishedByPartyTopicCount(String customerId,List partyMemberUserIds,String gridId,String agencyId) { if(CollectionUtils.isEmpty(partyMemberUserIds)){ return NumConstant.ZERO; } - return baseDao.selectPublishedByPartyTopicCount(customerId,partyMemberUserIds); + return baseDao.selectPublishedByPartyTopicCount(customerId,partyMemberUserIds,gridId,agencyId); } /** diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/PioneerDataExtractService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/PioneerDataExtractService.java index e4b1769c41..0b8384a024 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/PioneerDataExtractService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/PioneerDataExtractService.java @@ -26,9 +26,5 @@ public interface PioneerDataExtractService { // 社区、街道、区县、市级别、省级 void extractCommunityPioneerData(String customerId, String dateId); - void extractexceptCommunityPioneerData(String customerId, String dateId); - /*void extractStreetPioneerData(String customerId, String dateId); - void extractDistrictPioneerData(String customerId, String dateId); - void extractCityPioneerData(String customerId, String dateId); - void extractProvincePioneerData(String customerId, String dateId);*/ + void extractExceptCommunityPioneerData(String customerId, String dateId); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PioneerDataExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PioneerDataExtractServiceImpl.java index 0971f22372..a2b178e292 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PioneerDataExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PioneerDataExtractServiceImpl.java @@ -13,6 +13,7 @@ import com.epmet.service.stats.DimCustomerPartymemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.math.BigDecimal; import java.math.RoundingMode; @@ -49,7 +50,7 @@ public class PioneerDataExtractServiceImpl implements PioneerDataExtractService @Override public void extractGridPioneerData(String customerId, String dateId) { //查询客户下所有的网格,初始数据值为0 - List gridList = screenPioneerDataService.initPioneerDataList(customerId, "grid", StrConstant.EPMETY_STR); + List gridList = screenPioneerDataService.initPioneerDataList(customerId, "grid"); if (CollectionUtils.isEmpty(gridList)) { return; } @@ -63,25 +64,25 @@ public class PioneerDataExtractServiceImpl implements PioneerDataExtractService //网格内的党员集合 - List partyMemberUserIds = dimCustomerPartymemberService.getPartyMemberUserIds(customerId, "grid",gridId); + List partyMemberUserIds = dimCustomerPartymemberService.getPartyMemberUserIds(customerId, "grid", gridId); //3、党员发布话题: - entity.setTopicTotal(getTopicTotal(customerId, partyMemberUserIds)); + entity.setTopicTotal(getTopicTotal(customerId, partyMemberUserIds, gridId, null)); //4、党员发布话题占比: 网格内注册党员发布的话题总数占 网格内话题总数的 比率 if (entity.getTopicTotal() == NumConstant.ZERO) { entity.setTopicRatio(BigDecimal.ZERO); } else { //当前网格内所有话题总数 - int gridTopicTotal = getGridOrCommunityTopicTotal(customerId, gridId,null); + int gridTopicTotal = getGridOrCommunityTopicTotal(customerId, gridId, null); entity.setTopicRatio(gridTopicTotal == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getTopicTotal() / gridTopicTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); } //当前网格内所有议题总数 - int gridIssueTotal = getGridOrCommunityIssueTotal(customerId, gridId,null); + int gridIssueTotal = getGridOrCommunityIssueTotal(customerId, gridId, null); if (gridIssueTotal != NumConstant.ZERO) { //5、党员发布议题 - entity.setPublishIssueTotal(getParyPublishIssueTotal(customerId, partyMemberUserIds)); + entity.setPublishIssueTotal(getParyPublishIssueTotal(customerId, partyMemberUserIds, gridId, null)); //6、党员发布议题占比 : 占网格内所有议题的比率 if (entity.getPublishIssueTotal() == NumConstant.ZERO) { entity.setPublishIssueRatio(BigDecimal.ZERO); @@ -89,29 +90,29 @@ public class PioneerDataExtractServiceImpl implements PioneerDataExtractService entity.setPublishIssueRatio(gridIssueTotal == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getPublishIssueTotal() / gridIssueTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); //7、议题转项目数 - entity.setShiftProjectTotal(getGridOrCommunityShiftProjectTotal(customerId, gridId,null)); + entity.setShiftProjectTotal(getGridOrCommunityShiftProjectTotal(customerId, gridId, null)); //8、议题转项目占比 : 占网格内议题总数的比率 entity.setShiftProjectRatio(entity.getShiftProjectTotal() == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getShiftProjectTotal() / gridIssueTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); } // 9、已解决项目 - entity.setResolvedProjectTotal(getGridOrCommunityClosedProjectTotal(customerId,gridId,null,"resolved")); - if(entity.getResolvedProjectTotal()==NumConstant.ZERO){ + entity.setResolvedProjectTotal(getGridOrCommunityClosedProjectTotal(customerId, gridId, null, "resolved")); + if (entity.getResolvedProjectTotal() == NumConstant.ZERO) { entity.setResolvedProjectRatio(BigDecimal.ZERO); - }else{ + } else { // 10、占总结项目 - int closedProjectTotal=getGridOrCommunityClosedProjectTotal(customerId,gridId,null,null); - entity.setResolvedProjectRatio(closedProjectTotal==NumConstant.ZERO?BigDecimal.ZERO:new BigDecimal(entity.getResolvedProjectTotal()/closedProjectTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); + int closedProjectTotal = getGridOrCommunityClosedProjectTotal(customerId, gridId, null, null); + entity.setResolvedProjectRatio(closedProjectTotal == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getResolvedProjectTotal() / closedProjectTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); } }); - screenPioneerDataService.delAndSavePioneerData(customerId, "grid", dateId, IndexCalConstant.DELETE_SIZE, gridList); + screenPioneerDataService.delAndSavePioneerData(customerId, "grid", IndexCalConstant.DELETE_SIZE, gridList); } @Override public void extractCommunityPioneerData(String customerId, String dateId) { //查询客户下所有的社区,初始数据值为0 - List communityList = screenPioneerDataService.initPioneerDataList(customerId, "agency", "community"); + List communityList = screenPioneerDataService.initPioneerDataList(customerId, "community"); if (CollectionUtils.isEmpty(communityList)) { return; } @@ -124,25 +125,25 @@ public class PioneerDataExtractServiceImpl implements PioneerDataExtractService entity.setIssueRatio(BigDecimal.ZERO); //社区内的党员集合 - List partyMemberUserIds = dimCustomerPartymemberService.getPartyMemberUserIds(customerId, "community",communityId); + List partyMemberUserIds = dimCustomerPartymemberService.getPartyMemberUserIds(customerId, "community", communityId); //3、党员发布话题: - entity.setTopicTotal(getTopicTotal(customerId, partyMemberUserIds)); - //4、党员发布话题占比: 网格内注册党员发布的话题总数占 网格内话题总数的 比率 + entity.setTopicTotal(getTopicTotal(customerId, partyMemberUserIds, null, communityId)); + //4、党员发布话题占比: 社区内注册党员发布的话题总数占 社区内话题总数的 比率 if (entity.getTopicTotal() == NumConstant.ZERO) { entity.setTopicRatio(BigDecimal.ZERO); } else { //当前社区内所有话题总数 - int communityTopicTotal = getGridOrCommunityTopicTotal(customerId, null,communityId); + int communityTopicTotal = getGridOrCommunityTopicTotal(customerId, null, communityId); entity.setTopicRatio(communityTopicTotal == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getTopicTotal() / communityTopicTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); } //当前社区内所有议题总数 - int communityIssueTotal = getGridOrCommunityIssueTotal(customerId, null,communityId); + int communityIssueTotal = getGridOrCommunityIssueTotal(customerId, null, communityId); if (communityIssueTotal != NumConstant.ZERO) { //5、党员发布议题 - entity.setPublishIssueTotal(getParyPublishIssueTotal(customerId, partyMemberUserIds)); + entity.setPublishIssueTotal(getParyPublishIssueTotal(customerId, partyMemberUserIds, null, communityId)); //6、党员发布议题占比 : 占社区内所有议题的比率 if (entity.getPublishIssueTotal() == NumConstant.ZERO) { entity.setPublishIssueRatio(BigDecimal.ZERO); @@ -150,42 +151,135 @@ public class PioneerDataExtractServiceImpl implements PioneerDataExtractService entity.setPublishIssueRatio(communityIssueTotal == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getPublishIssueTotal() / communityIssueTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); //7、议题转项目数 - entity.setShiftProjectTotal(getGridOrCommunityShiftProjectTotal(customerId,null, communityId)); - //8、议题转项目占比 : 占网格内议题总数的比率 + entity.setShiftProjectTotal(getGridOrCommunityShiftProjectTotal(customerId, null, communityId)); + //8、议题转项目占比 : 占社区内议题总数的比率 entity.setShiftProjectRatio(entity.getShiftProjectTotal() == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getShiftProjectTotal() / communityIssueTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); } // 9、已解决项目 - entity.setResolvedProjectTotal(getGridOrCommunityClosedProjectTotal(customerId,null,communityId,"resolved")); - if(entity.getResolvedProjectTotal()==NumConstant.ZERO){ + entity.setResolvedProjectTotal(getGridOrCommunityClosedProjectTotal(customerId, null, communityId, "resolved")); + if (entity.getResolvedProjectTotal() == NumConstant.ZERO) { entity.setResolvedProjectRatio(BigDecimal.ZERO); - }else{ + } else { // 10、占总结项目 - int closedProjectTotal=getGridOrCommunityClosedProjectTotal(customerId,null,communityId,null); - entity.setResolvedProjectRatio(closedProjectTotal==NumConstant.ZERO?BigDecimal.ZERO:new BigDecimal(entity.getResolvedProjectTotal()/closedProjectTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); + int closedProjectTotal = getGridOrCommunityClosedProjectTotal(customerId, null, communityId, null); + entity.setResolvedProjectRatio(closedProjectTotal == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getResolvedProjectTotal() / closedProjectTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); } }); - screenPioneerDataService.delAndSavePioneerData(customerId, "agency", dateId, IndexCalConstant.DELETE_SIZE, communityList); + screenPioneerDataService.delAndSavePioneerData(customerId, "agency", IndexCalConstant.DELETE_SIZE, communityList); } + @Override - public void extractexceptCommunityPioneerData(String customerId, String dateId) { + public void extractExceptCommunityPioneerData(String customerId, String dateId) { + //查询客户下所有的社区,初始数据值为0 + List agencyList = screenPioneerDataService.initPioneerDataList(customerId, "agency"); + if (CollectionUtils.isEmpty(agencyList)) { + return; + } + agencyList.forEach(entity -> { + entity.setDataEndTime(dateId); + String agencyId = entity.getOrgId(); + //1、党员参与议事 todo + entity.setIssueTotal(NumConstant.ZERO); + //2、党员参与议事占比 todo + entity.setIssueRatio(BigDecimal.ZERO); + if (StringUtils.isEmpty(entity.getPid()) || NumConstant.ZERO_STR.equals(entity.getPid())) { + entity.setAgencyPath(entity.getOrgId()); + } else { + entity.setAgencyPath(entity.getAgencyPids().concat(StrConstant.COLON).concat(entity.getOrgId())); + } + //组织内党员集合 + List partyMemberUserIds = dimCustomerPartymemberService.getPartyMemberUserIds(customerId, "agency", entity.getAgencyPath()); + + + //3、党员发布话题: + entity.setTopicTotal(getAgencyPartyTopicTotal(customerId, partyMemberUserIds, entity.getAgencyPath())); + //4、党员发布话题占比: 组织内注册党员发布的话题总数占 组织内话题总数的 比率 + if (entity.getTopicTotal() == NumConstant.ZERO) { + entity.setTopicRatio(BigDecimal.ZERO); + } else { + //当前组织内所有话题总数 + int agencyTopicTotal = getAgencyTopicTotal(customerId, entity.getAgencyPath()); + entity.setTopicRatio(agencyTopicTotal == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getTopicTotal() / agencyTopicTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); + } + + //当前组织内所有议题总数 + int agencyIssueTotal = getAgencyIssueTotal(customerId, entity.getAgencyPath()); + if (agencyIssueTotal != NumConstant.ZERO) { + //5、党员发布议题 + entity.setPublishIssueTotal(getAgencyParyPublishIssueTotal(customerId, partyMemberUserIds, entity.getAgencyPath())); + //6、党员发布议题占比 : 占社区内所有议题的比率 + if (entity.getPublishIssueTotal() == NumConstant.ZERO) { + entity.setPublishIssueRatio(BigDecimal.ZERO); + } + entity.setPublishIssueRatio(agencyIssueTotal == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getPublishIssueTotal() / agencyIssueTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); + + //7、议题转项目数 + entity.setShiftProjectTotal(getAgencyShiftProjectTotal(customerId, entity.getAgencyPath())); + //8、议题转项目占比 : 占网格内议题总数的比率 + entity.setShiftProjectRatio(entity.getShiftProjectTotal() == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getShiftProjectTotal() / agencyIssueTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); + } + + + // 9、已解决项目 + entity.setResolvedProjectTotal(getAgencyClosedProjectTotal(customerId, entity.getAgencyPath(), "resolved")); + if (entity.getResolvedProjectTotal() == NumConstant.ZERO) { + entity.setResolvedProjectRatio(BigDecimal.ZERO); + } else { + // 10、占总结项目 + int closedProjectTotal = getAgencyClosedProjectTotal(customerId, entity.getAgencyPath(), null); + entity.setResolvedProjectRatio(closedProjectTotal == NumConstant.ZERO ? BigDecimal.ZERO : new BigDecimal(entity.getResolvedProjectTotal() / closedProjectTotal).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); + } + }); + screenPioneerDataService.delAndSavePioneerData(customerId, "agency", IndexCalConstant.DELETE_SIZE, agencyList); + + } + + private int getAgencyClosedProjectTotal(String customerId, String agencyPath, String resolved) { //todo + return 0; } + private Integer getAgencyShiftProjectTotal(String customerId, String agencyPath) { + //todo + return 0; + } + + private Integer getAgencyParyPublishIssueTotal(String customerId, List partyMemberUserIds, String agencyPath) { + //todo + return 0; + } + + private int getAgencyIssueTotal(String customerId, String agencyPath) { + //todo + return 0; + } + + private int getAgencyTopicTotal(String customerId, String agencyPath) { + //todo + return 0; + } + + private Integer getAgencyPartyTopicTotal(String customerId, List partyMemberUserIds, String agencyPath) { + //todo + return 0; + } + + /** - * @return java.lang.Integer * @param customerId * @param gridId * @param communityId * @param closedStatus 结案状态:已解决 resolved,未解决 unresolved + * @return java.lang.Integer * @author yinzuomei * @description 网格内已解决项目 * @Date 2020/9/23 16:24 **/ - private Integer getGridOrCommunityClosedProjectTotal(String customerId, String gridId,String communityId,String closedStatus) { - return factOriginProjectMainDailyService.getGridOrCommunityClosedProjectTotal(customerId,gridId,communityId,closedStatus); + private Integer getGridOrCommunityClosedProjectTotal(String customerId, String gridId, String communityId, String closedStatus) { + return factOriginProjectMainDailyService.getGridOrCommunityClosedProjectTotal(customerId, gridId, communityId, closedStatus); } /** @@ -196,12 +290,12 @@ public class PioneerDataExtractServiceImpl implements PioneerDataExtractService * @description 党员发布的话题总数 * @Date 2020/9/23 13:44 **/ - private int getTopicTotal(String customerId, List partyMemberUserIds) { + private int getTopicTotal(String customerId, List partyMemberUserIds, String gridId, String agencyId) { if (CollectionUtils.isEmpty(partyMemberUserIds)) { //如果网格内没有党员,直接返回0 return NumConstant.ZERO; } - return factOriginTopicMainDailyService.calPublishedByPartyTopicCount(customerId, partyMemberUserIds); + return factOriginTopicMainDailyService.calPublishedByPartyTopicCount(customerId, partyMemberUserIds, gridId, agencyId); } /** @@ -212,11 +306,11 @@ public class PioneerDataExtractServiceImpl implements PioneerDataExtractService * @description 党员发布的议题总数 * @Date 2020/9/23 14:39 **/ - private int getParyPublishIssueTotal(String customerId, List partyMemberUserIds) { + private int getParyPublishIssueTotal(String customerId, List partyMemberUserIds, String gridId, String agencyId) { if (CollectionUtils.isEmpty(partyMemberUserIds)) { return NumConstant.ZERO; } - return factOriginIssueMainDailyService.getParyPublishIssueTotal(customerId, partyMemberUserIds); + return factOriginIssueMainDailyService.getParyPublishIssueTotal(customerId, partyMemberUserIds, gridId, agencyId); } /** @@ -232,18 +326,16 @@ public class PioneerDataExtractServiceImpl implements PioneerDataExtractService } - - /** - * @return int * @param customerId * @param communityId + * @return int * @author yinzuomei * @description * @Date 2020/9/24 10:44 **/ - private int getGridOrCommunityIssueTotal(String customerId, String gridId,String communityId) { - return factOriginIssueMainDailyService.getGridOrCommunityIssueTotal(customerId, gridId,communityId); + private int getGridOrCommunityIssueTotal(String customerId, String gridId, String communityId) { + return factOriginIssueMainDailyService.getGridOrCommunityIssueTotal(customerId, gridId, communityId); } /** @@ -258,19 +350,4 @@ public class PioneerDataExtractServiceImpl implements PioneerDataExtractService return factOriginTopicMainDailyService.calGridOrCommunityTopicTotal(customerId, gridId, communityId); } - /*@Override - public void extractStreetPioneerData(String customerId, String dateId) { - } - - @Override - public void extractDistrictPioneerData(String customerId, String dateId) { - } - - @Override - public void extractCityPioneerData(String customerId, String dateId) { - } - - @Override - public void extractProvincePioneerData(String customerId, String dateId) { - }*/ } 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 a46d3d0d58..bab236a466 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 @@ -77,9 +77,6 @@ public class ScreenExtractServiceImpl implements ScreenExtractService { partyBaseInfoService.statsPartyMemberBaseInfoToScreen(customerId,dateId); pioneerDataExtractService.extractGridPioneerData(customerId,dateId); pioneerDataExtractService.extractCommunityPioneerData(customerId,dateId); - pioneerDataExtractService.extractStreetPioneerData(customerId,dateId); - pioneerDataExtractService.extractDistrictPioneerData(customerId,dateId); - pioneerDataExtractService.extractCityPioneerData(customerId,dateId); - pioneerDataExtractService.extractProvincePioneerData(customerId,dateId); + pioneerDataExtractService.extractExceptCommunityPioneerData(customerId,dateId); } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenPioneerDataService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenPioneerDataService.java index 1e42747a4a..99196d9950 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenPioneerDataService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenPioneerDataService.java @@ -34,23 +34,21 @@ public interface ScreenPioneerDataService extends BaseService * @param customerId * @param orgType :grid,agency - * @param agencyLevel : 机关级别(社区级:community, 乡(镇、街道)级:street,区县级: district,市级: city 省级:province) * @author yinzuomei * @description 构造screen_pioneer_data 初始数据,先赋值为0 * @Date 2020/9/22 14:41 **/ - List initPioneerDataList(String customerId, String orgType,String agencyLevel); + List initPioneerDataList(String customerId, String orgType); /** * @return void * @param customerId * @param orgType grid, agency - * @param dataEndTime * @param deleteSize * @param entityList 待插入的数据 * @author yinzuomei * @description 保存抽取结果 * @Date 2020/9/22 15:54 **/ - void delAndSavePioneerData(String customerId, String orgType, String dataEndTime, Integer deleteSize, List entityList); + void delAndSavePioneerData(String customerId, String orgType, Integer deleteSize, List entityList); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenPioneerDataServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenPioneerDataServiceImpl.java index d1ba5e11ef..0ae80e0b0c 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenPioneerDataServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenPioneerDataServiceImpl.java @@ -48,8 +48,7 @@ public class ScreenPioneerDataServiceImpl extends BaseServiceImpl * @author yinzuomei * @description 构造screen_pioneer_data 初始数据,先赋值为0 @@ -57,12 +56,16 @@ public class ScreenPioneerDataServiceImpl extends BaseServiceImpl initPioneerDataList(String customerId, String orgType, String agencyLevel) { + public List initPioneerDataList(String customerId, String orgType) { List list = new ArrayList<>(); if ("grid".equals(orgType)) { + //按网格构造 list = baseDao.initGridPioneerDataList(customerId); - } else if ("agency".equals(orgType)) { - list = baseDao.initAgencyPioneerDataList(customerId, agencyLevel); + } else if ("community".equals(orgType)) { + //按社构造 + list = baseDao.initCommunityPioneerDataList(customerId); + }else if("agency".equals(orgType)){ + list = baseDao.initExceptCommunityPioneerDataList(customerId); } return list; } @@ -71,7 +74,6 @@ public class ScreenPioneerDataServiceImpl extends BaseServiceImpl entityList) { + public void delAndSavePioneerData(String customerId, String orgType, Integer deleteSize, List entityList) { if(CollectionUtils.isEmpty(entityList)){ return; } @@ -92,7 +94,7 @@ public class ScreenPioneerDataServiceImpl extends BaseServiceImpl> partition = ListUtils.partition(entityList, IndexCalConstant.INSERT_SIZE); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimCustomerPartymemberService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimCustomerPartymemberService.java index 914ef6ead1..d7410071ff 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimCustomerPartymemberService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/DimCustomerPartymemberService.java @@ -124,11 +124,11 @@ public interface DimCustomerPartymemberService extends BaseService * @param customerId - * @param gridId - * @type grid,community, agency + * @param orgId: 网格id 或者社区id + * @type grid,community * @author yinzuomei - * @description 查询在本网格注册的党员id + * @description 查询在本网格或者社区注册 或者 组织下 的党员id * @Date 2020/9/23 14:18 **/ - List getPartyMemberUserIds(String customerId, String type,String gridId); + List getPartyMemberUserIds(String customerId, String type,String orgId); } \ No newline at end of file diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerPartymemberServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerPartymemberServiceImpl.java index 65b04efc11..0b0e1fa1ae 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerPartymemberServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/DimCustomerPartymemberServiceImpl.java @@ -212,10 +212,10 @@ public class DimCustomerPartymemberServiceImpl extends BaseServiceImpl * @author yinzuomei - * @description 查询在本网格注册的党员id + * @description 查询在本网格注册的党员id,或者社区下的党员, 或者组织下的 * @Date 2020/9/23 14:18 **/ @DataSource(value = DataSourceConstant.STATS) @@ -226,9 +226,8 @@ public class DimCustomerPartymemberServiceImpl extends BaseServiceImpl + and t1.GRID_ID=#{gridId} + + + and t1.AGENCY_ID=#{agencyId} + AND t1.CREATE_TOPIC_USER_ID=#{userId} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml index 8b332419f2..d02debf93b 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginTopicMainDailyDao.xml @@ -106,6 +106,12 @@ WHERE T1.DEL_FLAG = '0' AND T1.CUSTOMER_ID = #{customerId} + + AND T1.GRID_ID=#{gridId} + + + AND T1.AGENCY_ID=#{agencyId} + AND T1.CREATE_TOPIC_USER_ID=#{userId} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenPioneerDataDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenPioneerDataDao.xml index 27a201b331..c2ad6b5722 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenPioneerDataDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenPioneerDataDao.xml @@ -15,9 +15,6 @@ and ORG_TYPE=#{orgType} - - and DATA_END_TIME=#{dataEndTime} - and ( diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerPartymemberDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerPartymemberDao.xml index 8d5f3dc840..ba50d19701 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerPartymemberDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimCustomerPartymemberDao.xml @@ -136,4 +136,14 @@ AND dcp.CUSTOMER_ID =#{customerId} and dcp.AGENCY_ID=#{communityId} + + \ No newline at end of file