Browse Source

得分说明 代码暂存

dev_shibei_match
jianjun 4 years ago
parent
commit
c83cc44bbb
  1. 5
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/form/IndexExplainFormDTO.java
  2. 5
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/result/IndexScoreResult.java
  3. 4
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/constant/IndexConstant.java
  4. 5
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/controller/index/IndexExplainController.java
  5. 4
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/fact/FactIndexGridScoreDao.java
  6. 43
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/index/impl/IndexExplainServiceImpl.java
  7. 14
      epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexGridScoreDao.xml

5
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;

5
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;
}

4
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";

5
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<List<IndexExplainResult>> getScoreDetail(@RequestBody IndexExplainFormDTO formDTO){
formDTO.setMonthId(StringUtils.isBlank(formDTO.getMonthId()) ? DateUtils.getCurrentTimeBeforeMonthId() : formDTO.getMonthId());
ValidatorUtils.validateEntity(formDTO);
Result<List<IndexExplainResult>> ok = new Result<List<IndexExplainResult>>().ok(indexExplainService.getScoreDetail(formDTO));
return ok;
}

4
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<MonthScoreListResultDTO.ScoreListResultDTO> selectGridMonthWeightScoreList(MonthScoreListFormDTO formDTO);
List<IndexScoreResult> selectGridScoreList(@Param("customerId") String customerId, @Param("orgId") String orgId, @Param("monthId") String monthId);
}

43
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<IndexExplainTreeDTO> 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<IndexScoreResult> 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<String, List<IndexGroupDetailResult>> detailEntityMap, IndexExplainTreeDTO explainDTO, IndexExplainResult result) {
if (NumConstant.ONE == explainDTO.getIsSearch()) {
List<IndexScoreResult> realScoreList = null;

14
epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexGridScoreDao.xml

@ -76,5 +76,19 @@
ORDER BY
fact.month_id ASC
</select>
<select id="selectGridScoreList" resultType="com.epmet.evaluationindex.index.result.IndexScoreResult">
SELECT
ROUND(fact.score,1) AS "score",
fact.index_code ,
fact.WEIGHT,
fact.IS_TOTAL
FROM
fact_index_grid_score fact
WHERE
fact.del_flag = '0'
AND fact.customer_id = #{customerId}
AND fact.grid_id = #{orgId}
AND fact.month_id = #{monthId}
</select>
</mapper>

Loading…
Cancel
Save