Administrator 2 년 전
부모
커밋
6ad98c1297

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

@@ -18,10 +18,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 @RequestMapping("/api/land")
 @RestController("ApiLandController2")
@@ -60,6 +57,19 @@ public class ApiLandController extends BaseComponent {
         return R.succ(res);
     }
 
+    @RequestMapping("/crop_cutline")
+    public BaseResult getCropCutline(){
+        List<Map<String,String>> list = new ArrayList<>();
+        for(int i=0;i<CropAreaStat.cropTypes.length;i++){
+            Map<String,String> map = new HashMap<>();
+            map.put("name", CropAreaStat.name2s[i]);
+            map.put("type", CropAreaStat.cropTypes[i]);
+            map.put("color", CropAreaStat.colors[i]);
+            list.add(map);
+        }
+        return R.succ(list);
+    }
+
     @RequestMapping("/estimate_stat")
     public BaseResult getEstimate(@RequestBody CommonVo commonVo){
         return R.succ(landService.getEstimate(commonVo.getDistrict(), commonVo.getCity(), commonVo.getCrop_type()));

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

@@ -20,9 +20,9 @@ public class CropAreaStat {
     private String color;
     private Integer count = 0;
 
-    static  String[] cropTypes = {"corn","rice","other"};
-    static  String[] name2s = {"玉米","水稻","其他"};
-    static  String[] colors = {"#CD0000","#228B22","#FFFF00"};
+    public static  String[] cropTypes = {"corn","rice","other"};
+    public static  String[] name2s = {"玉米","水稻","其他"};
+    public static  String[] colors = {"#CD0000","#228B22","#FFFF00"};
 
     public static Integer getCropTypeIndex(String cropType){
         for(int i=0;i<cropTypes.length;i++){

+ 35 - 0
src/main/java/com/sysu/admin/controller/lz/area/LzArea.java

@@ -0,0 +1,35 @@
+package com.sysu.admin.controller.lz.area;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import lombok.experimental.FieldNameConstants;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+import org.locationtech.jts.geom.MultiPolygon;
+import javax.persistence.*;
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@FieldNameConstants(innerTypeName = "FIELDS")
+@Table(name = "lz_area")
+@Entity
+@DynamicInsert
+@DynamicUpdate
+public class LzArea {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Integer id;
+
+    @Column()
+    private String name;
+
+    @Transient
+    private String wkt;
+
+    @JSONField(serialize = false)
+    @Column(columnDefinition = "geom")
+    private MultiPolygon geom;
+}

+ 6 - 0
src/main/java/com/sysu/admin/controller/lz/area/LzAreaRepository.java

@@ -0,0 +1,6 @@
+package com.sysu.admin.controller.lz.area;
+
+import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
+
+public interface LzAreaRepository extends JpaPlusRepository<LzArea, Integer> {
+}

+ 18 - 0
src/main/java/com/sysu/admin/controller/lz/area/LzAreaService.java

@@ -0,0 +1,18 @@
+package com.sysu.admin.controller.lz.area;
+
+import com.sysu.admin.support.base.BaseService;
+import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class LzAreaService extends BaseService<LzArea, Integer> {
+
+    @Autowired
+    LzAreaRepository lzAreaRepository;
+
+    @Override
+    public JpaPlusRepository<LzArea, Integer> r() {
+        return lzAreaRepository;
+    }
+}

+ 27 - 0
src/main/java/com/sysu/admin/controller/lz/clazz/LzClazz.java

@@ -0,0 +1,27 @@
+package com.sysu.admin.controller.lz.clazz;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import lombok.experimental.FieldNameConstants;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+import javax.persistence.*;
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@FieldNameConstants(innerTypeName = "FIELDS")
+@Table(name = "lz_clazz")
+@Entity
+@DynamicInsert
+@DynamicUpdate
+public class LzClazz {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Integer id;
+
+    @Column
+    private String name;
+}

+ 7 - 0
src/main/java/com/sysu/admin/controller/lz/clazz/LzClazzRepository.java

@@ -0,0 +1,7 @@
+package com.sysu.admin.controller.lz.clazz;
+
+import com.sysu.admin.controller.lz.area.LzArea;
+import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
+
+public interface LzClazzRepository extends JpaPlusRepository<LzClazz, Integer> {
+}

+ 90 - 0
src/main/java/com/sysu/admin/controller/lz/everyday/LzEveryday.java

@@ -0,0 +1,90 @@
+package com.sysu.admin.controller.lz.everyday;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.sysu.admin.controller.lz.period.LzPeriod;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import lombok.experimental.FieldNameConstants;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+import org.locationtech.jts.geom.MultiPolygon;
+import org.springframework.data.annotation.CreatedDate;
+
+import javax.persistence.*;
+import java.util.Date;
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@FieldNameConstants(innerTypeName = "FIELDS")
+@Table(name = "lz_everyday")
+@Entity
+@DynamicInsert
+@DynamicUpdate
+public class LzEveryday {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Integer id;
+
+    @Column(updatable = false, nullable = false)
+    @CreatedDate
+    private Date createDate;
+
+    /**
+     * 0 待定 1多 2少 3无
+     */
+    @Column
+    private Integer whitePoint;
+
+
+    /**
+     * 物候期
+     */
+    @ManyToOne(cascade= CascadeType.REFRESH)
+    @JoinColumn(name = "period_id",insertable = false, updatable = false)
+    private LzPeriod lzPeriod;
+
+    /**
+     * 冠幅面积
+     */
+    @Column
+    private Double canopyArea;
+
+    /**
+     * 花穗长度(跟叶子对比,比之长或者短)
+     */
+    @Column
+    private Double flowerLength;
+
+    /**
+     * 花穗占比
+     */
+    @Column
+    private Double flowerPercent;
+
+    /**
+     * 产量(预估值千克)
+     */
+    @Column
+    private Integer yield;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 30 - 0
src/main/java/com/sysu/admin/controller/lz/everyday/LzEverydayImage.java

@@ -0,0 +1,30 @@
+package com.sysu.admin.controller.lz.everyday;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import lombok.experimental.FieldNameConstants;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+import javax.persistence.*;
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@FieldNameConstants(innerTypeName = "FIELDS")
+@Table(name = "lz_everyday_image")
+@Entity
+@DynamicInsert
+@DynamicUpdate
+public class LzEverydayImage {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Integer id;
+
+    @Column
+    private String filename;
+
+    @Column
+    private Integer everydayId;
+}

+ 6 - 0
src/main/java/com/sysu/admin/controller/lz/everyday/LzEverydayImageRepository.java

@@ -0,0 +1,6 @@
+package com.sysu.admin.controller.lz.everyday;
+
+import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
+
+public interface LzEverydayImageRepository extends JpaPlusRepository<LzEverydayImage, Integer> {
+}

+ 7 - 0
src/main/java/com/sysu/admin/controller/lz/everyday/LzEverydayRepository.java

@@ -0,0 +1,7 @@
+package com.sysu.admin.controller.lz.everyday;
+
+import com.sysu.admin.controller.lz.tree.LzTree;
+import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
+
+public interface LzEverydayRepository extends JpaPlusRepository<LzEveryday, Integer> {
+}

+ 36 - 0
src/main/java/com/sysu/admin/controller/lz/period/LzPeriod.java

@@ -0,0 +1,36 @@
+package com.sysu.admin.controller.lz.period;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import lombok.experimental.FieldNameConstants;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+import org.locationtech.jts.geom.MultiPolygon;
+
+import javax.persistence.*;
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@FieldNameConstants(innerTypeName = "FIELDS")
+@Table(name = "lz_period")
+@Entity
+@DynamicInsert
+@DynamicUpdate
+public class LzPeriod {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Integer id;
+
+    /**
+     * (白点期、春稍期、抽穗期、开花期)
+     */
+    @Column()
+    private String name;
+
+    @Column()
+    private String color;
+}

+ 7 - 0
src/main/java/com/sysu/admin/controller/lz/period/LzPeriodRepository.java

@@ -0,0 +1,7 @@
+package com.sysu.admin.controller.lz.period;
+
+import com.sysu.admin.controller.lz.clazz.LzClazz;
+import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
+
+public interface LzPeriodRepository extends JpaPlusRepository<LzPeriod, Integer> {
+}

+ 62 - 0
src/main/java/com/sysu/admin/controller/lz/tree/LzTree.java

@@ -0,0 +1,62 @@
+package com.sysu.admin.controller.lz.tree;
+
+import com.sysu.admin.controller.lz.area.LzArea;
+import com.sysu.admin.controller.lz.clazz.LzClazz;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import lombok.experimental.FieldNameConstants;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+import org.locationtech.jts.geom.Geometry;
+import org.locationtech.jts.geom.Point;
+
+import javax.persistence.*;
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@FieldNameConstants(innerTypeName = "FIELDS")
+@Table(name = "lz_tree")
+@Entity
+@DynamicInsert
+@DynamicUpdate
+public class LzTree {
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Integer id;
+
+    @Column
+    private String code;
+
+    @ManyToOne(cascade= CascadeType.REFRESH)
+    @JoinColumn(name = "clazz",insertable = false, updatable = false)
+    private LzClazz clazz;
+
+    @Column
+    private Integer age;
+
+    @ManyToOne(cascade= CascadeType.REFRESH)
+    @JoinColumn(name = "area_id",insertable = false, updatable = false)
+    private LzArea lzArea;
+
+    @Column
+    private Integer userId;
+
+    @Column()
+    private Point point;
+
+}
+
+
+
+
+
+
+
+
+
+
+
+

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

@@ -0,0 +1,7 @@
+package com.sysu.admin.controller.lz.tree;
+
+import com.sysu.admin.controller.lz.period.LzPeriod;
+import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
+
+public interface LzTreeRepository extends JpaPlusRepository<LzTree, Integer> {
+}

+ 28 - 0
src/main/java/com/sysu/admin/site/lz/LzAreaController.java

@@ -0,0 +1,28 @@
+package com.sysu.admin.site.lz;
+
+import com.sysu.admin.controller.lz.area.LzArea;
+import com.sysu.admin.controller.lz.area.LzAreaService;
+import com.sysu.admin.utils.shape.GeoCastUtil;
+import com.xiesx.fastboot.base.result.BaseResult;
+import com.xiesx.fastboot.base.result.R;
+import org.locationtech.jts.geom.MultiPolygon;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RequestMapping("/site/lz_area")
+@RestController
+public class LzAreaController {
+
+    @Autowired
+    private LzAreaService lzAreaService;
+
+    @RequestMapping("/save")
+    public BaseResult save(@RequestBody LzArea bean){
+        bean.setGeom((MultiPolygon) GeoCastUtil.wktToGeom(bean.getWkt()));
+        lzAreaService.save(bean);
+        return R.succ();
+    }
+
+}