From c83cc44bbb19f042da962a77d036860b9f098dd8 Mon Sep 17 00:00:00 2001 From: jianjun Date: Fri, 9 Jul 2021 18:17:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=97=E5=88=86=E8=AF=B4=E6=98=8E=20?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../index/form/IndexExplainFormDTO.java | 5 +++ .../index/result/IndexScoreResult.java | 5 +++ .../datareport/constant/IndexConstant.java | 4 +- .../index/IndexExplainController.java | 5 +++ .../dao/fact/FactIndexGridScoreDao.java | 4 ++ .../index/impl/IndexExplainServiceImpl.java | 43 +++++++++++++++++++ .../mapper/fact/FactIndexGridScoreDao.xml | 14 ++++++ 7 files changed, 79 insertions(+), 1 deletion(-) diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/form/IndexExplainFormDTO.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/form/IndexExplainFormDTO.java index b97139c8ff..245d3f7d04 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/form/IndexExplainFormDTO.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/form/IndexExplainFormDTO.java @@ -19,6 +19,7 @@ package com.epmet.evaluationindex.index.form; import lombok.Data; +import javax.validation.constraints.NotBlank; import java.io.Serializable; @@ -37,20 +38,24 @@ public class IndexExplainFormDTO implements Serializable { /** * 客户id */ + @NotBlank(message = "客户ID不能为空") private String customerId; /** * 组织级别(网格级:grid;社区级:community;乡(镇、街道)级:street;区县级: district;市级: city;省级:province) */ + @NotBlank(message = "组织级别不能为空") private String orgLevel; /** * 组织id */ + @NotBlank(message = "组织ID不能为空") private String orgId; /** * 月份Id */ + @NotBlank(message = "月份不能为空") private String monthId; diff --git a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/result/IndexScoreResult.java b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/result/IndexScoreResult.java index d6ca46a913..59276f6c2a 100644 --- a/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/result/IndexScoreResult.java +++ b/epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/result/IndexScoreResult.java @@ -43,4 +43,9 @@ public class IndexScoreResult implements Serializable { */ private String valueType; + /** + * 是否是总分 + */ + private Boolean isTotal; + } 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 dd34c3c42d..2ffc570122 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 @@ -30,10 +30,12 @@ public class IndexConstant { 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 = "自然月周期内,当月指数得分=党建指数得分*相关权重+治理指数得分*相关权重+服务指数得分*相关权重"; + public static final String INDEX_SCORE_DESC = "自然月周期内,当月指数得分(totalScore)=党建指数得分(dangjiannengli)*相关权重(dangjiannengliweight)+治理指数得分(zhilinengli)*相关权重(zhilinengliweight)+服务指数得分(fuwunengli)*相关权重(fuwunengliweight)"; public static final String INDEX_DISTRINCT_TABLE1_INDEX_CODE = "suoyoujiedaozlnlpjz"; public static final String ZHI_LI_NENG_LI = "zhilinengli"; public static final String PATTERN_D = "d"; + public static final String PATTERN_WEIGHT = "weight"; + public static final String PATTERN_TOTAL = "totalScore"; public static final String QUAN_QU_ZHI_LI_INDEX_CODE = "quanquxiangguan:zhilinengli"; diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/index/IndexExplainController.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/index/IndexExplainController.java index abac68a416..e248a6ac35 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/index/IndexExplainController.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/index/IndexExplainController.java @@ -17,12 +17,15 @@ package com.epmet.datareport.controller.index; +import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.datareport.service.evaluationindex.index.IndexExplainService; import com.epmet.evaluationindex.index.form.IndexExplainFormDTO; import com.epmet.evaluationindex.index.form.IndexScoreFormDTO; import com.epmet.evaluationindex.index.result.IndexExplainResult; import com.epmet.evaluationindex.screen.dto.result.IndexDictResultDTO; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -56,6 +59,8 @@ public class IndexExplainController { */ @PostMapping("detail") public Result> getScoreDetail(@RequestBody IndexExplainFormDTO formDTO){ + formDTO.setMonthId(StringUtils.isBlank(formDTO.getMonthId()) ? DateUtils.getCurrentTimeBeforeMonthId() : formDTO.getMonthId()); + ValidatorUtils.validateEntity(formDTO); Result> ok = new Result>().ok(indexExplainService.getScoreDetail(formDTO)); return ok; } diff --git a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/fact/FactIndexGridScoreDao.java b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/fact/FactIndexGridScoreDao.java index c94fdb23a3..d37b7e26a9 100644 --- a/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/fact/FactIndexGridScoreDao.java +++ b/epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/fact/FactIndexGridScoreDao.java @@ -17,6 +17,7 @@ package com.epmet.datareport.dao.fact; +import com.epmet.evaluationindex.index.result.IndexScoreResult; import com.epmet.evaluationindex.screen.dto.form.AblityIndexFormDTO; import com.epmet.evaluationindex.screen.dto.form.MonthScoreListFormDTO; import com.epmet.evaluationindex.screen.dto.form.ScoreListFormDTO; @@ -24,6 +25,7 @@ import com.epmet.evaluationindex.screen.dto.result.AblityIndexResultDTO; import com.epmet.evaluationindex.screen.dto.result.MonthScoreListResultDTO; import com.epmet.evaluationindex.screen.dto.result.ScoreListResultDTO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.LinkedList; import java.util.List; @@ -57,4 +59,6 @@ public interface FactIndexGridScoreDao { * @author sun */ LinkedList selectGridMonthWeightScoreList(MonthScoreListFormDTO formDTO); + + List selectGridScoreList(@Param("customerId") String customerId, @Param("orgId") String orgId, @Param("monthId") String monthId); } 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 572fb3b4b8..c2918c67c4 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 @@ -67,13 +67,20 @@ public class IndexExplainServiceImpl implements IndexExplainService { @Autowired private FactIndexGridSubScoreDao gridSubScoreDao; @Autowired + private FactIndexGridScoreDao gridScoreDao; + @Autowired private FactIndexCpcSubScoreDao factIndexCpcSubScoreDao; @Autowired private FactIndexCommunitySubScoreDao communitySubScoreDao; @Autowired + private FactIndexCommunityScoreDao communityScoreDao; + @Autowired private FactIndexAgencySubScoreDao agencySubScoreDao; @Autowired private FactIndexDeptSubScoreDao deptSubScoreDao; + @Autowired + private FactIndexAgencyScoreDao agencyScoreDao; + @Override @@ -83,6 +90,8 @@ public class IndexExplainServiceImpl implements IndexExplainService { first.setTitle(IndexConstant.INDEX_SCORE_TITLE); first.setMeaning(IndexConstant.INDEX_SCORE_DESC); results.add(first); + //获取该等级的分数及权重 + setCurrentMonthScore(formDTO,first); List explainDTOList = indexExplainDao.getIndexExplainTreeByOrgType(formDTO.getOrgLevel()); if (CollectionUtils.isEmpty(explainDTOList)) { return null; @@ -124,6 +133,40 @@ public class IndexExplainServiceImpl implements IndexExplainService { return indexDictDao.selectIndexDict(formDTO.getIndexCode()); } + private void setCurrentMonthScore(IndexExplainFormDTO formDTO, IndexExplainResult first){ + + String orgLevel = formDTO.getOrgLevel(); + String orgId = formDTO.getOrgId(); + OrgLevelEnum anEnum = OrgLevelEnum.getEnum(orgLevel); + switch (anEnum) { + case GRID: + List list = gridScoreDao.selectGridScoreList(formDTO.getCustomerId(),formDTO.getOrgId(),formDTO.getMonthId()); + String meaning = first.getMeaning(); + for (IndexScoreResult score : list) { + String indexCode = score.getIndexCode(); + if (score.getIsTotal()){ + meaning = meaning.replaceFirst(IndexConstant.PATTERN_TOTAL,score.getScore().toString()); + continue; + } + meaning = meaning.replaceFirst(indexCode, score.getScore().toString()).replaceFirst(indexCode.concat(IndexConstant.PATTERN_WEIGHT), score.getWeight() + "%"); + } + first.setMeaning(meaning); + + + break; + case COMMUNITY: + + break; + case STREET: + + break; + case DISTRICT: + break; + default: + log.error("暂不支持更高级别的查询,level:{}", orgLevel); + } + } + private void setTableData(IndexExplainFormDTO formDTO, Map> detailEntityMap, IndexExplainTreeDTO explainDTO, IndexExplainResult result) { if (NumConstant.ONE == explainDTO.getIsSearch()) { List realScoreList = null; 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 0458665057..2b22ed1aa3 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 @@ -76,5 +76,19 @@ ORDER BY fact.month_id ASC +