Browse Source

查询优化 分页

dev_shibei_match
jianjun 4 years ago
parent
commit
aaa6d179e4
  1. 21
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/ProjectExtractServiceImpl.java

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

@ -38,6 +38,7 @@ import com.epmet.util.DimIdGenerator;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -134,21 +135,17 @@ public class ProjectExtractServiceImpl implements ProjectExtractService {
//提取议题ID //提取议题ID
List<String> issueIds = List<String> issueIds =
projectList.stream().filter(item -> ProjectConstant.ISSUE.equals(item.getOrigin())).map(ProjectDTO::getOriginId).collect(Collectors.toList()); projectList.stream().filter(item -> ProjectConstant.ISSUE.equals(item.getOrigin())).map(ProjectDTO::getOriginId).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(issueIds)) { if (CollectionUtils.isNotEmpty(issueIds)) {
//批次数量 //分批次获取
int batchCount = 200;
//获取议题信息 //获取议题信息
List<List<String>> partition = ListUtils.partition(issueIds, NumConstant.FIFTY);
for (int i = 0; i < issueIds.size(); i += batchCount) { partition.forEach(part -> issueList.addAll(issueService.getIssueInfoByIds(part)));
int lastIndex = Math.min(i + batchCount, issueIds.size());
issueList.addAll(issueService.getIssueInfoByIds(issueIds.subList(i, lastIndex)));
}
//提取话题ID //提取话题ID
List<String> topicIds = issueList.stream().map(IssueDTO::getSourceId).collect(Collectors.toList()); List<String> topicIds = issueList.stream().map(IssueDTO::getSourceId).collect(Collectors.toList());
//获取话题信息 if (CollectionUtils.isNotEmpty(topicIds)) {
for (int i = 0; i < topicIds.size(); i += batchCount) { //获取话题信息
int lastIndex = Math.min(i + batchCount, topicIds.size()); List<List<String>> topicPart = ListUtils.partition(topicIds, NumConstant.FIFTY);
topicList.addAll(topicService.getTopicByIds(topicIds.subList(i, lastIndex))); topicPart.forEach(part -> topicList.addAll(topicService.getTopicByIds(part)));
} }
} }
//获取网格认证党员 //获取网格认证党员

Loading…
Cancel
Save