|
@@ -4,6 +4,7 @@ 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.DistrictService;
|
|
import com.sysu.admin.controller.city.DistrictService;
|
|
import com.sysu.admin.controller.city.TownService;
|
|
import com.sysu.admin.controller.city.TownService;
|
|
|
|
+import com.sysu.admin.site.CommonVo;
|
|
import com.sysu.admin.support.base.BaseService;
|
|
import com.sysu.admin.support.base.BaseService;
|
|
import com.sysu.admin.support.cfg.CacheCfg;
|
|
import com.sysu.admin.support.cfg.CacheCfg;
|
|
import com.sysu.admin.utils.MySimpleDateFormat;
|
|
import com.sysu.admin.utils.MySimpleDateFormat;
|
|
@@ -296,12 +297,12 @@ public class LandService extends BaseService<Land,Long> {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- public PaginationResult list(Double[] sure,String district, Integer townId, PaginationVo page, String cropType, Integer parcelType){
|
|
|
|
|
|
+ public PaginationResult list(CommonVo commonVo,PaginationVo page){
|
|
String wkt = null;
|
|
String wkt = null;
|
|
- if(townId != null) {
|
|
|
|
- wkt = townService.findWktById(townId);
|
|
|
|
- }else if(StringUtils.isNotBlank(district)) {
|
|
|
|
- wkt = districtRepository.findWktByCode(district);
|
|
|
|
|
|
+ if(commonVo.getTown() != null) {
|
|
|
|
+ wkt = townService.findWktById(commonVo.getTown());
|
|
|
|
+ }else if(StringUtils.isNotBlank(commonVo.getDistrict())) {
|
|
|
|
+ wkt = districtRepository.findWktByCode(commonVo.getDistrict());
|
|
}
|
|
}
|
|
List<Land> data = null;
|
|
List<Land> data = null;
|
|
int count;
|
|
int count;
|
|
@@ -310,36 +311,49 @@ public class LandService extends BaseService<Land,Long> {
|
|
StringBuffer sql = new StringBuffer(100);
|
|
StringBuffer sql = new StringBuffer(100);
|
|
countSql.append("select count(1) from leizhou_land where 1=1");
|
|
countSql.append("select count(1) from leizhou_land where 1=1");
|
|
sql.append("select * from leizhou_land where 1=1");
|
|
sql.append("select * from leizhou_land where 1=1");
|
|
|
|
+
|
|
|
|
+ StringBuffer append = appendWhere(commonVo, wkt);
|
|
|
|
+ sql.append(append);
|
|
|
|
+ countSql.append(append);
|
|
|
|
+
|
|
|
|
+ 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 StringBuffer appendWhere(CommonVo commonVo, String wkt){
|
|
|
|
+ StringBuffer sql = new StringBuffer(100);
|
|
if(wkt != null){
|
|
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(" and St_within(geom,st_geomfromtext('");
|
|
sql.append(wkt).append("',4326))");
|
|
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(StringUtils.isNotBlank(commonVo.getCrop_type())) {
|
|
|
|
+ sql.append(" and crop_type = '").append(commonVo.getCrop_type()).append("'");
|
|
}
|
|
}
|
|
-
|
|
|
|
- if(parcelType != null) {
|
|
|
|
- countSql.append(" and parcel_type = ").append(parcelType);
|
|
|
|
- sql.append(" and parcel_type = ").append(parcelType);
|
|
|
|
|
|
+ if(commonVo.getParcel_type()!= null) {
|
|
|
|
+ sql.append(" and parcel_type = ").append(commonVo.getParcel_type());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ sql.append(intervalWhere("crop_sure", commonVo.getSure()));
|
|
|
|
+ sql.append(intervalWhere("dan_chan", commonVo.getDanchan()));
|
|
|
|
+ sql.append(intervalWhere("ph", commonVo.getPh()));
|
|
|
|
+ sql.append(intervalWhere("c", commonVo.getC()));
|
|
|
|
+ sql.append(intervalWhere("_2n", commonVo.get_2n()));
|
|
|
|
+ sql.append(intervalWhere("p", commonVo.getP()));
|
|
|
|
+ sql.append(intervalWhere("k", commonVo.getK()));
|
|
|
|
|
|
- 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);
|
|
|
|
|
|
+ return sql;
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ private StringBuffer intervalWhere(String col, Double[] values){
|
|
|
|
+ StringBuffer res = new StringBuffer(40);
|
|
|
|
+ if(ArrayUtils.isNotEmpty(values)){
|
|
|
|
+ res.append(" and "+col+" >= ").append(values[0]);
|
|
|
|
+ if(values.length > 1)
|
|
|
|
+ res.append(" and "+col+" <= ").append(values[1]);
|
|
|
|
+ }
|
|
|
|
+ return res;
|
|
}
|
|
}
|
|
|
|
|
|
public Land findByPoint(Double[] point){
|
|
public Land findByPoint(Double[] point){
|
|
@@ -351,3 +365,21 @@ public class LandService extends BaseService<Land,Long> {
|
|
return landRepository;
|
|
return landRepository;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|