Administrator hace 2 años
padre
commit
b7b1135702

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

@@ -84,7 +84,7 @@ public class ApiLandController extends BaseComponent {
     @RequestMapping("/list")
     public PaginationResult list(@RequestBody CommonVo commonVo){
         PaginationVo paginationVo = new PaginationVo(commonVo.getPage(), commonVo.getLimit(), commonVo.getLimit());
-        PaginationResult result  = landService.list(commonVo.getSure(), commonVo.getDistrict(),commonVo.getTown(), paginationVo, commonVo.getCrop_type());
+        PaginationResult result  = landService.list(commonVo.getSure(), commonVo.getDistrict(),commonVo.getTown(), paginationVo, commonVo.getCrop_type(), commonVo.getParcel_type());
         ((List<Land>)result.data()).stream().forEach(land -> {
             land.setCropTypeName(CropAreaStat.castName(land.getCrop_type()));
             land.setParcelTypeName(LandAreaStat.castName(land.getParcelType()));

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

@@ -296,7 +296,7 @@ public class LandService extends BaseService<Land,Long> {
 
 
 
-    public PaginationResult list(Double[] sure,String district, Integer townId, PaginationVo page, String cropType){
+    public PaginationResult list(Double[] sure,String district, Integer townId, PaginationVo page, String cropType, Integer parcelType){
         String wkt = null;
         if(townId != null) {
              wkt = townService.findWktById(townId);
@@ -322,6 +322,12 @@ public class LandService extends BaseService<Land,Long> {
             sql.append(" and crop_type = '").append(cropType).append("'");
         }
 
+        if(parcelType != null) {
+            countSql.append(" and parcel_type = ").append(parcelType);
+            sql.append(" and parcel_type = ").append(parcelType);
+        }
+
+
         if(ArrayUtils.isNotEmpty(sure)){
             countSql.append(" and crop_sure >= ").append(sure[0]);
             countSql.append(" and crop_sure <= ").append(sure[1]);

+ 5 - 0
src/main/java/com/sysu/admin/controller/lz/tree/LzTreeRepository.java

@@ -1,10 +1,15 @@
 package com.sysu.admin.controller.lz.tree;
 
+import com.sysu.admin.controller.aland.Land;
 import com.sysu.admin.controller.lz.period.LzPeriod;
 import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
+import org.springframework.data.jpa.repository.Query;
 
 public interface LzTreeRepository extends JpaPlusRepository<LzTree, Integer> {
 
      LzTree findByCode(String code);
 
+     @Query(value = "SELECT * FROM lz_tree where St_within(point, ST_Buffer(st_geomfromtext(?1),?2, 'quad_segs=8')) limit 1", nativeQuery = true)
+     LzTree findByPoint(String wkt, Double m);
+
 }

+ 5 - 0
src/main/java/com/sysu/admin/controller/lz/tree/LzTreeService.java

@@ -17,6 +17,11 @@ public class LzTreeService extends BaseService<LzTree, Integer> {
         return lzTreeRepository.findByCode(code);
     }
 
+    public LzTree findByPoint(Double[] point, Integer m){
+        double degree = m / (2 * Math.PI * 6371004) * 360;
+        return lzTreeRepository.findByPoint("Point("+point[0]+" "+point[1]+")", degree);
+    }
+
     @Override
     public JpaPlusRepository<LzTree, Integer> r() {
         return lzTreeRepository;

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

@@ -21,6 +21,7 @@ public class CommonVo {
     private Date date;
     private Integer month;
     private String crop_type;
+    private Integer parcel_type;
     private Double[] point;
     public Integer page = 1;
     public Integer limit = 25;

+ 16 - 5
src/main/java/com/sysu/admin/site/lz/LzTreeController.java

@@ -45,10 +45,21 @@ public class LzTreeController {
 
     @RequestMapping("/info")
     public BaseResult info(@RequestBody CommonVo commonVo){
-        LzTree bean = lzTreeService.findOne(commonVo.getId().intValue());
-        List<LzEveryday> lzEverydayList = everydayService.findListByTreeId(bean.getId());
-        bean.setLzEverydays(lzEverydayList);
-        return R.succ(bean);
+        if(commonVo.getId() != null) {
+            LzTree bean = lzTreeService.findOne(commonVo.getId().intValue());
+            List<LzEveryday> lzEverydayList = everydayService.findListByTreeId(bean.getId());
+            bean.setLzEverydays(lzEverydayList);
+            return R.succ(bean);
+        }else{
+            LzTree bean = lzTreeService.findByPoint(commonVo.getPoint(), 5);
+            if(bean != null) {
+                List<LzEveryday> lzEverydayList = everydayService.findListByTreeId(bean.getId());
+                bean.setLzEverydays(lzEverydayList);
+                return R.succ(bean);
+            }else{
+                return R.succ();
+            }
+        }
     }
 
     @RequestMapping("/save")
@@ -57,7 +68,7 @@ public class LzTreeController {
         LzArea lzArea = lzAreaService.findByPoint(bean.getWkt());
         LzClazz clazz = lzClazzService.findOne(bean.getClazzId());
         bean.setClazz(clazz);
-        bean.setCode(lzArea.getId() + "-"+clazz.getCode() + "-" + bean.getCode());
+        bean.setCode(lzArea.getId() + clazz.getCode() +  bean.getCode());
         bean.setLzArea(lzArea);
         lzTreeService.save(bean);
         return R.succ();