| 
					
				 | 
			
			
				@@ -39,8 +39,8 @@ public class LandService extends BaseService<Land,Long> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<Integer,String> namesMap = townService.getNames(districtCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         TownStat sumStat = new TownStat(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sumStat.setTownName("汇总信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sumStat.setSumMap(new HashMap<>()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         townStatList.add(sumStat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        HashMap<String,LandAreaStat > sumMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for(Object[] o : res){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(currentTownId == null || !o[0].toString().equals(currentTownId.toString())){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -62,15 +62,21 @@ public class LandService extends BaseService<Land,Long> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             bean.setCount(Integer.valueOf(o[3].toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             townStat.getList().add(bean); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //汇总信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            LandAreaStat sum = sumStat.getSumMap().get(bean.getParcelType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LandAreaStat sum = sumMap.get(bean.getParcelType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(sum == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sum = new LandAreaStat(bean.getParcelType(), bean.getName(), bean.getColor()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sumStat.getSumMap().put(bean.getParcelType().toString(), sum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sumMap.put(bean.getParcelType().toString(), sum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sum.setArea(sum.getArea() + bean.getArea()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sum.setCount(sum.getCount() + bean.getCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //组装汇总List 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        LandAreaStat[] sumArrays = new LandAreaStat[sumMap.size()]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for(String key : sumMap.keySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sumArrays[Integer.valueOf(key)] = sumMap.get(key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sumStat.setList(Arrays.asList(sumArrays)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return townStatList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -84,31 +90,48 @@ public class LandService extends BaseService<Land,Long> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return percent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public List<CropAreaStat> getCropAreaStat(String district, Integer townId, Date date) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public List<TownStatCrop> getCropAreaStat(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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<CropAreaStat> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Object[]> res = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(townId != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String wkt = townService.findWktById(townId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            res = landRepository.statCropType(wkt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }else if(StringUtils.isNotBlank(district)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String wkt = districtRepository.findWktByCode(district); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            res = landRepository.statCropType(wkt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            res =landRepository.statCropTypeAll(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        res.stream().forEach(o -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Double area = (Double)o[1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            CropAreaStat bean = new CropAreaStat(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            bean.setName(CropAreaStat.castName(o[0].toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            bean.setColor(CropAreaStat.castColor(o[0].toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            LandAreaStat bean = new LandAreaStat(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            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().toString(), sum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            sum.setArea(sum.getArea() + bean.getArea()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            sum.setCount(sum.getCount() + bean.getCount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<Land> list(String district, Integer townId, Integer limit, String cropType){ 
			 |