| 
					
				 | 
			
			
				@@ -4,6 +4,7 @@ import com.querydsl.core.types.Predicate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.controller.city.CityRepository; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.controller.city.DistrictRepository; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.controller.city.TownRepository; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.sysu.admin.controller.city.TownService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.support.base.BaseService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.utils.MySimpleDateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sysu.admin.utils.TextUtil; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -15,47 +16,62 @@ import org.springframework.data.domain.Pageable; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.data.domain.Sort; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Service("LandService2") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class LandService extends BaseService<Land,Long> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     LandRepository landRepository; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    TownRepository townRepository; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TownService townService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     DistrictRepository districtRepository; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     CityRepository cityRepository; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public List<LandAreaStat> getLandAreaStat(String district, Integer townId, Date date){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<TownStat> getLandAreaStat(Date date, String districtCode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Double percent = getPercent(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Object[]> res = landRepository.statParcelTypeAll(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<TownStat> townStatList = new ArrayList<>(30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Integer currentTownId = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        TownStat townStat = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Integer,String> namesMap = townService.getNames(districtCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        TownStat sumStat = new TownStat(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sumStat.setTownName("汇总信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sumStat.setSumMap(new HashMap<>()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        townStatList.add(sumStat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(Object[] o : res){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(currentTownId == null || !o[0].toString().equals(currentTownId.toString())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                townStat = new TownStat(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                townStat.setList(new ArrayList<>()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                currentTownId = Integer.valueOf(o[0].toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                townStat.setTownId(currentTownId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                townStat.setTownName(namesMap.get(currentTownId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                townStatList.add(townStat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<LandAreaStat> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Object[]> res = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(townId != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String wkt = townRepository.findWktById(townId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            res = landRepository.statParcelType(wkt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }else if(StringUtils.isNotBlank(district)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String wkt = districtRepository.findWktByCode(district); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            res = landRepository.statParcelType(wkt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            res = landRepository.statParcelTypeAll(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        res.stream().forEach(o -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Double area = (Double)o[1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             LandAreaStat bean = new LandAreaStat(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            bean.setId(Integer.valueOf(o[0].toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            bean.setColor(LandAreaStat.castColor(bean.getId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            bean.setName(LandAreaStat.castName(bean.getId())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            bean.setParcelType(Integer.valueOf(o[1].toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            bean.setColor(LandAreaStat.castColor(bean.getParcelType())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            bean.setName(LandAreaStat.castName(bean.getParcelType())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Double area = (Double)o[2]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             bean.setArea((area + area / 2) / 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             bean.setArea(bean.getArea() * percent); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            bean.setCount(Integer.valueOf(o[2].toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            list.add(bean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            bean.setCount(Integer.valueOf(o[3].toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            townStat.getList().add(bean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //汇总信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LandAreaStat sum = sumStat.getSumMap().get(bean.getParcelType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(sum == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sum = new LandAreaStat(bean.getParcelType(), bean.getName(), bean.getColor()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sumStat.getSumMap().put(bean.getParcelType(), sum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sum.setArea(sum.getArea() + bean.getArea()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sum.setCount(sum.getCount() + bean.getCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return townStatList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -74,7 +90,7 @@ public class LandService extends BaseService<Land,Long> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<CropAreaStat> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<Object[]> res = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(townId != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String wkt = townRepository.findWktById(townId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String wkt = townService.findWktById(townId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             res = landRepository.statCropType(wkt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }else if(StringUtils.isNotBlank(district)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String wkt = districtRepository.findWktByCode(district); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -99,7 +115,7 @@ public class LandService extends BaseService<Land,Long> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         limit = limit == null ? 50 : limit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String wkt = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if(townId != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             wkt = townRepository.findWktById(townId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             wkt = townService.findWktById(townId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }else if(StringUtils.isNotBlank(district)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              wkt = districtRepository.findWktByCode(district); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |