| 
					
				 | 
			
			
				@@ -261,6 +261,33 @@ public class LandService extends BaseService<Land,Long> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return townStatSoilList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<StatEstimate> getEstimate(String districtCode, String city, String cropType){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Object[]> res = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Integer,String> namesMap = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(StringUtils.isNotBlank(districtCode)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            namesMap = townService.getNames(districtCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            res = landRepository.statTownEstimate(districtCode, cropType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return getEstimate(res, namesMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(StringUtils.isNotBlank(city)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            namesMap = districtService.getNames(city); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            res = landRepository.statDistrictEstimate(city.substring(0,4) + "%", cropType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return getEstimate(res, namesMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        throw new RuntimeException("district 和 city 至少需要一个"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<StatEstimate> getEstimate(List<Object[]> res, Map<Integer,String> namesMap){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<StatEstimate> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(Object[] objects : res){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StatEstimate statEstimate = new StatEstimate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            statEstimate.setTownId(Integer.valueOf(objects[0].toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            statEstimate.setTownName(namesMap.get(statEstimate.getTownId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            statEstimate.setValue(Double.valueOf(objects[1].toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            list.add(statEstimate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |