diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankResultDTO.java index 8bb3ed181f..bb27ea7436 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/GroupActRankResultDTO.java @@ -1,7 +1,6 @@ package com.epmet.dataaggre.dto.resigroup.result; import com.epmet.commons.tools.constant.NumConstant; -import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -25,7 +24,7 @@ public class GroupActRankResultDTO implements Serializable { private String participateUserName; private List categoryList; - @JsonIgnore + // @JsonIgnore private Integer sortValue; public GroupActRankResultDTO() { diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/dto/IndexExplainDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/dto/IndexExplainDTO.java index 9980f5500d..d48084d3df 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/dto/IndexExplainDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/dto/IndexExplainDTO.java @@ -84,11 +84,6 @@ public class IndexExplainDTO implements Serializable { */ private String type; - /** - * 是否下钻:1 是;0否;eg:网格的下级分数 下钻到党员 - */ - private Integer goDown; - /** * 删除标记 0:未删除,1:已删除 */ diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/dto/IndexExplainTreeDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/dto/IndexExplainTreeDTO.java index e50b466e9d..d812953500 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/dto/IndexExplainTreeDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/dto/IndexExplainTreeDTO.java @@ -84,11 +84,6 @@ public class IndexExplainTreeDTO implements Serializable { */ private String type; - /** - * 是否下钻:1 是;0否;eg:网格的下级分数 下钻到党员 - */ - private Integer goDown; - /** * 子节点 */ diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/result/IndexExplainResult.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/result/IndexExplainResult.java index 5e37adf827..1ade73b168 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/result/IndexExplainResult.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/result/IndexExplainResult.java @@ -44,5 +44,10 @@ public class IndexExplainResult { */ private List thresholdList = new ArrayList<>(); + /** + * 表格说明 + */ + private String tableDesc; + } diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/IndexScoreResultDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/IndexScoreResultDTO.java index 33ffff9c5d..4f145e3d8a 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/IndexScoreResultDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/screen/dto/result/IndexScoreResultDTO.java @@ -26,7 +26,14 @@ public class IndexScoreResultDTO implements Serializable { */ @JsonIgnore private String party; + /** + * 党建能力 乘以权重后得分 + */ private BigDecimal partyDevAbility; + /** + * 党建能力 原始得分 + */ + private BigDecimal partyOriginScore; /** * 党建能力权重(保留一位小数) */ @@ -36,7 +43,14 @@ public class IndexScoreResultDTO implements Serializable { */ @JsonIgnore private String govern; + /** + * 治理能力 乘以权重后得分 + */ private BigDecimal governAbility; + /** + * 治理能力 原始得分 + */ + private BigDecimal governOriginScore; /** * 治理能力权重(保留一位小数) */ @@ -46,7 +60,14 @@ public class IndexScoreResultDTO implements Serializable { */ @JsonIgnore private String service; + /** + * 服务能力 乘以权重后得分 + */ private BigDecimal serviceAbility; + /** + * 服务能力 原始得分 + */ + private BigDecimal serviceOriginScore; /** * 服务能力权重(保留一位小数) */ diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/constant/IndexConstant.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/constant/IndexConstant.java index 4e2c5e01e1..7bae5401c4 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/constant/IndexConstant.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/constant/IndexConstant.java @@ -25,8 +25,12 @@ public class IndexConstant { private static final String BEN_JI_CN = "本级"; private static final String XIA_JI_CN = "下级"; - public static final String ZI_SHEN = "ZISHEN"; + public static final String ZI_SHEN = "zishen"; public static final String XIA_JI = "xiaji"; + public static final String THRESHOLD_TEXT = "给定阈值%d%%,超过阈值不加分"; + public static final String TABLE_DESC = "详见下表:"; + public static final String INDEX_SCORE_TITLE = "当月指数"; + public static final String INDEX_SCORE_DESC = "含义:自然月周期内,当月指数得分=党建指数得分*相关权重+治理指数得分*相关权重+服务指数得分*相关权重"; /** diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/index/impl/IndexExplainServiceImpl.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/index/impl/IndexExplainServiceImpl.java index 0f79d225e2..4eeb95a14b 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/index/impl/IndexExplainServiceImpl.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/index/impl/IndexExplainServiceImpl.java @@ -35,6 +35,7 @@ import com.epmet.evaluationindex.index.result.IndexGroupDetailResult; import com.epmet.evaluationindex.index.result.IndexScoreDetailResult; import com.epmet.evaluationindex.index.result.IndexScoreResult; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -67,6 +68,10 @@ public class IndexExplainServiceImpl implements IndexExplainService { @Override public List getScoreDetail(IndexExplainFormDTO formDTO) { List results = new ArrayList<>(); + IndexExplainResult first = new IndexExplainResult(); + first.setTitle(IndexConstant.INDEX_SCORE_TITLE); + first.setMeaning(IndexConstant.INDEX_SCORE_DESC); + results.add(first); List explainDTOList = indexExplainDao.getIndexExplainTreeByOrgType(formDTO.getOrgLevel()); if (CollectionUtils.isEmpty(explainDTOList)) { return null; @@ -75,8 +80,8 @@ public class IndexExplainServiceImpl implements IndexExplainService { if (CollectionUtils.isEmpty(groupDetailEntities)) { return null; } - Map> detailEntityMap = groupDetailEntities.stream().collect(Collectors.groupingBy(IndexGroupDetailResult::getAllParentIndexCode)); + Map> detailEntityMap = groupDetailEntities.stream().collect(Collectors.groupingBy(IndexGroupDetailResult::getAllParentIndexCode)); for (IndexExplainTreeDTO explainDTO : explainDTOList) { //根节点 @@ -94,72 +99,101 @@ public class IndexExplainServiceImpl implements IndexExplainService { } private void setTableData(IndexExplainFormDTO formDTO, Map> detailEntityMap, IndexExplainTreeDTO explainDTO, IndexExplainResult result) { - Integer goDown = explainDTO.getGoDown(); if (NumConstant.ONE == explainDTO.getIsSearch()) { - List tableHeaders = getTableHeaders(explainDTO); - result.setTableTileList(tableHeaders); - switch (explainDTO.getOrgLevel()) { + List realScoreList = null; + + String type = explainDTO.getType(); + String orgLevel = formDTO.getOrgLevel(); + + IndexScoreFormDTO ablityListFormDTO = new IndexScoreFormDTO(); + ablityListFormDTO.setCustomerId(formDTO.getCustomerId()); + ablityListFormDTO.setOrgId(formDTO.getOrgId()); + ablityListFormDTO.setMonthId(StringUtils.isBlank(formDTO.getMonthId()) ? DateUtils.getCurrentTimeBeforeMonthId() : formDTO.getMonthId()); + switch (orgLevel) { case "grid": - String type = explainDTO.getType(); String allIndexCodePath = null; - List tableList = null; if (IndexConstant.ZI_SHEN.equals(type)) { - allIndexCodePath = "wanggexiangguan:dangjiannengli"; - tableList = setDefaultTableData(detailEntityMap, type, allIndexCodePath); - result.setTableDataList(tableList); - } else if (IndexConstant.XIA_JI.equals(type)) { - allIndexCodePath = "dangyuanxiangguan:lianxiqunzhong"; - tableList = setDefaultTableData(detailEntityMap, type, allIndexCodePath); - result.setTableDataList(tableList); - } - //set Target value - IndexScoreFormDTO ablityListFormDTO = new IndexScoreFormDTO(); - ablityListFormDTO.setCustomerId(formDTO.getCustomerId()); - ablityListFormDTO.setOrgId(formDTO.getOrgId()); - ablityListFormDTO.setMonthId(DateUtils.getCurrentTimeBeforeMonthId()); - ablityListFormDTO.setAllParentIndexCode(allIndexCodePath); - //下钻到党员 - List scoreList = null; - if (goDown == 1) { - scoreList = factIndexCpcSubScoreDao.selecCpcAvgScore(ablityListFormDTO); - } else { + allIndexCodePath = explainDTO.getIndexCode(); + + setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath); + //不下钻 - scoreList = gridSubScoreDao.selectGridSubScore(ablityListFormDTO); - } - if (scoreList == null || tableList == null) { - return; - } - for (IndexScoreResult score : scoreList) { - for (IndexScoreDetailResult tb : tableList) { - if (tb.getIndexCode().equals(score.getIndexCode())) { - tb.setOriginValue(score.getOriginValue()); - tb.setScore(String.valueOf(score.getScore())); - tb.setQuantity(score.getQuantity()); - tb.setWeight(score.getWeight().multiply(new BigDecimal(100)).setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP) + "%"); - } - } + ablityListFormDTO.setAllParentIndexCode(allIndexCodePath); + realScoreList = gridSubScoreDao.selectGridSubScore(ablityListFormDTO); + + + } else if (IndexConstant.XIA_JI.equals(type)) { + allIndexCodePath = explainDTO.getIndexCode(); + + setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath); + + //下钻到党员 + ablityListFormDTO.setAllParentIndexCode(allIndexCodePath); + realScoreList = factIndexCpcSubScoreDao.selecCpcAvgScore(ablityListFormDTO); } + List tableHeaders = getTableHeaders(type, allIndexCodePath, orgLevel); + result.setTableTileList(tableHeaders); + break; + case "community": break; default: } + + setRealValue(result.getTableDataList(), realScoreList); + } + } + + /** + * desc: 设置实际值 + * + * @param tableList + * @param scoreList + * @return void + * @author LiuJanJun + * @date 2021/5/19 2:07 下午 + */ + private void setRealValue(List tableList, List scoreList) { + if (CollectionUtils.isEmpty(tableList) || CollectionUtils.isEmpty(scoreList)) { + return; + } + for (IndexScoreResult score : scoreList) { + for (IndexScoreDetailResult tb : tableList) { + if (!tb.getIndexCode().equals(score.getIndexCode())) { + continue; + } + tb.setOriginValue(score.getOriginValue()); + tb.setScore(String.valueOf(score.getScore())); + tb.setQuantity(score.getQuantity()); + tb.setWeight(score.getWeight().multiply(new BigDecimal(NumConstant.ONE_HUNDRED)).setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP) + "%"); + } } } - private List setDefaultTableData(Map> detailEntityMap, String type, String allIndexCodePath) { + private List setDefaultTableData(String orgLevel, String type, Map> detailEntityMap, IndexExplainResult result, String allIndexCodePath) { List indexGroupDetailEntities = detailEntityMap.get(allIndexCodePath); List tableList = new ArrayList<>(); + List threlodList = new ArrayList<>(); indexGroupDetailEntities.forEach(index -> { IndexScoreDetailResult table = new IndexScoreDetailResult(); + if ("grid".equals(orgLevel) && IndexConstant.ZI_SHEN.equals(type) && index.getAllIndexCodePath().contains(IndexConstant.XIA_JI)) { + return; + } table.setIndexCode(index.getIndexCode()); table.setIndexName(index.getIndexName()); table.setOriginValue(NumConstant.ZERO_STR); table.setScore(NumConstant.ZERO_STR); table.setWeight(index.getWeight().multiply(new BigDecimal(100)).setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP) + "%"); tableList.add(table); + if (new BigDecimal(-1).compareTo(index.getThreshold()) != 0) { + threlodList.add(index.getIndexName().concat(String.format(IndexConstant.THRESHOLD_TEXT, index.getThreshold().intValue()))); + } }); + result.setTableDataList(tableList); + result.setThresholdList(threlodList); + result.setTableDesc(IndexConstant.TABLE_DESC); return tableList; } @@ -182,15 +216,32 @@ public class IndexExplainServiceImpl implements IndexExplainService { } - private List getTableHeaders(IndexExplainTreeDTO explain) { - String type = explain.getType(); + private List getTableHeaders(String type, String allIndexCode, String orgLevel) { List headers = new ArrayList<>(); - if ("zishen".equals(type)) { - headers = IndexConstant.getStandardSelfHeaders(explain.getIndexCode()); - - } else if ("xiaji".equals(type)) { - headers = IndexConstant.getStandardSubHeaders(explain.getIndexCode()); + switch (orgLevel) { + case "grid": + //还没确定怎么搞 + if ("zishen".equals(type)) { + headers = IndexConstant.getStandardSelfHeaders(allIndexCode); + + } else if ("xiaji".equals(type)) { + headers = IndexConstant.getStandardSubHeaders(allIndexCode); + if (allIndexCode.contains("canyuyishi")) { + headers.add(0, "组织内党员的参与议事指数考评分(平均值)"); + } else if (allIndexCode.contains("lianxiqunzhong")) { + headers.add(0, "组织内党员的联系群众指数考评分(平均值)"); + } + break; + } + default: + if ("zishen".equals(type)) { + headers = IndexConstant.getStandardSelfHeaders(allIndexCode); + + } else if ("xiaji".equals(type)) { + headers = IndexConstant.getStandardSubHeaders(allIndexCode); + } } + return headers; } } diff --git a/epmet-module/data-report/data-report-server/src/main/resources/mapper/index/IndexExplainDao.xml b/epmet-module/data-report/data-report-server/src/main/resources/mapper/index/IndexExplainDao.xml index 392ba21ddd..9c7f5d0870 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/mapper/index/IndexExplainDao.xml +++ b/epmet-module/data-report/data-report-server/src/main/resources/mapper/index/IndexExplainDao.xml @@ -14,14 +14,13 @@ -