diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionDetailServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionDetailServiceImpl.java index 44ad6a4172..acc06b2281 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionDetailServiceImpl.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionDetailServiceImpl.java @@ -270,9 +270,11 @@ public class ProjectSatisfactionDetailServiceImpl extends BaseServiceImpl existsProjects = statisticsDao.selectExistsProject(); List projects = new ArrayList<>(); + // 要是 评价统计库没有记录,所有的项目都得插入 if (CollectionUtils.isEmpty(existsProjects)){ projects = allProjects; }else { + // 把 评价统计库存在的 标记为true, allProjects.forEach(a -> { existsProjects.forEach(p -> { if (a.getProjectId().equals(p)){ @@ -287,12 +289,15 @@ public class ProjectSatisfactionDetailServiceImpl extends BaseServiceImpl needAdd = new ArrayList<>(); if (!CollectionUtils.isEmpty(projects)){ - List projectIds = projects.stream().map(m -> m.getIssueId()).collect(Collectors.toList()); + List projectIds = projects.stream().map(m -> m.getProjectId()).collect(Collectors.toList()); + List issueIds = projects.stream().map(m -> m.getIssueId()).collect(Collectors.toList()); + // 根据项目ID查询 项目的评价细节 List projectEvaluateDetailResult = baseDao.selectProjectEvaluateDetail(projectIds); + // 根据项目ID分组 Map> groupByProject = projectEvaluateDetailResult.stream().collect(Collectors.groupingBy(ProjectEvaluateDetailResultDTO::getProjectId)); boolean empty = groupByProject.isEmpty(); // 项目应评价人数 = 话题创建者 + 议题发起者 + 议题表决人 【去重】 - Result> canEvaluateProjectCountBatch = govIssueOpenFeignClient.canEvaluateProjectCountBatch(projectIds); + Result> canEvaluateProjectCountBatch = govIssueOpenFeignClient.canEvaluateProjectCountBatch(issueIds); if (!canEvaluateProjectCountBatch.success()){ throw new RenException("【查询项目应评价人数失败】,【"+canEvaluateProjectCountBatch.getMsg()+"】"); } @@ -304,9 +309,9 @@ public class ProjectSatisfactionDetailServiceImpl extends BaseServiceImpl { if (p.getProjectId().equals(projectId)){ Map> groupByS = list.stream().collect(Collectors.groupingBy(ProjectEvaluateDetailResultDTO::getSatisfaction)); - e.setBadCount(groupByS.get(ProjectConstant.EVALUATE_BAD).size()); - e.setGoodCount(groupByS.get(ProjectConstant.EVALUATE_GOOD).size()); - e.setPerfectCount(groupByS.get(ProjectConstant.EVALUATE_PERFECT).size()); + e.setBadCount(CollectionUtils.isEmpty(groupByS.get(ProjectConstant.EVALUATE_BAD)) ? NumConstant.ZERO : groupByS.get(ProjectConstant.EVALUATE_BAD).size()); + e.setGoodCount(CollectionUtils.isEmpty(groupByS.get(ProjectConstant.EVALUATE_GOOD)) ? NumConstant.ZERO : groupByS.get(ProjectConstant.EVALUATE_GOOD).size()); + e.setPerfectCount(CollectionUtils.isEmpty(groupByS.get(ProjectConstant.EVALUATE_PERFECT)) ? NumConstant.ZERO : groupByS.get(ProjectConstant.EVALUATE_PERFECT).size()); } }); }