diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java index 8cefebe66a..230b70de37 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/CoverageServiceImpl.java @@ -7,6 +7,7 @@ import com.epmet.commons.tools.enums.CoverageEnums; import com.epmet.commons.tools.enums.CoveragePlaceTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerIcHouseRedis; import com.epmet.commons.tools.redis.common.CustomerOrgRedis; @@ -55,6 +56,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; @@ -247,38 +250,50 @@ public class CoverageServiceImpl implements CoverageService { if (CollectionUtils.isEmpty(tables)){ return result; } + // 更多,查询出直接返回 if (StringUtils.isNotBlank(formDTO.getSearchType())){ if (formDTO.getSearchType().equals(OrgConstant.SEARCH_TYPE_USER)){ PageInfo allIcUserPageInfo = getIcUserPageInfo(formDTO); result.setUserInfos(allIcUserPageInfo.getList()); result.setUserInfosTotal(allIcUserPageInfo.getTotal()); + return result; }else if (formDTO.getSearchType().equals(OrgConstant.SEARCH_TYPE_RESOURCE)){ - Integer total = NumConstant.ZERO; - Integer start = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize(); - Integer end = start + formDTO.getPageSize(); - Integer flag; + List reInfos = new ArrayList<>(); + List>> futures = new ArrayList<>(); for (String resource : resources) { if (MenusEnums.IC_SUPERIOR_RESOURCE.getUrl().equals(resource)){ - Integer superiorResourceInfosCount = govOrgService.getSuperiorResourceInfosCount(formDTO); - total = total + superiorResourceInfosCount; - if (superiorResourceInfosCount > start){ - - } + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getSuperiorResourceInfos(formDTO)); + futures.add(c); }else if (MenusEnums.IC_CITY_MANAGEMENT.getUrl().equals(resource)){ - Integer cityManageInfosCount = govOrgService.getCityManageInfosCount(formDTO); - total = total + cityManageInfosCount; - + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getCityManageInfos(formDTO)); + futures.add(c); }else if (MenusEnums.IC_COMMUNITY_SELF_ORGANIZATION.getUrl().equals(resource)){ - Integer communitySelOrgInfosCount = heartService.getCommunitySelOrgInfosCount(formDTO); - total = total + communitySelOrgInfosCount; + CompletableFuture> c = CompletableFuture.supplyAsync(() -> heartService.getCommunitySelOrgInfos(formDTO)); + futures.add(c); }else if (MenusEnums.IC_DANGEROUS_CHEMICALS.getUrl().equals(resource)){ - + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getDangerousChemicalsInfos(formDTO)); + futures.add(c); }else if (MenusEnums.IC_ENTERPRISE.getUrl().equals(resource)){ - + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getEnterpriseInfos(formDTO)); + futures.add(c); }else if (MenusEnums.IC_PUBLIC_SERVICE.getUrl().equals(resource)){ - + CompletableFuture> c = CompletableFuture.supplyAsync(() -> govOrgService.getPublicServiceInfos(formDTO)); + futures.add(c); + } + } + for (CompletableFuture> future : futures) { + try { + if (CollectionUtils.isNotEmpty(future.get())){ + reInfos.addAll(future.get()); + } + } catch (InterruptedException e) { + log.error("【五大图层首页】异步获取资源列表被中断:{}", ExceptionUtils.getErrorStackTrace(e)); + } catch (ExecutionException e) { + log.error("【五大图层首页】异步获取异步获取资源列表失败:{}", ExceptionUtils.getErrorStackTrace(e)); } } + result.setResourceInfos(reInfos); + return result; } }else { // 查询居民