| 
						
						
							
								
							
						
						
					 | 
					@ -94,6 +94,11 @@ public class ResiServiceImpl implements ResiService, ResultDataResolver { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        // 2.用户至少配置了house和stat规则的一个,那么就先查询房屋出来,然后根据房屋去找居民
 | 
					 | 
					 | 
					        // 2.用户至少配置了house和stat规则的一个,那么就先查询房屋出来,然后根据房屋去找居民
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        int housePageNo = 1; | 
					 | 
					 | 
					        int housePageNo = 1; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        int total = 0; | 
					 | 
					 | 
					        int total = 0; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        // 只能手动分页了
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        int start = (pageNo - 1) * pageSize; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        int end = pageNo * pageSize; // 不包含
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        do { | 
					 | 
					 | 
					        do { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            // 拿到房屋id列表,去查询居民列表
 | 
					 | 
					 | 
					            // 拿到房屋id列表,去查询居民列表
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            List<String> houseIds = govOrgService.listHouseIdsByRules(customerId, orgIdPath, orgId, orgType, neighborHoodId, buildingId, unitId, | 
					 | 
					 | 
					            List<String> houseIds = govOrgService.listHouseIdsByRules(customerId, orgIdPath, orgId, orgType, neighborHoodId, buildingId, unitId, | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -104,30 +109,32 @@ public class ResiServiceImpl implements ResiService, ResultDataResolver { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                break; | 
					 | 
					 | 
					                break; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            // 查询居民数量
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            Integer count = epmetUserService.getTotalByPolicyRules( | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    customerId, orgIdPath, orgId, orgType, neighborHoodId, buildingId, unitId, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                    houseId, idCard, name, resiRule, houseIds); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            total += count; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            // 查询居民,满了20个,不再查询数据,只查询数量
 | 
					 | 
					 | 
					            // 查询居民,满了20个,不再查询数据,只查询数量
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            if (resultResis.size() < pageSize) { | 
					 | 
					 | 
					            if (resultResis.size() < end) { | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                List<ResiByPolicyInfoResultDTO> resis = epmetUserService.listByPolicyRules( | 
					 | 
					 | 
					                List<ResiByPolicyInfoResultDTO> resis = epmetUserService.listByPolicyRules( | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                        customerId, orgIdPath, orgId, orgType, neighborHoodId, buildingId, unitId, | 
					 | 
					 | 
					                        customerId, orgIdPath, orgId, orgType, neighborHoodId, buildingId, unitId, | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                        houseId, idCard, name, pageNo, pageSize, resiRule, houseIds); | 
					 | 
					 | 
					                        houseId, idCard, name, 1, end, resiRule, houseIds); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                resultResis.addAll(resis); | 
					 | 
					 | 
					                resultResis.addAll(resis); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            // 查询数量
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            Integer count = epmetUserService.getTotalByPolicyRules( | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    customerId, orgIdPath, orgId, orgType, neighborHoodId, buildingId, unitId, | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    houseId, idCard, name, resiRule, houseIds); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            total += count; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            housePageNo ++; | 
					 | 
					 | 
					            housePageNo ++; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } while (true); | 
					 | 
					 | 
					        } while (true); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        // 够了20个,那就截取前20个,否则直接返回
 | 
					 | 
					 | 
					        // 查出来所有的数据都没够到这一页的起始条数,返回空
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        if (resultResis.size() > 20) { | 
					 | 
					 | 
					        if (resultResis.size() < start) { | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					            resultResis = resultResis.subList(0, 20); | 
					 | 
					 | 
					            return new PageData<>(new ArrayList<>(), total); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        resultResis = resultResis.subList(start, Math.min(end, resultResis.size())); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        // 补充额外信息
 | 
					 | 
					 | 
					        // 补充额外信息
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        fillResisExtraInfoForPolicy(resultResis); | 
					 | 
					 | 
					        fillResisExtraInfoForPolicy(resultResis); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return new PageData<>(resultResis, total); | 
					 | 
					 | 
					        return new PageData<>(resultResis, total); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |