From 9361971b47f7019ff746801e9e188663e6e2097f Mon Sep 17 00:00:00 2001 From: jianjun Date: Sun, 27 Sep 2020 18:23:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E4=BC=97=E5=8F=82=E4=B8=8E=E8=BE=83?= =?UTF-8?q?=E4=B8=8A=E6=9C=88=20=20=E4=B8=8A=E5=8D=87=E4=B8=8B=E9=99=8D?= =?UTF-8?q?=E4=B8=BA=E8=B4=9F=E6=95=B0=EF=BC=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../result/GridUserCountResultDTO.java | 4 +-- .../impl/CalGridIndexServiceImpl.java | 2 +- .../impl/PublicPartExtractServiceImpl.java | 26 +++++++++++++------ .../extract/FactOriginGroupMainDailyDao.xml | 2 +- .../extract/FactOriginIssueLogDailyDao.xml | 2 +- .../resources/mapper/stats/DimGridDao.xml | 3 ++- .../user/FactRegUserAgencyMonthlyDao.xml | 4 +-- .../stats/user/FactRegUserGridMonthlyDao.xml | 2 +- 8 files changed, 28 insertions(+), 17 deletions(-) diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridUserCountResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridUserCountResultDTO.java index efe3b0747e..b09fadce99 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridUserCountResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/extract/result/GridUserCountResultDTO.java @@ -25,9 +25,9 @@ public class GridUserCountResultDTO implements Serializable { private Integer partyCount = NumConstant.ZERO; /** - * 网格ID + * 网格ID 或组织Id */ - private String gridId; + private String orgId; /** * 用户总数 diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java index 9a9b0c0aa1..4610455b81 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java @@ -145,7 +145,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { // 1. 网格群众用户数 , 网格党员用户数 if (!CollectionUtils.isEmpty(gridUserCountList)){ gridUserCountList.forEach(count -> { - if (r.getGridId().equals(count.getGridId())){ + if (r.getGridId().equals(count.getOrgId())) { r.setUserCount(count.getUserCount()); r.setPartyCount(count.getPartyCount()); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PublicPartExtractServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PublicPartExtractServiceImpl.java index 3146e15a43..6f3a1c9931 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PublicPartExtractServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/PublicPartExtractServiceImpl.java @@ -112,7 +112,7 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService { log.error("抽取【公众参与-人均议题】,获取注册用户数为空"); return; } - Map userCountMap = userCountList.stream().collect(Collectors.toMap(GridUserCountResultDTO::getGridId, o -> o)); + Map userCountMap = userCountList.stream().collect(Collectors.toMap(GridUserCountResultDTO::getOrgId, o -> o)); issueTotal.forEach(issue -> { String gridId = issue.getGridId(); ScreenUserJoinEntity entity = insertMap.get(gridId); @@ -122,7 +122,8 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService { log.debug("issue:{}", JSON.toJSONString(issue)); log.debug("user:{}", JSON.toJSONString(user)); if (!user.getRegTotal().equals(0)) { - BigDecimal avgIssueCount = new BigDecimal(issue.getIssueIncr()).divide(new BigDecimal(user.getRegTotal()).divide(new BigDecimal(NumConstant.ONE_HUNDRED))); + BigDecimal avgIssueCount = new BigDecimal(issue.getIssueIncr()).divide(new BigDecimal(user.getRegTotal()) + .divide(new BigDecimal(NumConstant.ONE_HUNDRED)), 4, BigDecimal.ROUND_HALF_UP); entity.setAvgIssue(avgIssueCount); } }); @@ -156,9 +157,13 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService { if (memberCount == null) { memberCount = 0; } - bigDecimal = bigDecimal.add(new BigDecimal(vote.getVoteCount() / memberCount)); + if (memberCount != 0) { + bigDecimal = bigDecimal.add(new BigDecimal(vote.getVoteCount() / memberCount)); + } + } + if (votedByIssueCount.intValue() != 0) { + entity.setAvgJoin(bigDecimal.divide(votedByIssueCount, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(NumConstant.ONE_HUNDRED))); } - entity.setAvgJoin(bigDecimal.divide(votedByIssueCount).multiply(new BigDecimal(NumConstant.ONE_HUNDRED))); } screenUserJoinService.deleteAndInsertBatch(formDTO, new ArrayList<>(insertMap.values())); } @@ -179,7 +184,7 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService { log.error("抽取【公众参与-人均议题】,获取注册用户数为空"); return; } - Map userCountMap = userCountList.stream().collect(Collectors.toMap(GridUserCountResultDTO::getGridId, o -> o)); + Map userCountMap = userCountList.stream().collect(Collectors.toMap(GridUserCountResultDTO::getOrgId, o -> o)); Set agencyIdSet = new HashSet<>(); issueTotal.forEach(issue -> { String agencyId = issue.getAgencyId(); @@ -188,8 +193,11 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService { entity.setJoinTotal(issue.getIssueIncr()); GridUserCountResultDTO user = userCountMap.get(agencyId); //百人人均议题:统计周期内总的议题数/(注册用户数/100) - BigDecimal avgIssueCount = new BigDecimal(issue.getIssueIncr()).divide(new BigDecimal(user.getRegTotal()).divide(new BigDecimal(NumConstant.ONE_HUNDRED))); - entity.setAvgIssue(avgIssueCount); + if (!user.getRegTotal().equals(0)) { + BigDecimal avgIssueCount = new BigDecimal(issue.getIssueIncr()).divide(new BigDecimal(user.getRegTotal()) + .divide(new BigDecimal(NumConstant.ONE_HUNDRED)), 4, BigDecimal.ROUND_HALF_UP); + entity.setAvgIssue(avgIssueCount); + } }); List> partition = ListUtils.partition(new ArrayList<>(agencyIdSet), NumConstant.THIRTY); @@ -224,7 +232,9 @@ public class PublicPartExtractServiceImpl implements PublicPartExtractService { } bigDecimal = bigDecimal.add(new BigDecimal(vote.getVoteCount() / memberCount)); } - entity.setAvgJoin(bigDecimal.divide(votedByIssueCount).multiply(new BigDecimal(NumConstant.ONE_HUNDRED))); + if (votedByIssueCount.intValue() != 0) { + entity.setAvgJoin(bigDecimal.divide(votedByIssueCount).multiply(new BigDecimal(NumConstant.ONE_HUNDRED))); + } } }); screenUserJoinService.deleteAndInsertBatch(formDTO, new ArrayList<>(insertMap.values())); diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml index 7898e849a9..4710c224fa 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginGroupMainDailyDao.xml @@ -277,7 +277,7 @@ WHERE DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId} - GROUP by ${groupField,jdbcType=VARCHAR} + GROUP by ${groupField} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml index 8b74563b15..b83e517441 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DimGridDao.xml @@ -15,7 +15,8 @@ SELECT ID, CUSTOMER_ID, - AGENCY_ID + AGENCY_ID, + GRID_NAME FROM dim_grid WHERE diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserAgencyMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserAgencyMonthlyDao.xml index d5e65f289d..7d01629a99 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserAgencyMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserAgencyMonthlyDao.xml @@ -119,10 +119,10 @@ SELECT REG_INCR, PARTYMEMBER_INCR, - AGENCY_ID, + AGENCY_ID as orgId, REG_TOTAL FROM - fact_reg_user_grid_monthly + fact_reg_user_agency_monthly WHERE DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml index 44392a8741..209d13e228 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/user/FactRegUserGridMonthlyDao.xml @@ -111,7 +111,7 @@ SELECT REG_INCR, PARTYMEMBER_INCR, - GRID_ID, + GRID_ID as orgId, REG_TOTAL FROM fact_reg_user_grid_monthly