Administrator 2 سال پیش
والد
کامیت
e3ac45d484

+ 10 - 1
src/main/java/com/sysu/admin/controller/aland/LandService.java

@@ -1,5 +1,6 @@
 package com.sysu.admin.controller.aland;
 
+import com.mchange.v2.sql.SqlUtils;
 import com.sysu.admin.controller.city.CityRepository;
 import com.sysu.admin.controller.city.DistrictRepository;
 import com.sysu.admin.controller.city.DistrictService;
@@ -7,13 +8,16 @@ 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.cfg.CacheCfg;
+import com.sysu.admin.utils.GenericsUtil;
 import com.sysu.admin.utils.MySimpleDateFormat;
+import com.sysu.admin.utils.SqlUtil;
 import com.sysu.admin.utils.TextUtil;
 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.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.Cacheable;
@@ -323,6 +327,7 @@ public class LandService extends BaseService<Land,Long> {
     }
 
     public StringBuffer appendWhere(CommonVo commonVo, String wkt){
+
         StringBuffer sql = new StringBuffer(100);
         if(wkt != null){
             sql.append(" and St_within(geom,st_geomfromtext('");
@@ -331,12 +336,15 @@ public class LandService extends BaseService<Land,Long> {
         if(StringUtils.isNotBlank(commonVo.getCrop_type())) {
             sql.append(" and crop_type = '").append(commonVo.getCrop_type()).append("'");
         }
-        if(commonVo.getParcel_type()!= null) {
+        if(commonVo.getParcel_type() != null) {
             sql.append(" and parcel_type = ").append(commonVo.getParcel_type());
         }
+        sql.append(SqlUtil.ArrayToInSql(" and ", "parcel_type", commonVo.getParcel_types()));
+        sql.append(SqlUtil.ArrayToInSql(" and ", "crop_type", commonVo.getCrop_types()));
 
         sql.append(intervalWhere("crop_sure", commonVo.getSure()));
         sql.append(intervalWhere("dan_chan", commonVo.getDanchan()));
+        sql.append(intervalWhere("toc", commonVo.getPh()));
         sql.append(intervalWhere("ph", commonVo.getPh()));
         sql.append(intervalWhere("c", commonVo.getC()));
         sql.append(intervalWhere("_2n", commonVo.get_2n()));
@@ -356,6 +364,7 @@ public class LandService extends BaseService<Land,Long> {
         return res;
     }
 
+
     public Land findByPoint(Double[] point){
         return landRepository.findByPoint("Point("+point[0]+" "+point[1]+")");
     }

+ 6 - 0
src/main/java/com/sysu/admin/site/CommonVo.java

@@ -23,12 +23,18 @@ public class CommonVo {
     private Integer month;
     private String crop_type;
     private Integer parcel_type;
+    private String[] crop_types;
+    private Integer[] parcel_types;
     private Double[] point;
     public Integer page = 1;
     public Integer limit = 25;
     public Double[] sure;
     public Double[] danchan;
     /**
+     * 有机质
+     */
+    private Double[] toc;
+    /**
      * 酸碱度
      */
     private Double[] ph;

+ 39 - 0
src/main/java/com/sysu/admin/utils/SqlUtil.java

@@ -0,0 +1,39 @@
+package com.sysu.admin.utils;
+
+public class SqlUtil {
+
+    public static String ArrayToInSql(String before, String col, String[] ids){
+        StringBuilder sb = new StringBuilder();
+        if(ids != null && ids.length > 0){
+            sb.append(before).append(" ").append(col);
+            sb.append(" IN (");
+            for(int i = 0; i < ids.length; i++){
+                sb.append("'");
+                sb.append(ids[i]);
+                sb.append("'");
+                if(i != ids.length - 1){ //不是最后一个元素,加上逗号
+                    sb.append(",");
+                }
+            }
+            sb.append(")");
+        }
+        return sb.toString();
+    }
+
+    public static String ArrayToInSql(String before, String col, Number[] ids){
+        StringBuilder sb = new StringBuilder();
+        if(ids != null && ids.length > 0){
+            sb.append(before).append(" ").append(col);
+            sb.append(" IN (");
+            for(int i = 0; i < ids.length; i++){
+                sb.append(ids[i]);
+                if(i != ids.length - 1){ //不是最后一个元素,加上逗号
+                    sb.append(",");
+                }
+            }
+            sb.append(")");
+        }
+        return sb.toString();
+    }
+
+}