Browse Source

Merge remote-tracking branch 'origin/dev_bugfix_ljj' into dev

dev_shibei_match
zxc 4 years ago
parent
commit
afa065da89
  1. 42
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java
  2. 38
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml

42
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/dataToIndex/impl/CalGridIndexServiceImpl.java

@ -357,33 +357,23 @@ public class CalGridIndexServiceImpl implements CalGridIndexService {
// 根据网格分组
Map<String, List<ProjectEvaluateResultDTO>> groupByGrid = projectEvaluateList.stream().collect(Collectors.groupingBy(ProjectEvaluateResultDTO::getGridId));
groupByGrid.forEach((gridId,projectEvaluateInfoList) -> {
Map<String,Integer> scoreMap = new HashMap<>(16);
// 根据项目分组
Map<String, List<ProjectEvaluateResultDTO>> groupByProject = projectEvaluateInfoList.stream().collect(Collectors.groupingBy(ProjectEvaluateResultDTO::getProjectId));
groupByProject.forEach((projectId,projectList) -> {
projectList.forEach(project -> {
switch (project.getActionCode()) {
case ExtractConstant.EVALUATE_BAD:
project.setScore(ProjectEvaluateConstant.BAD);
break;
case ExtractConstant.EVALUATE_GOOD:
project.setScore(ProjectEvaluateConstant.GOOD);
break;
case ExtractConstant.EVALUATE_PERFECT:
project.setScore(ProjectEvaluateConstant.PERFECT);
break;
default:
log.warn("calGridIndexGovernAbility other projectEvaluate,actionCode:{}", project.getActionCode());
}
});
Integer projectAllScore = projectList.stream().mapToInt(ProjectEvaluateResultDTO::getScore).sum();
scoreMap.put(projectId,projectAllScore/projectList.size());
});
AtomicReference<Integer> allScore = new AtomicReference<>(0);
scoreMap.forEach((k,v) -> {
allScore.set(++v);
projectEvaluateInfoList.forEach(p -> {
switch (p.getActionCode()) {
case ExtractConstant.EVALUATE_BAD:
p.setScore(ProjectEvaluateConstant.BAD);
break;
case ExtractConstant.EVALUATE_GOOD:
p.setScore(ProjectEvaluateConstant.GOOD);
break;
case ExtractConstant.EVALUATE_PERFECT:
p.setScore(ProjectEvaluateConstant.PERFECT);
break;
default:
log.warn("calGridIndexGovernAbility other projectEvaluate,actionCode:{}", p.getActionCode());
}
});
resultSatisfactionScore.put(gridId,getRound(new BigDecimal(allScore.get()/scoreMap.size())));
Integer projectAllScore = projectEvaluateInfoList.stream().collect(Collectors.summingInt(ProjectEvaluateResultDTO::getScore));
resultSatisfactionScore.put(gridId,getRound(new BigDecimal(projectAllScore/projectEvaluateInfoList.size())));
});
}
String quarterId = DateUtils.getQuarterId(monthId);

38
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectLogDailyDao.xml

@ -266,24 +266,26 @@
</select>
<!-- 查询机关办结次数 -->
<select id="selectAgencyHandledProjectCount" resultType="com.epmet.dto.extract.result.ProjectParticipatedAgencyResultDTO">
SELECT
SUBSTRING_INDEX(main.FINISH_ORG_IDS,':',1) AS agencyId,
COUNT(main.ID) AS count
FROM fact_origin_project_main_daily main
LEFT JOIN fact_origin_project_log_daily log
ON main.ID = log.PROJECT_ID AND log.DEL_FLAG = '0' AND log.ACTION_CODE = 'close'
WHERE main.DEL_FLAG = '0'
AND main.CUSTOMER_ID = #{customerId}
<if test="null != agencies and agencies.size() > 0">
<foreach collection="agencies" item="item" open="AND ( " separator=" OR " close=" ) ">
main.FINISH_ORG_IDS LIKE concat(#{item},'%')
</foreach>
</if>
<if test='null != dimId and "" != dimId.trim()'>
AND log.ID IS NOT NULL AND log.MONTH_ID = #{dimId}
</if>
GROUP BY SUBSTRING_INDEX(main.FINISH_ORG_IDS,':',1)
SELECT
ORG_ID AS "agencyId",
COUNT( PROJECT_ID ) AS count
FROM
fact_origin_project_log_daily
WHERE
DEL_FLAG = '0'
AND ACTION_CODE = 'close'
AND CUSTOMER_ID = #{customerId}
AND ORG_TYPE = 'agency'
<if test="null != agencies and agencies.size() > 0">
<foreach collection="agencies" item="item" open="AND ( " separator=" OR " close=" ) ">
ORG_ID = #{item}
</foreach>
</if>
<if test='null != dimId and "" != dimId.trim()'>
AND MONTH_ID = #{dimId}
</if>
GROUP BY
ORG_ID
</select>
<!-- 查询评价周期内各级别机关办结的项目Id -->
<select id="selectProjectIdHandledByAgency" resultType="com.epmet.dto.extract.result.ProjectParticipatedAgencyResultDTO">

Loading…
Cancel
Save