From e169fc1c33222798f3efee5ddca0be1a9c855c09 Mon Sep 17 00:00:00 2001 From: jianjun Date: Wed, 18 May 2022 10:33:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97=E6=8E=92?= =?UTF-8?q?=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/epmet/controller/HouseController.java | 6 ++++++ .../java/com/epmet/service/impl/HouseServiceImpl.java | 9 +++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java index 60c9bff074..312a9a2c84 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java @@ -335,6 +335,7 @@ public class HouseController implements ResultDataResolver { @NoRepeatSubmit @RequestMapping(value = "/exportHouseUser") public void exportHouseUser(@LoginUser TokenDto tokenDto, @RequestBody IcHouseListFormDTO formDTO, HttpServletResponse response) throws Exception { + long startTime = System.currentTimeMillis(); formDTO.setIsPage(false); formDTO.setPageSize(NumConstant.TEN_THOUSAND); //效验数据 @@ -371,15 +372,19 @@ public class HouseController implements ResultDataResolver { .build(); PageData dataList = null; Cache haveSearchCache = CacheBuilder.newBuilder().maximumSize(NumConstant.ONE_HUNDRED).expireAfterWrite(NumConstant.THIRTY, TimeUnit.MINUTES).build(); + do { dataList = houseService.getHouseUser(tokenDto,formDTO,haveSearchCache); formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + long start = System.currentTimeMillis(); excelWriter.write(dataList.getList(), writeSheet); + log.info("getHouseUser doWrite cost:{}ms",System.currentTimeMillis() - start); if (CollectionUtils.isEmpty(dataList.getList())){ break; } }while (dataList.getTotal() == formDTO.getPageSize()); + //获取导出配置 haveSearchCache.invalidateAll(); } catch (EpmetException e) { @@ -394,6 +399,7 @@ public class HouseController implements ResultDataResolver { if (excelWriter != null){ excelWriter.finish(); } + log.info("getHouseUser final cost:{}ms",System.currentTimeMillis() - startTime); } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index eda0551555..1e6676733e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -615,8 +615,9 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { if (StringUtils.isNotEmpty(formDTO.getOwnerName()) || StringUtils.isNotEmpty(formDTO.getOwnerPhone()) || StringUtils.isNotEmpty(formDTO.getRentFlag())){ searchLevel = 3; } - + long start = System.currentTimeMillis(); PageData houseData = this.getHouseList(formDTO); + log.info("getHouseUser getHoseList cost:{}ms",System.currentTimeMillis() - start); List resultList = new ArrayList<>(); PageData result = new PageData<>(resultList,houseData.getList().size()); @@ -634,6 +635,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { if (finalSearchLevel == 3){ resiParam.setHouseId(o.getHouseId()); } + this.getHouseMembers(resiParam, memberCacheMap,haveSearchCache); List members = memberCacheMap.getIfPresent(o.getHouseId()); @@ -676,11 +678,13 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { * @param haveSearchCache */ public void getHouseMembers(RentTenantDataFormDTO resiParam, Cache> memberMap, Cache haveSearchCache) { - String searchKey = resiParam.getHouseId()+resiParam.getBuildingId()+resiParam.getNeighborHoodId()+resiParam.getAgencyId(); + String searchKey = resiParam.getHouseId()+resiParam.getBuildingId()+resiParam.getNeighborHoodId()+resiParam.getGridId()+resiParam.getAgencyId(); Boolean haveSearch = haveSearchCache.getIfPresent(searchKey); + //log.info("getHouseUser getHouseMembers searchKey:"+searchKey); if (haveSearch!= null && haveSearch){ return; } + long startT = System.currentTimeMillis(); haveSearchCache.put(searchKey,true); List memberListTemp = null; resiParam.setPageNo(NumConstant.ONE); @@ -699,6 +703,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { memberListTemp.parallelStream().forEach(h -> memberMap.put(h.getHomeId(), h.getHouseMemberList())); } while (memberListTemp.size() == resiParam.getPageSize()); + log.info("getHouseUser getHouseMembers cost:{}ms,param:{}",System.currentTimeMillis() - startT,JSON.toJSONString(resiParam)); } /**