Browse Source

全区服务指数

master
jianjun 4 years ago
parent
commit
76e989c0bf
  1. 5
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/form/IndexScoreFormDTO.java
  2. 2
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/constant/IndexConstant.java
  3. 36
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/fact/FactIndexDeptSubScoreDao.java
  4. 80
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/index/impl/IndexExplainServiceImpl.java
  5. 9
      epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexAgencySubScoreDao.xml
  6. 24
      epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexDeptSubScoreDao.xml

5
epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/form/IndexScoreFormDTO.java

@ -36,5 +36,8 @@ public class IndexScoreFormDTO implements Serializable {
* 所有有权重的指标code拼接的字符串 冒号隔开 * 所有有权重的指标code拼接的字符串 冒号隔开
*/ */
private String allParentIndexCode; private String allParentIndexCode;
/**
* pid
*/
private String pid;
} }

2
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/constant/IndexConstant.java

@ -31,6 +31,8 @@ public class IndexConstant {
public static final String TABLE_DESC = "详见下表:"; public static final String TABLE_DESC = "详见下表:";
public static final String INDEX_SCORE_TITLE = "当月指数"; public static final String INDEX_SCORE_TITLE = "当月指数";
public static final String INDEX_SCORE_DESC = "含义:自然月周期内,当月指数得分=党建指数得分*相关权重+治理指数得分*相关权重+服务指数得分*相关权重"; public static final String INDEX_SCORE_DESC = "含义:自然月周期内,当月指数得分=党建指数得分*相关权重+治理指数得分*相关权重+服务指数得分*相关权重";
public static final String INDEX_DISTRINCT_TABLE1_INDEX_CODE = "suoyoujiedaozlnlpjz";
public static final String ZHI_LI_NENG_LI = "zhilinengli";
/** /**

36
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/dao/fact/FactIndexDeptSubScoreDao.java

@ -0,0 +1,36 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.datareport.dao.fact;
import com.epmet.evaluationindex.index.form.IndexScoreFormDTO;
import com.epmet.evaluationindex.index.result.IndexScoreResult;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 部门相关分数表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-09-02
*/
@Mapper
public interface FactIndexDeptSubScoreDao {
List<IndexScoreResult> selecDeptAvgScore(IndexScoreFormDTO ablityListFormDTO);
}

80
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/index/impl/IndexExplainServiceImpl.java

@ -70,6 +70,8 @@ public class IndexExplainServiceImpl implements IndexExplainService {
private FactIndexCommunitySubScoreDao communitySubScoreDao; private FactIndexCommunitySubScoreDao communitySubScoreDao;
@Autowired @Autowired
private FactIndexAgencySubScoreDao agencySubScoreDao; private FactIndexAgencySubScoreDao agencySubScoreDao;
@Autowired
private FactIndexDeptSubScoreDao deptSubScoreDao;
@Override @Override
@ -125,43 +127,63 @@ public class IndexExplainServiceImpl implements IndexExplainService {
IndexScoreFormDTO ablityListFormDTO = new IndexScoreFormDTO(); IndexScoreFormDTO ablityListFormDTO = new IndexScoreFormDTO();
ablityListFormDTO.setCustomerId(formDTO.getCustomerId()); ablityListFormDTO.setCustomerId(formDTO.getCustomerId());
ablityListFormDTO.setOrgId(formDTO.getOrgId()); ablityListFormDTO.setOrgId(formDTO.getOrgId());
ablityListFormDTO.setAllParentIndexCode(allIndexCodePath);
ablityListFormDTO.setMonthId(StringUtils.isBlank(formDTO.getMonthId()) ? DateUtils.getCurrentTimeBeforeMonthId() : formDTO.getMonthId()); ablityListFormDTO.setMonthId(StringUtils.isBlank(formDTO.getMonthId()) ? DateUtils.getCurrentTimeBeforeMonthId() : formDTO.getMonthId());
switch (orgLevel) { switch (orgLevel) {
case "grid": case "grid":
if (IndexConstant.ZI_SHEN.equals(type)) { if (IndexConstant.ZI_SHEN.equals(type)) {
setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath); setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath, null);
//不下钻 //不下钻
ablityListFormDTO.setAllParentIndexCode(allIndexCodePath);
realScoreList = gridSubScoreDao.selectSubScore(ablityListFormDTO); realScoreList = gridSubScoreDao.selectSubScore(ablityListFormDTO);
} else if (IndexConstant.XIA_JI.equals(type)) { } else if (IndexConstant.XIA_JI.equals(type)) {
setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath); setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath, null);
//下钻到党员 //下钻到党员
ablityListFormDTO.setAllParentIndexCode(allIndexCodePath);
realScoreList = factIndexCpcSubScoreDao.selecCpcAvgScore(ablityListFormDTO); realScoreList = factIndexCpcSubScoreDao.selecCpcAvgScore(ablityListFormDTO);
} }
break; break;
case "community": case "community":
setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath); setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath, null);
//不下钻 //不下钻
ablityListFormDTO.setAllParentIndexCode(allIndexCodePath);
realScoreList = communitySubScoreDao.selectSubScore(ablityListFormDTO); realScoreList = communitySubScoreDao.selectSubScore(ablityListFormDTO);
break; break;
case "street": case "street":
setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath); setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath, null);
//不下钻 //不下钻
ablityListFormDTO.setAllParentIndexCode(allIndexCodePath);
realScoreList = agencySubScoreDao.selectSubScore(ablityListFormDTO); realScoreList = agencySubScoreDao.selectSubScore(ablityListFormDTO);
break; break;
case "district": case "district":
setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath); System.out.println("========" + allIndexCodePath);
//不下钻 if (allIndexCodePath.contains(IndexConstant.ZHI_LI_NENG_LI)) {
ablityListFormDTO.setAllParentIndexCode(allIndexCodePath); List<IndexGroupDetailResult> detailResults = detailEntityMap.get(allIndexCodePath);
realScoreList = agencySubScoreDao.selectSubScore(ablityListFormDTO);
List<IndexGroupDetailResult> indexGroupDetailEntities = new ArrayList<>();
for (IndexGroupDetailResult index : detailResults) {
if (IndexConstant.INDEX_DISTRINCT_TABLE1_INDEX_CODE.equals(index.getIndexCode())) {
indexGroupDetailEntities.add(index);
setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath, indexGroupDetailEntities);
//不下钻
realScoreList = agencySubScoreDao.selectSubScore(ablityListFormDTO);
break;
} else {
//下钻
setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath, null);
ablityListFormDTO.setPid(formDTO.getOrgId());
realScoreList = deptSubScoreDao.selecDeptAvgScore(ablityListFormDTO);
}
}
} else {
setDefaultTableData(orgLevel, type, detailEntityMap, result, allIndexCodePath, null);
//不下钻
realScoreList = agencySubScoreDao.selectSubScore(ablityListFormDTO);
}
break; break;
default: default:
@ -191,16 +213,22 @@ public class IndexExplainServiceImpl implements IndexExplainService {
} }
tb.setOriginValue(score.getOriginValue()); tb.setOriginValue(score.getOriginValue());
tb.setScore(String.valueOf(score.getScore())); tb.setScore(String.valueOf(score.getScore()));
tb.setQuantity(score.getQuantity()); if (StringUtils.isNotBlank(score.getQuantity())) {
tb.setQuantity(score.getQuantity());
}
tb.setWeight(score.getWeight().multiply(new BigDecimal(NumConstant.ONE_HUNDRED)).setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP) + "%"); tb.setWeight(score.getWeight().multiply(new BigDecimal(NumConstant.ONE_HUNDRED)).setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP) + "%");
} }
} }
} }
private List<IndexScoreDetailResult> setDefaultTableData(String orgLevel, String type, Map<String, List<IndexGroupDetailResult>> detailEntityMap, IndexExplainResult result, String allIndexCodePath) { private List<IndexScoreDetailResult> setDefaultTableData(String orgLevel, String type, Map<String, List<IndexGroupDetailResult>> detailEntityMap,
List<IndexGroupDetailResult> indexGroupDetailEntities = detailEntityMap.get(allIndexCodePath); IndexExplainResult result, String allIndexCodePath, List<IndexGroupDetailResult> indexGroupDetailEntities) {
if (CollectionUtils.isEmpty(indexGroupDetailEntities)){
log.warn("setDefaultTableData allINdexCodePath:{} is config error",allIndexCodePath); if (indexGroupDetailEntities == null) {
indexGroupDetailEntities = detailEntityMap.get(allIndexCodePath);
}
if (CollectionUtils.isEmpty(indexGroupDetailEntities)) {
log.warn("setDefaultTableData allINdexCodePath:{} is config error", allIndexCodePath);
return null; return null;
} }
List<IndexScoreDetailResult> tableList = new ArrayList<>(); List<IndexScoreDetailResult> tableList = new ArrayList<>();
@ -210,7 +238,7 @@ public class IndexExplainServiceImpl implements IndexExplainService {
if ("grid".equals(orgLevel) && IndexConstant.ZI_SHEN.equals(type) && index.getAllIndexCodePath().contains(IndexConstant.XIA_JI)) { if ("grid".equals(orgLevel) && IndexConstant.ZI_SHEN.equals(type) && index.getAllIndexCodePath().contains(IndexConstant.XIA_JI)) {
return; return;
} }
if (!"grid".equals(orgLevel) && !index.getAllIndexCodePath().contains(type)){ if ((!"grid".equals(orgLevel) && !"district".equals(orgLevel)) && !index.getAllIndexCodePath().contains(type)) {
return; return;
} }
table.setIndexCode(index.getIndexCode()); table.setIndexCode(index.getIndexCode());
@ -218,6 +246,7 @@ public class IndexExplainServiceImpl implements IndexExplainService {
table.setOriginValue(NumConstant.ZERO_STR); table.setOriginValue(NumConstant.ZERO_STR);
table.setScore(NumConstant.ZERO_STR); table.setScore(NumConstant.ZERO_STR);
table.setWeight(index.getWeight().multiply(new BigDecimal(100)).setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP) + "%"); table.setWeight(index.getWeight().multiply(new BigDecimal(100)).setScale(NumConstant.TWO, BigDecimal.ROUND_HALF_UP) + "%");
table.setQuantity(NumConstant.ZERO_STR);
tableList.add(table); tableList.add(table);
if (new BigDecimal(-1).compareTo(index.getThreshold()) != 0) { if (new BigDecimal(-1).compareTo(index.getThreshold()) != 0) {
threlodList.add(index.getIndexName().concat(String.format(IndexConstant.THRESHOLD_TEXT, index.getThreshold().intValue()))); threlodList.add(index.getIndexName().concat(String.format(IndexConstant.THRESHOLD_TEXT, index.getThreshold().intValue())));
@ -257,7 +286,7 @@ public class IndexExplainServiceImpl implements IndexExplainService {
headers = IndexConstant.getStandardSelfHeaders(allIndexCode); headers = IndexConstant.getStandardSelfHeaders(allIndexCode);
} else if ("xiaji".equals(type)) { } else if ("xiaji".equals(type)) {
headers = IndexConstant.getStandardSubHeaders(allIndexCode); headers = new ArrayList<>(IndexConstant.QuantityLastHeader);
if (allIndexCode.contains("canyuyishi")) { if (allIndexCode.contains("canyuyishi")) {
headers.add(0, "组织内党员的参与议事指数考评分(平均值)"); headers.add(0, "组织内党员的参与议事指数考评分(平均值)");
} else if (allIndexCode.contains("lianxiqunzhong")) { } else if (allIndexCode.contains("lianxiqunzhong")) {
@ -265,6 +294,19 @@ public class IndexExplainServiceImpl implements IndexExplainService {
} }
break; break;
} }
case "district":
if ("zishen".equals(type)) {
headers = IndexConstant.getStandardSelfHeaders(allIndexCode);
} else if ("xiaji".equals(type)) {
headers = new ArrayList<>(IndexConstant.QuantityLastHeader);
if (allIndexCode.contains("quzhibumen")) {
headers.add(0, "区直部门各项治理指数指标");
} else {
headers.add(0, "所有街道治理指数指标");
}
}
break;
default: default:
if ("zishen".equals(type)) { if ("zishen".equals(type)) {
headers = IndexConstant.getStandardSelfHeaders(allIndexCode); headers = IndexConstant.getStandardSelfHeaders(allIndexCode);

9
epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexAgencySubScoreDao.xml

@ -53,7 +53,14 @@
fact.del_flag = '0' fact.del_flag = '0'
AND fact.all_parent_index_code = #{allParentIndexCode} AND fact.all_parent_index_code = #{allParentIndexCode}
AND customer_id = #{customerId} AND customer_id = #{customerId}
AND agency_id = #{orgId} <choose>
<when test="pid != null and pid != ''">
AND PARENT_AGENCY_ID = #{pid}
</when>
<otherwise>
AND agency_id = #{orgId}
</otherwise>
</choose>
AND month_id = #{monthId} AND month_id = #{monthId}
</select> </select>

24
epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexDeptSubScoreDao.xml

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.datareport.dao.fact.FactIndexDeptSubScoreDao">
<select id="selecDeptAvgScore" resultType="com.epmet.evaluationindex.index.result.IndexScoreResult">
SELECT
id, customer_id, dept_id, agency_id, month_id,
origin_value,
index_code, all_parent_index_code, weight,
COUNT(*) quantity,
ROUND(AVG(score),2) score
FROM fact_index_dept_sub_score
WHERE
ALL_PARENT_INDEX_CODE = #{allParentIndexCode}
AND CUSTOMER_ID = #{customerId}
and AGENCY_ID= #{orgId}
and MONTH_ID = #{monthId}
GROUP BY INDEX_CODE;
</select>
</mapper>
Loading…
Cancel
Save