From 41b65f9d34ab3147d4960151c3181ecfeadb8345 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Wed, 20 Jul 2022 16:15:10 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=94=BF=E7=AD=96=E3=80=91=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E9=A2=84=E8=A7=88=E5=88=97=E8=A1=A8=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?=E5=BA=94=E8=AF=A5=E5=B7=AE=E4=B8=8D=E5=A4=9A=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/epmetuser/IcResiUserDao.java | 17 ++++++++ .../service/epmetuser/EpmetUserService.java | 4 ++ .../epmetuser/impl/EpmetUserServiceImpl.java | 5 +++ .../service/impl/ResiServiceImpl.java | 33 +++++++++------- .../mapper/epmetuser/IcResiUserDao.xml | 39 ++++++++++++------- 5 files changed, 72 insertions(+), 26 deletions(-) diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java index dfbf64daaa..5dd78f714c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/epmetuser/IcResiUserDao.java @@ -79,4 +79,21 @@ public interface IcResiUserDao extends BaseDao { @Param("name") String name, @Param("resiRules") List resiRule, @Param("houseIds") List houseIds); + + /** + * 政策查找居民 + * @param houseIds + * @return + */ + Integer getTotalByPolicyRules(@Param("customerId") String customerId, + @Param("orgId") String orgId, + @Param("orgType") String orgType, + @Param("neighborHoodId") String neighborHoodId, + @Param("buildingId") String buildingId, + @Param("unitId") String unitId, + @Param("houseId") String houseId, + @Param("idCard") String idCard, + @Param("name") String name, + @Param("resiRules") List resiRule, + @Param("houseIds") List houseIds); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java index 5a095d6e2f..ca91cd86e7 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/EpmetUserService.java @@ -204,4 +204,8 @@ public interface EpmetUserService { List listByPolicyRules(String customerId, String orgId, String orgType, String neighborHoodId, String buildingId, String unitId, String houseId, String idCard, String name, Integer pageNo, Integer pageSize, List resiRule, List houseIds); + + Integer getTotalByPolicyRules(String customerId, String orgId, String orgType, String neighborHoodId, String buildingId, String unitId, + String houseId, String idCard, String name, + List resiRule, List houseIds); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java index 2166db1e3d..267af969ea 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java @@ -851,4 +851,9 @@ public class EpmetUserServiceImpl implements EpmetUserService { return icResiUserDao.listByPolicyRules(customerId, orgId, orgType, neighborHoodId, buildingId, unitId, houseId, idCard, name, resiRule, houseIds); } + + @Override + public Integer getTotalByPolicyRules(String customerId, String orgId, String orgType, String neighborHoodId, String buildingId, String unitId, String houseId, String idCard, String name, List resiRule, List houseIds) { + return icResiUserDao.getTotalByPolicyRules(customerId, orgId, orgType, neighborHoodId, buildingId, unitId, houseId, idCard, name, resiRule, houseIds); + } } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java index 178f70ead8..09097b559c 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/impl/ResiServiceImpl.java @@ -48,7 +48,8 @@ public class ResiServiceImpl implements ResiService { } // 2.用户至少配置了house和stat规则的一个,那么就先查询房屋出来,然后根据房屋去找居民 - int housePageNo = 0; + int housePageNo = 1; + int total = 0; do { // 拿到房屋id列表,去查询居民列表 List houseEntities = govOrgService.listHousesByRules(customerId, orgId, orgType, neighborHoodId, buildingId, unitId, @@ -60,19 +61,22 @@ public class ResiServiceImpl implements ResiService { break; } - // 查询居民 - List resis = epmetUserService.listByPolicyRules( - customerId, orgId, orgType, neighborHoodId, buildingId, unitId, - houseId, idCard, name, pageNo, pageSize, resiRule, houseIds); - - resultResis.addAll(resis); + // 查询居民,满了20个,不再查询数据,只查询数量 + if (resultResis.size() < pageSize) { + List resis = epmetUserService.listByPolicyRules( + customerId, orgId, orgType, neighborHoodId, buildingId, unitId, + houseId, idCard, name, pageNo, pageSize, resiRule, houseIds); - // 满了20个,或者查不到居民和房屋了(数据空了),则跳出 - // 没有用house的条件,没有循环的必要,查一次居民信息即可,跳出 - if (resultResis.size() >= pageSize) { - break; + resultResis.addAll(resis); } + // 查询数量 + Integer count = epmetUserService.getTotalByPolicyRules( + customerId, orgId, orgType, neighborHoodId, buildingId, unitId, + houseId, idCard, name, resiRule, houseIds); + + total += count; + housePageNo ++; } while (true); @@ -83,8 +87,7 @@ public class ResiServiceImpl implements ResiService { // 补充额外信息 fillResisExtraInfoForPolicy(resultResis); - // todo - return new PageData<>(resultResis, 100); + return new PageData<>(resultResis, total); } /** @@ -92,6 +95,10 @@ public class ResiServiceImpl implements ResiService { * @param resultResis */ private void fillResisExtraInfoForPolicy(List resultResis) { + if (CollectionUtils.isEmpty(resultResis)) { + return; + } + List gridIds = new ArrayList<>(); List neighborhoodIds = new ArrayList<>(); resultResis.stream().forEach((r) -> { diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml index f5939ad993..f0c98c7732 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/epmetuser/IcResiUserDao.xml @@ -69,19 +69,7 @@ and resi.STATUS='0' - - + select `ID` as icResiUserId, + `GRID_ID`, + `NAME`, + `MOBILE`, + `ID_CARD`, + `VILLAGE_ID` as neighborhoodId, + `BIRTHDAY` + from ic_resi_user + + inner join #{rule.colTable} + + + + +