| 
														
															@@ -4,6 +4,7 @@ import com.querydsl.core.types.Predicate; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.sysu.admin.controller.city.CityRepository; 
														 | 
														
														 | 
														
															 import com.sysu.admin.controller.city.CityRepository; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.sysu.admin.controller.city.DistrictRepository; 
														 | 
														
														 | 
														
															 import com.sysu.admin.controller.city.DistrictRepository; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.sysu.admin.controller.city.TownRepository; 
														 | 
														
														 | 
														
															 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.support.base.BaseService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.sysu.admin.utils.MySimpleDateFormat; 
														 | 
														
														 | 
														
															 import com.sysu.admin.utils.MySimpleDateFormat; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.sysu.admin.utils.TextUtil; 
														 | 
														
														 | 
														
															 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.data.domain.Sort; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.springframework.stereotype.Service; 
														 | 
														
														 | 
														
															 import org.springframework.stereotype.Service; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import java.util.ArrayList; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import java.util.Date; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import java.util.List; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import java.util.*; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 @Service("LandService2") 
														 | 
														
														 | 
														
															 @Service("LandService2") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 public class LandService extends BaseService<Land,Long> { 
														 | 
														
														 | 
														
															 public class LandService extends BaseService<Land,Long> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Autowired 
														 | 
														
														 | 
														
															     @Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     LandRepository landRepository; 
														 | 
														
														 | 
														
															     LandRepository landRepository; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Autowired 
														 | 
														
														 | 
														
															     @Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    TownRepository townRepository; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    TownService townService; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Autowired 
														 | 
														
														 | 
														
															     @Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     DistrictRepository districtRepository; 
														 | 
														
														 | 
														
															     DistrictRepository districtRepository; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Autowired 
														 | 
														
														 | 
														
															     @Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     CityRepository cityRepository; 
														 | 
														
														 | 
														
															     CityRepository cityRepository; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    public List<LandAreaStat> getLandAreaStat(String district, Integer townId, Date date){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public List<TownStat> getLandAreaStat(Date date, String districtCode){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         Double percent = getPercent(date); 
														 | 
														
														 | 
														
															         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(); 
														 | 
														
														 | 
														
															             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((area + area / 2) / 1000); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             bean.setArea(bean.getArea() * percent); 
														 | 
														
														 | 
														
															             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<CropAreaStat> list = new ArrayList<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<Object[]> res = null; 
														 | 
														
														 | 
														
															         List<Object[]> res = null; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if(townId != null) { 
														 | 
														
														 | 
														
															         if(townId != null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            String wkt = townRepository.findWktById(townId); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            String wkt = townService.findWktById(townId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             res = landRepository.statCropType(wkt); 
														 | 
														
														 | 
														
															             res = landRepository.statCropType(wkt); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }else if(StringUtils.isNotBlank(district)) { 
														 | 
														
														 | 
														
															         }else if(StringUtils.isNotBlank(district)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             String wkt = districtRepository.findWktByCode(district); 
														 | 
														
														 | 
														
															             String wkt = districtRepository.findWktByCode(district); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -99,7 +115,7 @@ public class LandService extends BaseService<Land,Long> { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         limit = limit == null ? 50 : limit; 
														 | 
														
														 | 
														
															         limit = limit == null ? 50 : limit; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         String wkt = null; 
														 | 
														
														 | 
														
															         String wkt = null; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if(townId != null) { 
														 | 
														
														 | 
														
															         if(townId != null) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-             wkt = townRepository.findWktById(townId); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+             wkt = townService.findWktById(townId); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }else if(StringUtils.isNotBlank(district)) { 
														 | 
														
														 | 
														
															         }else if(StringUtils.isNotBlank(district)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															              wkt = districtRepository.findWktByCode(district); 
														 | 
														
														 | 
														
															              wkt = districtRepository.findWktByCode(district); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 |