diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CanEvaluateProjectCountBatchResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CanEvaluateProjectCountBatchResultDTO.java new file mode 100644 index 0000000000..3e27b04112 --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/CanEvaluateProjectCountBatchResultDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.result; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author zxc + * @DateTime 2021/5/12 11:16 上午 + * @DESC + */ +@Data +public class CanEvaluateProjectCountBatchResultDTO implements Serializable { + + private static final long serialVersionUID = -3577868520393911786L; + + private String issueId; + + private List userIds = new ArrayList<>(); + + @JsonIgnore + private String userId; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueVoteResultDTO.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueVoteResultDTO.java new file mode 100644 index 0000000000..cf38c9b55c --- /dev/null +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/result/IssueVoteResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/5/12 1:44 下午 + * @DESC + */ +@Data +public class IssueVoteResultDTO implements Serializable { + + private static final long serialVersionUID = -616467646035136184L; + + private String issueId; + + private String userId; +} diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java index d46f42480a..dff2bbca89 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/GovIssueOpenFeignClient.java @@ -318,4 +318,13 @@ public interface GovIssueOpenFeignClient { */ @PostMapping("/gov/issue/issue/canevaluateprojectcount") Result> canEvaluateProjectCount(@RequestParam("issueId")String issueId); + + /** + * @Description 查询可评价项目人数 【批量】 + * @Param issueIds + * @author zxc + * @date 2021/5/12 9:31 上午 + */ + @PostMapping("/gov/issue/issue/canevaluateprojectcountbatch") + Result> canEvaluateProjectCountBatch(@RequestParam("issueIds")List issueIds); } diff --git a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java index b83f7c76b3..869c096ddd 100644 --- a/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java +++ b/epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/feign/fallback/GovIssueOpenFeignClientFallBack.java @@ -266,4 +266,9 @@ public class GovIssueOpenFeignClientFallBack implements GovIssueOpenFeignClient public Result> canEvaluateProjectCount(String issueId) { return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "canEvaluateProjectCount", issueId); } + + @Override + public Result> canEvaluateProjectCountBatch(List issueIds) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ISSUE_SERVER, "canEvaluateProjectCountBatch", issueIds); + } } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java index fd5c97e5dc..4f1125b356 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueController.java @@ -267,5 +267,16 @@ public class IssueController { return new Result>().ok(issueService.canEvaluateProjectCount(issueId)); } + /** + * @Description 查询可评价项目人数【批量】 + * @Param issueId + * @author zxc + * @date 2021/5/11 4:50 下午 + */ + @PostMapping("canevaluateprojectcountbatch") + public Result> canEvaluateProjectCountBatch(@RequestParam("issueIds")List issueIds){ + return new Result>().ok(issueService.canEvaluateProjectCountBatch(issueIds)); + } + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java index 7e31593484..65d2d35904 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteDetailDao.java @@ -22,6 +22,7 @@ import com.epmet.dto.IssueVoteDetailDTO; import com.epmet.dto.form.VoteFormDTO; import com.epmet.dto.form.VoteRedisFormDTO; import com.epmet.dto.result.IssueAttitudeCountResultDTO; +import com.epmet.dto.result.IssueVoteResultDTO; import com.epmet.dto.result.MyPartIssuesResultDTO; import com.epmet.entity.IssueVoteDetailEntity; import org.apache.ibatis.annotations.Mapper; @@ -121,4 +122,12 @@ public interface IssueVoteDetailDao extends BaseDao { * @date 2021/5/11 5:15 下午 */ List selectIssueVoteCount(@Param("issueId")String issueId); + + /** + * @Description 查询议题表决数【批量】 + * @Param issueIds + * @author zxc + * @date 2021/5/12 1:48 下午 + */ + List selectIssueVoteCountBatch(@Param("issueIds")List issueIds); } \ No newline at end of file diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java index 5dfda22af4..dd1eb23013 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueService.java @@ -333,4 +333,12 @@ public interface IssueService extends BaseService { * @date 2021/5/11 4:50 下午 */ List canEvaluateProjectCount(String issueId); + + /** + * @Description 查询可评价项目人数【批量】 + * @Param issueId + * @author zxc + * @date 2021/5/11 4:50 下午 + */ + List canEvaluateProjectCountBatch(List issueIds); } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java index 1549c36b01..f35ca71dce 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java @@ -50,6 +50,7 @@ import com.epmet.resi.group.dto.topic.ResiTopicDTO; import com.epmet.resi.group.dto.topic.form.GovTopicIssueInfoFormDTO; import com.epmet.resi.group.dto.topic.form.*; import com.epmet.resi.group.dto.topic.result.GovTopicIssueInfoResultDTO; +import com.epmet.resi.group.dto.topic.result.TopicCreatedUserBatchResultDTO; import com.epmet.resi.group.feign.ResiGroupOpenFeignClient; import com.epmet.send.SendMqMsgUtil; import com.epmet.service.*; @@ -1440,4 +1441,64 @@ public class IssueServiceImpl extends BaseServiceImpl imp return userIds.stream().distinct().collect(Collectors.toList()); } + /** + * @Description 查询可评价项目人数【批量】 + * @Param issueId + * @author zxc + * @date 2021/5/11 4:50 下午 + */ + @Override + public List canEvaluateProjectCountBatch(List issueIds) { + // 根据议题查询 + List issueEntities = baseDao.selectBatchIds(issueIds); + if (CollectionUtils.isEmpty(issueEntities)){ + throw new RenException("议题信息不存在"); + } + List result = new ArrayList<>(); + issueEntities.forEach(i -> { + CanEvaluateProjectCountBatchResultDTO r = new CanEvaluateProjectCountBatchResultDTO(); + r.setIssueId(i.getId()); + r.setUserId(i.getCreatedBy()); + result.add(r); + }); + // 所有议题表决 + List issueVoteResult = issueVoteDetailDao.selectIssueVoteCountBatch(issueIds); + Map> groupByIssue = new HashMap<>(16); + if (!CollectionUtils.isEmpty(issueVoteResult)){ + // 根据议题分组 + groupByIssue = issueVoteResult.stream().collect(Collectors.groupingBy(IssueVoteResultDTO::getIssueId)); + } + Map> finalGroupByIssue = groupByIssue; + boolean empty = finalGroupByIssue.isEmpty(); + Result> topicCreatedUserBatch = resiGroupOpenFeignClient.topicCreatedUserBatch(issueEntities.stream().map(m -> m.getSourceId()).collect(Collectors.toList())); + if (!topicCreatedUserBatch.success()){ + throw new RenException("【查询话题创建者失败】["+topicCreatedUserBatch.getMsg()+"]"); + } + List topicCreatedUserBatchData = topicCreatedUserBatch.getData(); + result.forEach(r -> { + List userIds = new ArrayList<>(); + // 议题创建者 + userIds.add(r.getUserId()); + if (!empty){ + // 实际表决人数 + finalGroupByIssue.forEach((issueId, list) -> { + if (r.getIssueId().equals(issueId)){ + List votePeople = list.stream().map(m -> m.getUserId()).collect(Collectors.toList()); + userIds.addAll(votePeople); + } + }); + } + // 话题创建者 + if (!CollectionUtils.isEmpty(topicCreatedUserBatchData)){ + topicCreatedUserBatchData.forEach(t -> { + if (r.getIssueId().equals(t.getIssueId())){ + userIds.add(t.getUserId()); + } + }); + } + r.setUserIds(userIds.stream().distinct().collect(Collectors.toList())); + }); + return result; + } + } diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml index b782350f74..3b5b4be83a 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteDetailDao.xml @@ -165,4 +165,20 @@ DEL_FLAG = '0' AND ISSUE_ID = #{issueId} + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ComplementedProjectEvaluateResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ComplementedProjectEvaluateResultDTO.java new file mode 100644 index 0000000000..ae80b92d25 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ComplementedProjectEvaluateResultDTO.java @@ -0,0 +1,24 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/5/12 10:24 上午 + * @DESC + */ +@Data +public class ComplementedProjectEvaluateResultDTO implements Serializable { + + private static final long serialVersionUID = -300492311961684245L; + + private String projectId; + + private String issueId; + + private String customerId; + + private Boolean disposeStatus = false; +} diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectEvaluateDetailResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectEvaluateDetailResultDTO.java new file mode 100644 index 0000000000..3e58285bd0 --- /dev/null +++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectEvaluateDetailResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/5/12 4:34 下午 + * @DESC + */ +@Data +public class ProjectEvaluateDetailResultDTO implements Serializable { + + private static final long serialVersionUID = -6651646333040235330L; + + private String projectId; + + private String satisfaction; +} diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectSatisfactionDetailController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectSatisfactionDetailController.java index e6cff263f9..ac8d77458a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectSatisfactionDetailController.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectSatisfactionDetailController.java @@ -127,4 +127,15 @@ public class ProjectSatisfactionDetailController { return new Result>().ok(projectSatisfactionDetailService.projectEvaluationList(formDTO)); } + /** + * @Description 补全项目评价统计 + * @author zxc + * @date 2021/5/12 10:04 上午 + */ + @PostMapping("complementedprojectevaluate") + public Result complementedProjectEvaluate(){ + projectSatisfactionDetailService.complementedProjectEvaluate(); + return new Result(); + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java index 5eccc08f67..17efc1b958 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java @@ -147,4 +147,11 @@ public interface ProjectDao extends BaseDao { @Param("customerId") String customerId); ProjectInfoDTO queryProjectInfoByProjectId(String projectId); + + /** + * @Description 查询所以已关闭的项目【项目来源为 'issue'】 + * @author zxc + * @date 2021/5/12 10:29 上午 + */ + List selectAllClosedProject(); } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionDetailDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionDetailDao.java index 83ab6375c0..d015d6900c 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionDetailDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionDetailDao.java @@ -20,6 +20,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.form.ProjectEvaluationListFormDTO; import com.epmet.dto.form.ProjectInitEvaluationFormDTO; +import com.epmet.dto.result.ProjectEvaluateDetailResultDTO; import com.epmet.dto.result.ProjectEvaluateInfoResultDTO; import com.epmet.dto.result.EvaluationListResultDTO; import com.epmet.dto.result.ProjectEvaluationListResultDTO; @@ -60,4 +61,12 @@ public interface ProjectSatisfactionDetailDao extends BaseDao projectEvaluationList(ProjectEvaluationListFormDTO formDTO); + /** + * @Description 查询项目的评价人 + * @Param projectIds + * @author zxc + * @date 2021/5/12 4:42 下午 + */ + List selectProjectEvaluateDetail(@Param("projectIds")List projectIds); + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionStatisticsDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionStatisticsDao.java index 001456d125..01c9325c98 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionStatisticsDao.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionStatisticsDao.java @@ -22,6 +22,8 @@ import com.epmet.entity.ProjectSatisfactionStatisticsEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 项目满意度调查统计表 * @@ -48,4 +50,11 @@ public interface ProjectSatisfactionStatisticsDao extends BaseDao selectExistsProject(); + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectSatisfactionStatisticsEntity.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectSatisfactionStatisticsEntity.java index b78760b234..09c8985235 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectSatisfactionStatisticsEntity.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectSatisfactionStatisticsEntity.java @@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import com.epmet.commons.tools.constant.NumConstant; import lombok.Data; import lombok.EqualsAndHashCode; @@ -70,4 +71,11 @@ public class ProjectSatisfactionStatisticsEntity extends BaseEpmetEntity { * 应评价人数【等于实际表决人数】 */ private Integer shouldEvaluateCount; + + public ProjectSatisfactionStatisticsEntity() { + this.goodCount = NumConstant.ZERO; + this.perfectCount = NumConstant.ZERO; + this.badCount = NumConstant.ZERO; + this.shouldEvaluateCount = NumConstant.ZERO; + } } diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionDetailService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionDetailService.java index 245b443e28..1457866c04 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionDetailService.java +++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionDetailService.java @@ -129,4 +129,11 @@ public interface ProjectSatisfactionDetailService extends BaseService projectEvaluationList(@RequestBody ProjectEvaluationListFormDTO formDTO); + + /** + * @Description 补全项目评价统计 + * @author zxc + * @date 2021/5/12 10:04 上午 + */ + void complementedProjectEvaluate(); } \ No newline at end of file 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 7ee52c37c6..74f9b235ac 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 @@ -47,6 +47,7 @@ import com.epmet.feign.GovIssueOpenFeignClient; import com.epmet.redis.ProjectRedis; import com.epmet.redis.ProjectSatisfactionDetailRedis; import com.epmet.service.ProjectSatisfactionDetailService; +import com.epmet.service.ProjectSatisfactionStatisticsService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.redisson.api.RLock; @@ -55,6 +56,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import java.util.*; import java.util.stream.Collectors; @@ -87,6 +89,8 @@ public class ProjectSatisfactionDetailServiceImpl extends BaseServiceImpl page(Map params) { @@ -243,7 +247,6 @@ public class ProjectSatisfactionDetailServiceImpl extends BaseServiceImpl> canEvaluateProjectCount = govIssueOpenFeignClient.canEvaluateProjectCount(projectEntity.getOriginId()); @@ -300,4 +303,75 @@ public class ProjectSatisfactionDetailServiceImpl extends BaseServiceImpl allProjects = projectDao.selectAllClosedProject(); + if (CollectionUtils.isEmpty(allProjects)){ + log.warn("不存在可补全的数据"); + return; + } + // 查询已存在的项目记录 + List existsProjects = statisticsDao.selectExistsProject(); + List projects = new ArrayList<>(); + if (CollectionUtils.isEmpty(existsProjects)){ + projects = allProjects; + }else { + allProjects.forEach(a -> { + existsProjects.forEach(p -> { + if (a.getProjectId().equals(p)){ + a.setDisposeStatus(true); + } + }); + }); + Map> groupByStatus = allProjects.stream().collect(Collectors.groupingBy(ComplementedProjectEvaluateResultDTO::getDisposeStatus)); + // 去除存在记录的项目 + projects = groupByStatus.get(false); + } + + List needAdd = new ArrayList<>(); + if (!CollectionUtils.isEmpty(projects)){ + List projectIds = projects.stream().map(m -> m.getIssueId()).collect(Collectors.toList()); + List projectEvaluateDetailResult = baseDao.selectProjectEvaluateDetail(projectIds); + Map> groupByProject = projectEvaluateDetailResult.stream().collect(Collectors.groupingBy(ProjectEvaluateDetailResultDTO::getProjectId)); + boolean empty = groupByProject.isEmpty(); + // 项目应评价人数 = 话题创建者 + 议题发起者 + 议题表决人 【去重】 + Result> canEvaluateProjectCountBatch = govIssueOpenFeignClient.canEvaluateProjectCountBatch(projectIds); + if (!canEvaluateProjectCountBatch.success()){ + throw new RenException("【查询项目应评价人数失败】,【"+canEvaluateProjectCountBatch.getMsg()+"】"); + } + projects.forEach(p -> { + ProjectSatisfactionStatisticsEntity e = new ProjectSatisfactionStatisticsEntity(); + e.setCustomerId(p.getCustomerId()); + e.setProjectId(p.getProjectId()); + if (!empty){ + groupByProject.forEach((projectId,list) -> { + 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()); + } + }); + } + if (!CollectionUtils.isEmpty(canEvaluateProjectCountBatch.getData())){ + canEvaluateProjectCountBatch.getData().forEach(ep -> { + if (p.getIssueId().equals(ep.getIssueId())){ + e.setShouldEvaluateCount(ep.getUserIds().size()); + } + }); + } + needAdd.add(e); + }); + } + if (!CollectionUtils.isEmpty(needAdd)){ + projectSatisfactionStatisticsService.insertBatch(needAdd); + } + } + } \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml index 0a430eab87..879dc9904a 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml @@ -269,4 +269,16 @@ where P.DEL_FLAG='0' AND p.id=#{projectId} + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionDetailDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionDetailDao.xml index afa26f2ac2..595060968d 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionDetailDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionDetailDao.xml @@ -59,4 +59,20 @@ LIMIT #{pageNo},#{pageSize} + + + \ No newline at end of file diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionStatisticsDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionStatisticsDao.xml index 93b220d27e..983c2be73c 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionStatisticsDao.xml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionStatisticsDao.xml @@ -33,5 +33,10 @@ AND PROJECT_ID = #{projectId} + + + \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/TopicCreatedUserBatchResultDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/TopicCreatedUserBatchResultDTO.java new file mode 100644 index 0000000000..be786de0a4 --- /dev/null +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/TopicCreatedUserBatchResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.resi.group.dto.topic.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author zxc + * @DateTime 2021/5/12 2:25 下午 + * @DESC + */ +@Data +public class TopicCreatedUserBatchResultDTO implements Serializable { + + private static final long serialVersionUID = 3742119092028478772L; + + private String issueId; + + private String userId; +} diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java index 6ff576313e..d27d31fcc5 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/ResiGroupOpenFeignClient.java @@ -259,4 +259,13 @@ public interface ResiGroupOpenFeignClient { */ @PostMapping("/resi/group/topic/topiccreateduser") Result topicCreatedUser(@RequestParam("topicId")String topicId); + + /** + * @Description 查询话题的创建者【批量】 + * @Param topicId + * @author zxc + * @date 2021/5/12 9:16 上午 + */ + @PostMapping("/resi/group/topic/topiccreateduserbatch") + Result> topicCreatedUserBatch(@RequestParam("topicIds")List topicIds); } diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java index 68683aa79a..89b4e749e7 100644 --- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java +++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/feign/fallback/ResiGroupOpenFeignClientFallback.java @@ -203,4 +203,9 @@ public class ResiGroupOpenFeignClientFallback implements ResiGroupOpenFeignClien public Result topicCreatedUser(String topicId) { return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "topicCreatedUser", topicId); } + + @Override + public Result> topicCreatedUserBatch(List topicIds) { + return ModuleUtils.feignConError(ServiceConstant.RESI_GROUP_SERVER, "topicCreatedUserBatch", topicIds); + } } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/StatsAchievementServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/StatsAchievementServiceImpl.java index e88b2ce588..6bd5ceb173 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/StatsAchievementServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/StatsAchievementServiceImpl.java @@ -5,10 +5,10 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.CustomerDTO; +//import com.epmet.dto.CustomerDTO; import com.epmet.dto.IssueDTO; import com.epmet.feign.GovIssueOpenFeignClient; -import com.epmet.feign.OperCrmOpenFeignClient; +//import com.epmet.feign.OperCrmOpenFeignClient; import com.epmet.commons.tools.enums.AchievementTypeEnum; import com.epmet.modules.group.dao.ResiGroupDao; import com.epmet.modules.group.entity.ResiGroupAchievementConfigEntity; @@ -50,8 +50,8 @@ public class StatsAchievementServiceImpl extends AbstractStatsAchievementService private ResiTopicDao resiTopicDao; @Autowired private ResiGroupDao resiGroupDao; - @Autowired - private OperCrmOpenFeignClient operCrmOpenFeignClient; +// @Autowired +// private OperCrmOpenFeignClient operCrmOpenFeignClient; @Autowired private GovIssueOpenFeignClient govIssueOpenFeignClient; @@ -387,10 +387,10 @@ public class StatsAchievementServiceImpl extends AbstractStatsAchievementService private List getCustomerIds(String customerId) { List customerIdList = new ArrayList<>(); if (StringUtils.isBlank(customerId)) { - Result> allCustomerList = operCrmOpenFeignClient.getAllCustomerList(); - if (allCustomerList != null && !CollectionUtils.isEmpty(allCustomerList.getData())) { - customerIdList.addAll(allCustomerList.getData().stream().map(CustomerDTO::getId).collect(Collectors.toList())); - } +// Result> allCustomerList = operCrmOpenFeignClient.getAllCustomerList(); +// if (allCustomerList != null && !CollectionUtils.isEmpty(allCustomerList.getData())) { +// customerIdList.addAll(allCustomerList.getData().stream().map(CustomerDTO::getId).collect(Collectors.toList())); +// } } else { customerIdList.add(customerId); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java index 169006e8cb..cce7de9dc5 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java @@ -496,4 +496,16 @@ public class ResiTopicController { public Result topicCreatedUser(@RequestParam("topicId")String topicId){ return new Result().ok(topicService.topicCreatedUser(topicId)); } + + /** + * @Description 查询话题的创建者 + * @Param topicId + * @author zxc + * @date 2021/5/12 9:16 上午 + */ + @PostMapping("topiccreateduserbatch") + public Result> topicCreatedUserBatch(@RequestParam("topicIds")List topicIds){ + return new Result>().ok(topicService.topicCreatedUserBatch(topicIds)); + } + } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java index b432ecd7c9..869b90c772 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java @@ -397,4 +397,12 @@ public interface ResiTopicService extends BaseService { * @date 2021/5/12 9:16 上午 */ String topicCreatedUser(String topicId); + + /** + * @Description 查询话题的创建者【批量】 + * @Param topicId + * @author zxc + * @date 2021/5/12 9:16 上午 + */ + List topicCreatedUserBatch(List topicIds); } diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java index d3826404f2..cd8f8391ed 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java +++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java @@ -2761,6 +2761,28 @@ public class ResiTopicServiceImpl extends BaseServiceImpl topicCreatedUserBatch(List topicIds) { + if (CollectionUtils.isEmpty(topicIds)){ + return new ArrayList<>(); + } + List resiTopicEntities = baseDao.selectBatchIds(topicIds); + List result = new ArrayList<>(); + resiTopicEntities.forEach(r -> { + TopicCreatedUserBatchResultDTO t = new TopicCreatedUserBatchResultDTO(); + t.setIssueId(r.getIssueId()); + t.setUserId(r.getCreatedBy()); + result.add(t); + }); + return result; + } + }