diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ScoreListResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ScoreListResultDTO.java index 64d2b02a95..40db66a38b 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ScoreListResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/ScoreListResultDTO.java @@ -44,6 +44,12 @@ public class ScoreListResultDTO implements Serializable { private Double subAgencyWeight; + /** + * 下级指数=indexTotalOriginScore-selfOriginScore + */ private Double subOriginScore; - + /** + * 下级指数,四舍五入,前端不用此值 + */ + private Double subOriginScoreBak; } diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexAgencyScoreDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexAgencyScoreDao.xml index ce03de993a..37438d4249 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexAgencyScoreDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexAgencyScoreDao.xml @@ -31,7 +31,8 @@ ROUND(self.self_score,1) AS selfOriginScore, self.SELF_WEIGHT AS agencyWeight, ROUND(self.sub_score*fact.WEIGHT, 1) AS "subAgencyScore", - ROUND(self.sub_score,1) AS subOriginScore, + ROUND(self.sub_score,1) AS subOriginScoreBak, + ROUND(fact.score,1)-ROUND(self.self_score,1) as subOriginScore, self.SUB_WEIGHT AS subAgencyWeight FROM fact_index_agency_score fact diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexCommunityScoreDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexCommunityScoreDao.xml index 1fcb8a4dc1..bd42a2b2b8 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexCommunityScoreDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexCommunityScoreDao.xml @@ -31,7 +31,8 @@ ROUND(self.self_score, 1) AS selfOriginScore, self.SELF_WEIGHT AS agencyWeight, ROUND(ROUND(self.sub_score,1)*fact.WEIGHT, 1) AS "subAgencyScore", - ROUND(self.sub_score, 1) AS subOriginScore, + ROUND(self.sub_score, 1) AS subOriginScoreBak, + ROUND(fact.score,1)-ROUND(self.self_score, 1) as subOriginScore, self.SUB_WEIGHT AS subAgencyWeight FROM fact_index_community_score fact diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexGridScoreDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexGridScoreDao.xml index 1b5d82dbd1..62a7984b85 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexGridScoreDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexGridScoreDao.xml @@ -31,7 +31,8 @@ ROUND(self.self_score, 1) AS selfOriginScore, self.SELF_WEIGHT AS agencyWeight, ROUND(ROUND(self.sub_score,1)*fact.WEIGHT, 1) AS "subAgencyScore", - ROUND(self.sub_score, 1) AS subOriginScore, + ROUND(self.sub_score, 1) AS subOriginScoreBak, + ROUND(fact.score,1)-ROUND(self.self_score, 1) as subOriginScore, self.SUB_WEIGHT AS subAgencyWeight FROM fact_index_grid_score fact 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 e37586f930..389901ffd3 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 @@ -36,11 +36,8 @@ import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.text.NumberFormat; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.atomic.AtomicReference; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** @@ -328,8 +325,10 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { }); } //网格办结项目数 - List gridProjectClosedTotalList = projectMainService.selectGridClosedProject(result.stream().map(m -> m.getGridId()).collect(Collectors.toList()), monthId, ExtractConstant.CLOSED); + List allGridIds = result.stream().map(GovernAbilityGridMonthlyFormDTO::getGridId).collect(Collectors.toList()); + List gridProjectClosedTotalList = projectMainService.selectGridClosedProject(allGridIds, monthId, ExtractConstant.CLOSED); //网格吹哨部门准确率 【没被退回的项目数/项目总数 】 + //获取网格 存在的项目id及网格Id 没有项目的网格需要过滤出来 List transferRightRatioResultDTOS = projectMainService.selectTransferRightRatio(customerId, monthId); List transferRightRatioResultDTOS1 = projectLogService.selectNotReturn(customerId, monthId); if (!CollectionUtils.isEmpty(transferRightRatioResultDTOS1)){ @@ -339,16 +338,19 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { }else { transferRightRatioResultDTOS.forEach(r -> r.setStatus(false)); } + Set haveNotProjectSet = new HashSet<>(allGridIds); Map> groupByGridProject = transferRightRatioResultDTOS.stream().collect(Collectors.groupingBy(TransferRightRatioResultDTO::getGridId)); Map notReturnMap = new HashMap<>(16); groupByGridProject.forEach((grid,project) -> { - AtomicReference count = new AtomicReference<>(NumConstant.ZERO); + AtomicInteger count = new AtomicInteger(NumConstant.ZERO); project.forEach(p -> { if (p.getStatus().equals(false)){ - count.getAndSet(count.get() + NumConstant.ONE); + count.incrementAndGet(); } }); - notReturnMap.put(grid,getRound(new BigDecimal(count.get()/project.size()).multiply(NumConstant.ONE_HUNDRED_DECIMAL))); + notReturnMap.put(grid,getRound(new BigDecimal(count.get()).divide(new BigDecimal(project.size()),NumConstant.EIGHT,BigDecimal.ROUND_HALF_UP).multiply(NumConstant.ONE_HUNDRED_DECIMAL))); + //把有项目数的网格剔除 只剩下没有项目的网格 + haveNotProjectSet.remove(grid); }); //网格内解决的项目的满意度 //项目评价(分值定义下非常满意100,满意80,不满意(一般)60)的人数的平均分(每个项目的参加人数的分数和/评论人数=一个项目的平均分)+其他项目得分/已关闭项目总数 @@ -425,6 +427,10 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { } }); } + //如果项目数为0 则准确率设置为100 + if (haveNotProjectSet.contains(r.getGridId())){ + r.setTransferRightRatio(new BigDecimal(100)); + } // 5. 网格内解决的项目的满意度 if (!CollectionUtils.isEmpty(resultSatisfactionScore)){ resultSatisfactionScore.forEach((k, v) -> { diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollDistrictDepartmentServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollDistrictDepartmentServiceImpl.java index 328a7c694a..3ccdfa136f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollDistrictDepartmentServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/IndexCollDistrictDepartmentServiceImpl.java @@ -122,6 +122,7 @@ public class IndexCollDistrictDepartmentServiceImpl implements IndexCollDistrict BigDecimal sum = new BigDecimal(item.getSum()); BigDecimal one = new BigDecimal(NumConstant.ONE); entity.setClosedProjectRatio(one.divide(sum.divide(count), NumConstant.SIX, RoundingMode.HALF_UP)); + entity.setClosedProjectRatio(sum.divide(count).setScale(NumConstant.SIX, RoundingMode.HALF_UP)); } })); } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java index e59b8eab6e..b0c794e759 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectLogDailyServiceImpl.java @@ -269,8 +269,8 @@ public class FactOriginProjectLogDailyServiceImpl extends BaseServiceImpl