|  | @@ -13,6 +13,7 @@ import com.xiesx.fastboot.base.pagination.PaginationHelper;
 | 
	
		
			
				|  |  |  import com.xiesx.fastboot.base.pagination.PaginationResult;
 | 
	
		
			
				|  |  |  import com.xiesx.fastboot.base.pagination.PaginationVo;
 | 
	
		
			
				|  |  |  import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
 | 
	
		
			
				|  |  | +import org.apache.commons.lang3.ArrayUtils;
 | 
	
		
			
				|  |  |  import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.data.domain.Page;
 | 
	
	
		
			
				|  | @@ -175,38 +176,44 @@ public class LandService extends BaseService<Land,Long> {
 | 
	
		
			
				|  |  |          return townStatList;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    public PaginationResult list(String district, Integer townId, PaginationVo page, String cropType){
 | 
	
		
			
				|  |  | +    public PaginationResult list(Double[] sure,String district, Integer townId, PaginationVo page, String cropType){
 | 
	
		
			
				|  |  |          String wkt = null;
 | 
	
		
			
				|  |  |          if(townId != null) {
 | 
	
		
			
				|  |  |               wkt = townService.findWktById(townId);
 | 
	
		
			
				|  |  |          }else if(StringUtils.isNotBlank(district)) {
 | 
	
		
			
				|  |  |               wkt = districtRepository.findWktByCode(district);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        if(wkt == null) {
 | 
	
		
			
				|  |  | -            Predicate predicate = null;
 | 
	
		
			
				|  |  | -            Pageable pageable = PageRequest.of(page.getPage(), page.getLimit(), Sort.by(Land.FIELDS.id));
 | 
	
		
			
				|  |  | -            QLand qLand = QLand.land;
 | 
	
		
			
				|  |  | -            Page<Land> pageData = null;
 | 
	
		
			
				|  |  | -            if(StringUtils.isNotBlank(cropType)){
 | 
	
		
			
				|  |  | -                pageData = landRepository.findAll(qLand.crop_type.eq(cropType), pageable);
 | 
	
		
			
				|  |  | -            }else{
 | 
	
		
			
				|  |  | -                pageData = landRepository.findAll(pageable);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            return PaginationHelper.create(pageData.getContent(), pageData.getTotalPages(), pageData.getPageable().getPageNumber());
 | 
	
		
			
				|  |  | -        }else{
 | 
	
		
			
				|  |  | -            List<Land> data = null;
 | 
	
		
			
				|  |  | -            int count;
 | 
	
		
			
				|  |  | -            int start = page.getLimit() * page.getPage();
 | 
	
		
			
				|  |  | -            if(StringUtils.isNotBlank(cropType)){
 | 
	
		
			
				|  |  | -                data = landRepository.findListByWktAndCropType(wkt, cropType, page.getLimit(), start);
 | 
	
		
			
				|  |  | -                count = landRepository.findCountByWktAndCropType(wkt, cropType);
 | 
	
		
			
				|  |  | -            }else{
 | 
	
		
			
				|  |  | -                data = landRepository.findListByWkt(wkt, page.getLimit(), start);
 | 
	
		
			
				|  |  | -                count = landRepository.findCountByWkt(wkt);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            return PaginationHelper.create(data, count, page.page);
 | 
	
		
			
				|  |  | +        List<Land> data = null;
 | 
	
		
			
				|  |  | +        int count;
 | 
	
		
			
				|  |  | +        int start = page.getLimit() * page.getPage();
 | 
	
		
			
				|  |  | +        StringBuffer countSql = new StringBuffer(100);
 | 
	
		
			
				|  |  | +        StringBuffer sql = new StringBuffer(100);
 | 
	
		
			
				|  |  | +        countSql.append("select count(1) from  leizhou_land where 1=1");
 | 
	
		
			
				|  |  | +        sql.append("select * from  leizhou_land where 1=1");
 | 
	
		
			
				|  |  | +        if(wkt != null){
 | 
	
		
			
				|  |  | +            countSql.append(" and St_within(geom,st_geomfromtext('");
 | 
	
		
			
				|  |  | +            countSql.append(wkt).append("',4326))");
 | 
	
		
			
				|  |  | +            sql.append(" and St_within(geom,st_geomfromtext('");
 | 
	
		
			
				|  |  | +            sql.append(wkt).append("',4326))");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        if(StringUtils.isNotBlank(cropType)) {
 | 
	
		
			
				|  |  | +            countSql.append(" and crop_type = '").append(cropType).append("'");
 | 
	
		
			
				|  |  | +            sql.append(" and crop_type = '").append(cropType).append("'");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if(ArrayUtils.isNotEmpty(sure)){
 | 
	
		
			
				|  |  | +            countSql.append(" and crop_sure >= ").append(sure[0]);
 | 
	
		
			
				|  |  | +            countSql.append(" and crop_sure <= ").append(sure[1]);
 | 
	
		
			
				|  |  | +            sql.append(" and crop_sure >= ").append(sure[0]);
 | 
	
		
			
				|  |  | +            sql.append(" and crop_sure <= ").append(sure[1]);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        sql.append(" limit ").append(page.getLimit()).append(" OFFSET ").append(start);
 | 
	
		
			
				|  |  | +        count = Integer.valueOf(mEntityManager.createNativeQuery(countSql.toString()).getSingleResult().toString());
 | 
	
		
			
				|  |  | +        data = mEntityManager.createNativeQuery(sql.toString(), Land.class).getResultList();
 | 
	
		
			
				|  |  | +        return PaginationHelper.create(data, count, page.page);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public Land findByPoint(Double[] point){
 |