Administrator 2 anos atrás
pai
commit
7f2527c727

+ 17 - 0
src/main/java/com/sysu/admin/api/crop/ApiLandController.java

@@ -1,7 +1,12 @@
 package com.sysu.admin.api.crop;
 
+import com.alibaba.fastjson.JSON;
+import com.sysu.admin.controller.aland.CropAreaStat;
 import com.sysu.admin.controller.aland.Land;
 import com.sysu.admin.controller.aland.LandService;
+import com.sysu.admin.controller.crop.CropLand;
+import com.sysu.admin.controller.crop.images.CropImage;
+import com.sysu.admin.controller.crop.images.ImageType;
 import com.sysu.admin.site.CommonVo;
 import com.sysu.admin.support.base.BaseComponent;
 import com.sysu.admin.utils.shape.GeoCastUtil;
@@ -35,9 +40,21 @@ public class ApiLandController extends BaseComponent {
     public BaseResult list(@RequestBody CommonVo commonVo){
         List<Land> landList = landService.list(commonVo.getDistrict(),commonVo.getTown(), commonVo.getLimit(), commonVo.getCrop_type());
         landList.stream().forEach(land -> {
+            land.setCropTypeName(CropAreaStat.castName(land.getCrop_type()));
             land.setGeojson(GeoCastUtil.gjson.toString(land.getGeom()));
         });
         return R.succ(landList);
     }
 
+    @RequestMapping("/info")
+    public BaseResult info(@RequestBody CommonVo commonVo){
+        Land bean = null;
+        if(commonVo.getId() != null){
+            bean = landService.findOne(commonVo.getId());
+        }else if(commonVo.getPoint() != null){
+            bean = landService.findByPoint(commonVo.getPoint());
+        }
+        return R.succ(bean);
+    }
+
 }

+ 30 - 0
src/main/java/com/sysu/admin/controller/aland/Land.java

@@ -29,6 +29,10 @@ public class Land {
 字段信息:value——潜在产值(元)
 area_ha——地块面积(公顷)
 crop_type——作物类别
+cropTypeName -- 作物类别名称
+number --编号
+perimeter -- 周长
+elevation -- 高程
 id_card——身份证
 name——姓名
 aspect——坡向
@@ -58,6 +62,26 @@ Area——面积(平方米)
 
     @Column
     private Double area;
+
+    /**
+     * 编号
+     */
+    @Column
+    private Long number;
+
+
+    /**
+     * 周长
+     */
+    @Column
+    private Double perimeter;
+
+    /**
+     * 高程
+     */
+    @Column
+    private Double elevation;
+
     @Column
     private Double simpgnflag;
 
@@ -85,6 +109,12 @@ Area——面积(平方米)
      */
     @Column
     private String crop_type;
+
+    @Transient
+    private String cropTypeName;
+
+
+
     @Column
     private Double area_ha;
 

+ 3 - 0
src/main/java/com/sysu/admin/controller/aland/LandRepository.java

@@ -28,4 +28,7 @@ public interface LandRepository extends JpaPlusRepository<Land, Long> {
     @Query(value = "select new Land(geom) from Land")
     List<Land> findAllGeom();
 
+    @Query(value = "SELECT * FROM leizhou_land where St_within(st_geomfromtext(?1,4326), geom) limit 1", nativeQuery = true)
+    Land findByPoint(String wkt);
+
 }

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

@@ -1,6 +1,7 @@
 package com.sysu.admin.controller.aland;
 
 import com.querydsl.core.types.Predicate;
+import com.querydsl.core.types.dsl.BooleanExpression;
 import com.sysu.admin.controller.city.CityRepository;
 import com.sysu.admin.controller.city.DistrictRepository;
 import com.sysu.admin.controller.city.DistrictService;
@@ -48,7 +49,6 @@ public class LandService extends BaseService<Land,Long> {
         throw new RuntimeException("district 和 city 至少需要一个");
     }
 
-
     public List<TownStat> getLandAreaStat(List<Object[]> res ,Double percent, Map<Integer,String> namesMap){
         List<TownStat> townStatList = new ArrayList<>(30);
         TownStat sumStat = new TownStat();
@@ -97,7 +97,6 @@ public class LandService extends BaseService<Land,Long> {
         return townStatList;
     }
 
-
     public Double getPercent(Date date){
         if(date == null){
             return 1.0;
@@ -107,8 +106,6 @@ public class LandService extends BaseService<Land,Long> {
         return percent;
     }
 
-
-
     public List<TownStatCrop> getCropAreaStat(Date date, String districtCode, String city){
         Double percent = getPercent(date);
         List<Object[]> res = null;
@@ -174,8 +171,6 @@ public class LandService extends BaseService<Land,Long> {
         return townStatList;
     }
 
-
-
     public List<Land> list(String district, Integer townId, Integer limit, String cropType){
         limit = limit == null ? 50 : limit;
         String wkt = null;
@@ -188,10 +183,11 @@ public class LandService extends BaseService<Land,Long> {
             Predicate predicate = null;
             Pageable pageable = PageRequest.of(1, limit, Sort.by(Land.FIELDS.id));
             QLand qLand = QLand.land;
-            predicate = StringUtils.isNotBlank(cropType) ?
-                    qLand.crop_type.eq(cropType) :
-                    null;
-            return landRepository.findAll(predicate, pageable).toList();
+            if(StringUtils.isNotBlank(cropType)){
+                return landRepository.findAll(qLand.crop_type.eq(cropType), pageable).toList();
+            }else{
+                return landRepository.findAll(pageable).toList();
+            }
         }else{
             return StringUtils.isNotBlank(cropType) ?
                     landRepository.findListByWktAndCropType(wkt, cropType, limit) :
@@ -199,6 +195,9 @@ public class LandService extends BaseService<Land,Long> {
         }
     }
 
+    public Land findByPoint(Double[] point){
+        return landRepository.findByPoint("Point("+point[0]+" "+point[1]+")");
+    }
 
     @Override
     public JpaPlusRepository<Land, Long> r() {

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

@@ -21,4 +21,5 @@ public class CommonVo {
     private Date date;
     private Integer limit;
     private String crop_type;
+    private Double[] point;
 }