From 59d503b609f32ccd5fd909d38bcbac735b248ff9 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Fri, 29 Jul 2022 10:55:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=94=E5=A4=A7=E5=9B=BE=E5=B1=82=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=20todo=E8=B5=84=E6=BA=90=E5=88=97=E8=A1=A8=E5=88=86?= =?UTF-8?q?=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CoverageServiceImpl.java | 49 ++++++++++++------- 1 file changed, 32 insertions(+), 17 deletions(-) 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 99362d1498..68f1962f8c 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; @@ -53,6 +54,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; @@ -245,38 +248,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 { // 查询居民