|
@ -1,5 +1,6 @@ |
|
|
package com.epmet.service.evaluationindex.extract.dataToIndex.impl; |
|
|
package com.epmet.service.evaluationindex.extract.dataToIndex.impl; |
|
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
import com.epmet.commons.tools.constant.NumConstant; |
|
|
import com.epmet.commons.tools.constant.NumConstant; |
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
import com.epmet.commons.tools.utils.DateUtils; |
|
|
import com.epmet.commons.tools.utils.DateUtils; |
|
@ -310,9 +311,12 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { |
|
|
List<GridIssueCountResultDTO> gridIssueTotalList = issueExtractService.selectIssueTotal(customerId, monthId); |
|
|
List<GridIssueCountResultDTO> gridIssueTotalList = issueExtractService.selectIssueTotal(customerId, monthId); |
|
|
//网格总项目数 从议题根据状态获取
|
|
|
//网格总项目数 从议题根据状态获取
|
|
|
List<GridProjectCountResultDTO> gridProjectTotalList = issueExtractService.selectGridProjectCount(customerId, monthId, ExtractConstant.SHIFT_PROJECT); |
|
|
List<GridProjectCountResultDTO> gridProjectTotalList = issueExtractService.selectGridProjectCount(customerId, monthId, ExtractConstant.SHIFT_PROJECT); |
|
|
|
|
|
log.info("网格总项目数{}", JSON.toJSONString(gridProjectTotalList)); |
|
|
//网格议题转项目率
|
|
|
//网格议题转项目率
|
|
|
List<GridIssueCountResultDTO> gridIssueCountList = issueExtractService.selectIssueTotalTwoMonth(customerId, monthId, DateUtils.minusMonthId(monthId)); |
|
|
List<GridIssueCountResultDTO> gridIssueCountList = issueExtractService.selectIssueTotalTwoMonth(customerId, monthId, DateUtils.minusMonthId(monthId)); |
|
|
|
|
|
log.info("网格近两个月的议题{}", JSON.toJSONString(gridIssueCountList)); |
|
|
List<GridProjectCountResultDTO> gridIssueShiftProjectRatio = getGridIssueShiftProjectRatio(gridIssueCountList, gridProjectTotalList); |
|
|
List<GridProjectCountResultDTO> gridIssueShiftProjectRatio = getGridIssueShiftProjectRatio(gridIssueCountList, gridProjectTotalList); |
|
|
|
|
|
log.info("网格议题转项目率{}", JSON.toJSONString(gridIssueShiftProjectRatio)); |
|
|
//网格自治项目数 从议题创建到项目关闭,包括处理人,自始至终没有出过议题所属网格
|
|
|
//网格自治项目数 从议题创建到项目关闭,包括处理人,自始至终没有出过议题所属网格
|
|
|
List<AutoNoMyResultDTO> projectAutoNoMyList = projectLogService.selectProjectAutoNoMy(customerId, monthId); |
|
|
List<AutoNoMyResultDTO> projectAutoNoMyList = projectLogService.selectProjectAutoNoMy(customerId, monthId); |
|
|
Map<String,Integer> autoMap = new HashMap<>(16); |
|
|
Map<String,Integer> autoMap = new HashMap<>(16); |
|
@ -353,33 +357,23 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { |
|
|
// 根据网格分组
|
|
|
// 根据网格分组
|
|
|
Map<String, List<ProjectEvaluateResultDTO>> groupByGrid = projectEvaluateList.stream().collect(Collectors.groupingBy(ProjectEvaluateResultDTO::getGridId)); |
|
|
Map<String, List<ProjectEvaluateResultDTO>> groupByGrid = projectEvaluateList.stream().collect(Collectors.groupingBy(ProjectEvaluateResultDTO::getGridId)); |
|
|
groupByGrid.forEach((gridId,projectEvaluateInfoList) -> { |
|
|
groupByGrid.forEach((gridId,projectEvaluateInfoList) -> { |
|
|
Map<String,Integer> scoreMap = new HashMap<>(16); |
|
|
projectEvaluateInfoList.forEach(p -> { |
|
|
// 根据项目分组
|
|
|
switch (p.getActionCode()) { |
|
|
Map<String, List<ProjectEvaluateResultDTO>> groupByProject = projectEvaluateInfoList.stream().collect(Collectors.groupingBy(ProjectEvaluateResultDTO::getProjectId)); |
|
|
case ExtractConstant.EVALUATE_BAD: |
|
|
groupByProject.forEach((projectId,projectList) -> { |
|
|
p.setScore(ProjectEvaluateConstant.BAD); |
|
|
projectList.forEach(project -> { |
|
|
break; |
|
|
switch (project.getActionCode()) { |
|
|
case ExtractConstant.EVALUATE_GOOD: |
|
|
case ExtractConstant.EVALUATE_BAD: |
|
|
p.setScore(ProjectEvaluateConstant.GOOD); |
|
|
project.setScore(ProjectEvaluateConstant.BAD); |
|
|
break; |
|
|
break; |
|
|
case ExtractConstant.EVALUATE_PERFECT: |
|
|
case ExtractConstant.EVALUATE_GOOD: |
|
|
p.setScore(ProjectEvaluateConstant.PERFECT); |
|
|
project.setScore(ProjectEvaluateConstant.GOOD); |
|
|
break; |
|
|
break; |
|
|
default: |
|
|
case ExtractConstant.EVALUATE_PERFECT: |
|
|
log.warn("calGridIndexGovernAbility other projectEvaluate,actionCode:{}", p.getActionCode()); |
|
|
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); |
|
|
|
|
|
}); |
|
|
}); |
|
|
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); |
|
|
String quarterId = DateUtils.getQuarterId(monthId); |
|
@ -398,7 +392,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
// 2. 网格总项目数,网格议题转项目率
|
|
|
// 2. 网格总项目数,网格议题转项目率
|
|
|
if (!CollectionUtils.isEmpty(gridIssueTotalList)){ |
|
|
if (!CollectionUtils.isEmpty(gridIssueShiftProjectRatio)){ |
|
|
gridIssueShiftProjectRatio.forEach(projectTotal -> { |
|
|
gridIssueShiftProjectRatio.forEach(projectTotal -> { |
|
|
if (r.getGridId().equals(projectTotal.getGridId())){ |
|
|
if (r.getGridId().equals(projectTotal.getGridId())){ |
|
|
r.setProjectTotal(projectTotal.getProjectTotal()); |
|
|
r.setProjectTotal(projectTotal.getProjectTotal()); |
|
@ -555,7 +549,7 @@ public class CalGridIndexServiceImpl implements CalGridIndexService { |
|
|
gridProjectTotalList.forEach(project -> { |
|
|
gridProjectTotalList.forEach(project -> { |
|
|
gridIssueTotalList.forEach(issue -> { |
|
|
gridIssueTotalList.forEach(issue -> { |
|
|
if (project.getGridId().equals(issue.getGridId())) { |
|
|
if (project.getGridId().equals(issue.getGridId())) { |
|
|
project.setIssueToProjectRatio(getRound(new BigDecimal(project.getProjectTotal() / issue.getIssueTotal()).multiply(NumConstant.ONE_HUNDRED_DECIMAL))); |
|
|
project.setIssueToProjectRatio(getRound(new BigDecimal(project.getProjectTotal()).divide(new BigDecimal(issue.getIssueTotal()),NumConstant.EIGHT,BigDecimal.ROUND_HALF_UP).multiply(NumConstant.ONE_HUNDRED_DECIMAL))); |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
}); |
|
|
}); |
|
|