Browse Source

Merge remote-tracking branch 'origin/dev_third_data' into dev_third_data

# Conflicts:
#	epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java
#	epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java
#	epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java
#	epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml
dev_shibei_match
yinzuomei 4 years ago
parent
commit
9a3907c3d6
  1. 6
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/result/IndexScoreDetailResult.java
  2. 8
      epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/result/IndexScoreResult.java
  3. 14
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/constant/IndexConstant.java
  4. 79
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/evaluationindex/index/impl/IndexExplainServiceImpl.java
  5. 5
      epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/fact/impl/FactIndexServiceImpl.java
  6. 5
      epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexAgencySubScoreDao.xml
  7. 2
      epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexCpcSubScoreDao.xml
  8. 2
      epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexDeptSubScoreDao.xml
  9. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java
  10. 10
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java
  11. 18
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java
  12. 6
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/GovernRankDataExtractServiceImpl.java
  13. 19
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml

6
epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/result/IndexScoreDetailResult.java

@ -1,5 +1,6 @@
package com.epmet.evaluationindex.index.result;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.io.Serializable;
@ -40,9 +41,10 @@ public class IndexScoreDetailResult implements Serializable {
private String weight;
/**
* 数量
* 类型 取原始值 还是数量
*/
private String quantity;
@JsonIgnore
private String type;

8
epmet-module/data-report/data-report-client/src/main/java/com/epmet/evaluationindex/index/result/IndexScoreResult.java

@ -32,9 +32,15 @@ public class IndexScoreResult implements Serializable {
* 原始值
*/
private String originValue;
/**
* 数量
*/
private String quantity;
private String sampleCount;
/**
* 值类型
*/
private String valueType;
}

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

@ -18,12 +18,12 @@ public class IndexConstant {
public static final List<String> ScoreLastHeader = Arrays.asList("指标值", "得分", "权重");
public static final List<String> QuantityLastHeader = Arrays.asList("数量", "平均值", "权重");
private static final String DJZS_CN = "党建指数";
private static final String FWZS_CN = "服务指数";
private static final String ZLZS_CN = "治理指数";
private static final String ZB_CN = "指标";
private static final String BEN_JI_CN = "本级";
private static final String XIA_JI_CN = "下级";
public static final String DJZS_CN = "党建指数";
public static final String FWZS_CN = "服务指数";
public static final String ZLZS_CN = "治理指数";
public static final String ZB_CN = "指标";
public static final String BEN_JI_CN = "本级";
public static final String XIA_JI_CN = "下级";
public static final String ZI_SHEN = "zishen";
public static final String XIA_JI = "xiaji";
@ -33,6 +33,8 @@ public class IndexConstant {
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";
public static final String PATTERN_D = "d";
public static final String QUAN_QU_ZHI_LI_INDEX_CODE = "quanquxiangguan:zhilinengli";
/**

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

@ -22,6 +22,7 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.enums.OrgLevelEnum;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.constant.DataSourceConstant;
import com.epmet.datareport.constant.FactConstant;
import com.epmet.datareport.constant.IndexConstant;
import com.epmet.datareport.dao.evaluationindex.index.IndexExplainDao;
import com.epmet.datareport.dao.evaluationindex.index.IndexGroupDetailDao;
@ -99,6 +100,16 @@ public class IndexExplainServiceImpl implements IndexExplainService {
results.add(result);
result.setTitle(explainDTO.getTitle());
result.setMeaning(explainDTO.getMeaning());
//全区相关的服务能力的含义中 有权重 所以特殊处理下
if (explainDTO.getOrgLevel().equals(OrgLevelEnum.DISTRICT.getCode()) && IndexConstant.ZLZS_CN.equals(explainDTO.getTitle())) {
List<IndexGroupDetailResult> detailResults = detailEntityMap.get(IndexConstant.QUAN_QU_ZHI_LI_INDEX_CODE);
detailResults.forEach(index -> {
String newMeaning = result.getMeaning().replaceFirst(IndexConstant.PATTERN_D,
index.getWeight().multiply(new BigDecimal(NumConstant.ONE_HUNDRED)).setScale(NumConstant.ZERO, BigDecimal.ROUND_HALF_UP).toString());
result.setMeaning(newMeaning);
});
}
//设置表格数据
setTableData(formDTO, detailEntityMap, explainDTO, result);
//子节点
@ -162,7 +173,6 @@ public class IndexExplainServiceImpl implements IndexExplainService {
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);
@ -184,10 +194,10 @@ public class IndexExplainServiceImpl implements IndexExplainService {
break;
default:
log.error("暂不支持更高级别的查询,level:{}",orgLevel);
log.error("暂不支持更高级别的查询,level:{}", orgLevel);
}
setRealValue(result.getTableDataList(), realScoreList);
setRealValue(result.getTableDataList(), realScoreList, tableHeaders);
}
}
@ -196,11 +206,12 @@ public class IndexExplainServiceImpl implements IndexExplainService {
*
* @param tableList
* @param scoreList
* @param tableHeaders
* @return void
* @author LiuJanJun
* @date 2021/5/19 2:07 下午
*/
private void setRealValue(List<IndexScoreDetailResult> tableList, List<IndexScoreResult> scoreList) {
private void setRealValue(List<IndexScoreDetailResult> tableList, List<IndexScoreResult> scoreList, List<String> tableHeaders) {
if (CollectionUtils.isEmpty(tableList) || CollectionUtils.isEmpty(scoreList)) {
return;
}
@ -209,19 +220,39 @@ public class IndexExplainServiceImpl implements IndexExplainService {
if (!tb.getIndexCode().equals(score.getIndexCode())) {
continue;
}
tb.setOriginValue(score.getOriginValue());
tb.setScore(String.valueOf(score.getScore()));
if (StringUtils.isNotBlank(score.getQuantity())) {
tb.setQuantity(score.getQuantity());
tb.setWeight(score.getWeight().multiply(new BigDecimal(NumConstant.ONE_HUNDRED)).setScale(0, BigDecimal.ROUND_HALF_UP) + "%");
if (tableHeaders.contains("平均值")) {
if (StringUtils.isNotBlank(score.getSampleCount())) {
tb.setOriginValue(score.getSampleCount());
}
} else {
tb.setOriginValue(score.getOriginValue());
formatOriginValue(score, tb);
}
tb.setWeight(score.getWeight().multiply(new BigDecimal(NumConstant.ONE_HUNDRED)) + "%");
}
}
}
private void formatOriginValue(IndexScoreResult score, IndexScoreDetailResult index) {
//小数类型,四舍五入保留小数点后一位
if (FactConstant.INTEGER.equals(score.getValueType())) {
BigDecimal num = new BigDecimal(index.getOriginValue()).setScale(0, BigDecimal.ROUND_HALF_UP);
index.setOriginValue(num.toString());
}
if (FactConstant.DECIMAL.equals(score.getValueType())) {
BigDecimal num = new BigDecimal(index.getOriginValue()).setScale(1, BigDecimal.ROUND_HALF_UP);
index.setOriginValue(num.toString());
}
//百分数类型,四舍五入保留小数点后一位并转成百分比
if (FactConstant.PERCENT.equals(score.getValueType())) {
BigDecimal num = new BigDecimal(index.getOriginValue()).setScale(1, BigDecimal.ROUND_HALF_UP);
index.setOriginValue(num + "%");
}
}
private List<IndexScoreDetailResult> setDefaultTableData(String orgLevel, String type, Map<String, List<IndexGroupDetailResult>> detailEntityMap,
IndexExplainResult result, String allIndexCodePath, List<IndexGroupDetailResult> indexGroupDetailEntities) {
if (indexGroupDetailEntities == null) {
indexGroupDetailEntities = detailEntityMap.get(allIndexCodePath);
}
@ -233,18 +264,21 @@ public class IndexExplainServiceImpl implements IndexExplainService {
List<String> 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)) {
if (OrgLevelEnum.GRID.getCode().equals(orgLevel) && IndexConstant.ZI_SHEN.equals(type) && index.getAllIndexCodePath().contains(IndexConstant.XIA_JI)) {
return;
}
if (OrgLevelEnum.DISTRICT.getCode().equals(orgLevel) && !index.getAllIndexCodePath().contains(type) && !index.getAllIndexCodePath().contains(IndexConstant.ZHI_LI_NENG_LI)) {
return;
}
if ((!"grid".equals(orgLevel) && !"district".equals(orgLevel)) && !index.getAllIndexCodePath().contains(type)) {
if (!OrgLevelEnum.GRID.getCode().equals(orgLevel) && !OrgLevelEnum.DISTRICT.getCode().equals(orgLevel) && !index.getAllIndexCodePath().contains(type)) {
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) + "%");
table.setQuantity(NumConstant.ZERO_STR);
table.setWeight(index.getWeight().multiply(new BigDecimal(100)).setScale(0, BigDecimal.ROUND_HALF_UP) + "%");
table.setType(type);
tableList.add(table);
if (new BigDecimal(-1).compareTo(index.getThreshold()) != 0) {
threlodList.add(index.getIndexName().concat(String.format(IndexConstant.THRESHOLD_TEXT, index.getThreshold().intValue())));
@ -277,13 +311,14 @@ public class IndexExplainServiceImpl implements IndexExplainService {
private List<String> getTableHeaders(String type, String allIndexCode, String orgLevel) {
List<String> headers = new ArrayList<>();
switch (orgLevel) {
case "grid":
OrgLevelEnum anEnum = OrgLevelEnum.getEnum(orgLevel);
switch (anEnum) {
case GRID:
//还没确定怎么搞
if ("zishen".equals(type)) {
if (IndexConstant.ZI_SHEN.equals(type)) {
headers = IndexConstant.getStandardSelfHeaders(allIndexCode);
} else if ("xiaji".equals(type)) {
} else if (IndexConstant.XIA_JI.equals(type)) {
headers = new ArrayList<>(IndexConstant.QuantityLastHeader);
if (allIndexCode.contains("canyuyishi")) {
headers.add(0, "组织内党员的参与议事指数考评分(平均值)");
@ -292,11 +327,11 @@ public class IndexExplainServiceImpl implements IndexExplainService {
}
break;
}
case "district":
if ("zishen".equals(type)) {
case DISTRICT:
if (IndexConstant.ZI_SHEN.equals(type)) {
headers = IndexConstant.getStandardSelfHeaders(allIndexCode);
} else if ("xiaji".equals(type)) {
} else if (IndexConstant.XIA_JI.equals(type)) {
headers = new ArrayList<>(IndexConstant.QuantityLastHeader);
if (allIndexCode.contains("quzhibumen")) {
headers.add(0, "区直部门各项治理指数指标");
@ -306,10 +341,10 @@ public class IndexExplainServiceImpl implements IndexExplainService {
}
break;
default:
if ("zishen".equals(type)) {
if (IndexConstant.ZI_SHEN.equals(type)) {
headers = IndexConstant.getStandardSelfHeaders(allIndexCode);
} else if ("xiaji".equals(type)) {
} else if (IndexConstant.XIA_JI.equals(type)) {
headers = IndexConstant.getStandardSubHeaders(allIndexCode);
}
}

5
epmet-module/data-report/data-report-server/src/main/java/com/epmet/datareport/service/fact/impl/FactIndexServiceImpl.java

@ -335,6 +335,11 @@ public class FactIndexServiceImpl implements FactIndexService {
resultList.forEach(result -> {
list.stream().filter(dto -> dto.getIndexCode().equals(result.getKey())).forEach(l -> {
result.setShowType(l.getValueType());
//整数
if (FactConstant.DECIMAL.equals(l.getValueType())) {
BigDecimal num = new BigDecimal(result.getValue()).setScale(0, BigDecimal.ROUND_HALF_UP);
result.setValue(num.toString());
}
//小数类型,四舍五入保留小数点后一位
if (FactConstant.DECIMAL.equals(l.getValueType())) {
BigDecimal num = new BigDecimal(result.getValue()).setScale(1, BigDecimal.ROUND_HALF_UP);

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

@ -46,9 +46,12 @@
fact.index_code,
IF(fact.origin_value='',0,IFNULL(fact.origin_value,0)) AS origin_value,
round(fact.score,1) AS score,
round(fact.WEIGHT,2) AS weight
round(fact.WEIGHT,2) AS weight,
SAMPLE_COUNT,
dict.VALUE_TYPE
FROM
fact_index_agency_sub_score fact
LEFT JOIN index_dict dict ON fact.index_code = dict.index_code
WHERE
fact.del_flag = '0'
AND fact.all_parent_index_code = #{allParentIndexCode}

2
epmet-module/data-report/data-report-server/src/main/resources/mapper/fact/FactIndexCpcSubScoreDao.xml

@ -29,7 +29,7 @@
<select id="selecCpcAvgScore" resultType="com.epmet.evaluationindex.index.result.IndexScoreResult">
SELECT
id, customer_id, agency_id, grid_id, year_id, month_id, user_id,
COUNT(*) quantity,
COUNT(*) SAMPLE_COUNT,
ROUND(AVG(score),1) score,
index_code, all_parent_index_code,
ROUND(weight,2) weight

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

@ -10,7 +10,7 @@
id, customer_id, dept_id, agency_id, month_id,
origin_value,
index_code, all_parent_index_code, weight,
COUNT(*) quantity,
COUNT(*) SAMPLE_COUNT,
ROUND(AVG(score),1) score,
round(weight,2) AS weight
FROM fact_index_dept_sub_score

10
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java

@ -479,6 +479,16 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
List<OrgStatisticsResultDTO> selectAgencyClosedProjectCount(@Param("customerId") String customerId, @Param("dateId") String dateId, @Param(
"closedStatus") String closedStatus, @Param("origin") String origin);
/**
* 组织结案项目统计
* @author zhaoqifeng
* @date 2021/5/27 14:51
* @param customerId
* @param dateId
* @return java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>
*/
List<OrgStatisticsResultDTO> selectAgencyClosedProjectStaticDaily(@Param("customerId") String customerId, @Param("dateId") String dateId);
/**
* 当前网格内已结案的项目
*

10
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java

@ -450,6 +450,16 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
*/
Map<String, OrgStatisticsResultDTO> getAgencyClosedProjectCount(String customerId, String dateId, String closedStatus, String origin);
/**
* 组织结案项目统计
* @author zhaoqifeng
* @date 2021/5/27 14:56
* @param customerId
* @param dateId
* @return java.util.Map<java.lang.String,java.util.List<com.epmet.dto.extract.result.OrgStatisticsResultDTO>>
*/
Map<String, List<OrgStatisticsResultDTO>> getAgencyClosedProjectStatic(String customerId, String dateId);
/**
* 当前网格内已结案的项目
*

18
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java

@ -679,6 +679,24 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
return list.stream().collect(Collectors.toMap(OrgStatisticsResultDTO::getAgencyId, Function.identity()));
}
/**
* 组织结案项目统计
*
* @param customerId
* @param dateId
* @return java.util.Map<java.lang.String, java.util.List < com.epmet.dto.extract.result.OrgStatisticsResultDTO>>
* @author zhaoqifeng
* @date 2021/5/27 14:56
*/
@Override
public Map<String, List<OrgStatisticsResultDTO>> getAgencyClosedProjectStatic(String customerId, String dateId) {
List<OrgStatisticsResultDTO> list = baseDao.selectAgencyClosedProjectStaticDaily(customerId, dateId);
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyMap();
}
return list.stream().collect(Collectors.groupingBy(OrgStatisticsResultDTO::getAgencyId));
}
/**
* 当前网格内已结案的项目
*

6
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/toscreen/impl/GovernRankDataExtractServiceImpl.java

@ -407,7 +407,7 @@ public class GovernRankDataExtractServiceImpl implements GovernRankDataExtractSe
}));
}
//自制率 自治项目数/办结项目数
List<OrgStatisticsResultDTO> selfList = factOriginProjectMainDailyService.getSelfProject(customerId, dateId, OrgTypeConstant.COMMUNITY);
List<OrgStatisticsResultDTO> selfList = factOriginProjectMainDailyService.getSelfProjectDaily(customerId, dateId, OrgTypeConstant.COMMUNITY);
if (CollectionUtils.isNotEmpty(selfList)) {
list.forEach(entity -> selfList.stream().filter(self -> entity.getOrgId().equals(self.getAgencyId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
@ -480,7 +480,7 @@ public class GovernRankDataExtractServiceImpl implements GovernRankDataExtractSe
}));
}
//自制率 自治项目数/办结项目数
List<OrgStatisticsResultDTO> selfList = factOriginProjectMainDailyService.getSelfProject(customerId, dateId, OrgTypeConstant.STREET);
List<OrgStatisticsResultDTO> selfList = factOriginProjectMainDailyService.getSelfProjectDaily(customerId, dateId, OrgTypeConstant.STREET);
if (CollectionUtils.isNotEmpty(selfList)) {
list.forEach(entity -> selfList.stream().filter(self -> entity.getOrgId().equals(self.getAgencyId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {
@ -553,7 +553,7 @@ public class GovernRankDataExtractServiceImpl implements GovernRankDataExtractSe
}));
}
//自制率 自治项目数/办结项目数
List<OrgStatisticsResultDTO> selfList = factOriginProjectMainDailyService.getSelfProject(customerId, dateId, OrgTypeConstant.DISTRICT);
List<OrgStatisticsResultDTO> selfList = factOriginProjectMainDailyService.getSelfProjectDaily(customerId, dateId, OrgTypeConstant.DISTRICT);
if (CollectionUtils.isNotEmpty(selfList)) {
list.forEach(entity -> selfList.stream().filter(self -> entity.getOrgId().equals(self.getAgencyId())).forEach(dto -> {
if (dto.getSum() != NumConstant.ZERO) {

19
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml

@ -963,6 +963,25 @@
</if>
GROUP BY AGENCY_ID
</select>
<select id="selectAgencyClosedProjectStaticDaily" resultType="com.epmet.dto.extract.result.OrgStatisticsResultDTO">
SELECT
a.AGENCY_ID,
c.`LEVEL`,
COUNT(a.ID) AS "sum",
SUM(IF(b.ORG_TYPE = 'department', 1, 0)) AS "count"
FROM
fact_origin_project_main_daily a
INNER JOIN fact_origin_project_log_daily b ON a.ID = b.PROJECT_ID
AND b.ACTION_CODE = 'close'
INNER JOIN dim_agency c ON b.AGENCY_ID = c.ID
WHERE
a.CUSTOMER_ID = #{customerId}
AND a.DATE_ID &lt;= #{dateId}
AND a.PROJECT_STATUS = 'closed'
GROUP BY
a.AGENCY_ID,
c.`LEVEL`
</select>

Loading…
Cancel
Save