Administrator 2 年 前
コミット
fa86068aad

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

@@ -0,0 +1,28 @@
+package com.sysu.admin.api.crop;
+
+import com.sysu.admin.controller.aland.LandService;
+import com.sysu.admin.support.base.BaseComponent;
+import com.xiesx.fastboot.base.result.BaseResult;
+import com.xiesx.fastboot.base.result.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RequestMapping("/api/land")
+@RestController("ApiLandController2")
+public class ApiLandController extends BaseComponent {
+
+    @Autowired
+    LandService landService;
+
+    @RequestMapping("/land_area_stat")
+    public BaseResult getLandAreaStat(){
+        return R.succ(landService.getLandAreaStat());
+    }
+
+    @RequestMapping("/crop_area_stat")
+    public BaseResult getCropAreaStat(){
+        return R.succ(landService.getCropAreaStat());
+    }
+
+}

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

@@ -0,0 +1,9 @@
+package com.sysu.admin.controller.aland;
+
+import lombok.Data;
+
+@Data
+public class CropAreaStat {
+    private String name;
+    private Double area;
+}

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

@@ -0,0 +1,161 @@
+package com.sysu.admin.controller.aland;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.sysu.admin.controller.crop.images.CropImage;
+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.locationtech.jts.geom.Point;
+
+import javax.persistence.*;
+import java.util.Date;
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@FieldNameConstants(innerTypeName = "FIELDS")
+@Table(name = "p_a_crop")
+@Entity
+@DynamicInsert
+@DynamicUpdate
+public class Land {
+
+    public Land(){
+    }
+
+    public Land(Long id, Integer cropType, Integer growingPeriod, Integer confirm, Integer district, String name, String address, String desc) {
+        this.id = id;
+        this.cropType = cropType;
+        this.growingPeriod = growingPeriod;
+        this.confirm = confirm;
+        this.district = district;
+        this.name = name;
+        this.address = address;
+        this.desc = desc;
+    }
+
+    /**
+     * 主键
+     */
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    /**
+     * [{"filter":0,"title":"其他","fill":"#6E7F85","opacity":0.8},
+     * {"filter":1,"title":"湿地","fill":"#7B9CFB","opacity":0.8},
+     * {"filter":2,"title":"耕地","fill":"#979B49","opacity":0.8},
+     * {"filter":3,"title":"园地","fill":"#E99209","opacity":0.8},
+     * {"filter":4,"title":"林地","fill":"#182F13","opacity":0.8},
+     * {"filter":5,"title":"草地","fill":"#307913","opacity":0.8},
+     * {"filter":6,"title":"水域","fill":"#0D53AF","opacity":0.8}]
+     */
+    @Column(name = "gridcode")
+    private Long gridcode;
+
+    @JSONField(serialize = false)
+    @Column(columnDefinition = "geom")
+    private MultiPolygon geom;
+
+    @JSONField(serialize = false)
+    @Column(columnDefinition = "center_point")
+    private Point centerPoint;
+
+    @Transient
+    private String wkt;
+    @Transient
+    private String geojson;
+    /**
+     * 耕地类型
+     */
+    @Column
+    private Integer cropType;
+    /**
+     * 生长期
+     */
+    @Column
+    private Integer growingPeriod;
+
+
+    /**
+     * 采集经度
+     */
+    @Column
+    private Double pickLongitude;
+
+    /**
+     * 采集纬度
+     */
+    @Column
+    private Double pickLatitude;
+
+    /**
+     * 产量
+     */
+    @Column
+    private Integer yield;
+
+    @Column(nullable = false)
+    private Date createDate;
+
+    @Column(nullable = false)
+    private Date updateDate;
+
+    @Column(nullable = false)
+    private Date receiveDate;
+
+    @Column(nullable = false)
+    private Long receiver;
+
+    @Column(nullable = false)
+    private Date pickDate;
+
+    /**
+     * 创建人
+     */
+    @Column( nullable = false)
+    private Long creator;
+
+    /**
+     */
+    @Column(nullable = false)
+    private Long executor;
+
+    /**
+     * 状态
+     */
+    @Column
+    private Integer status;
+
+    @Column
+    private Integer confirm;
+
+    /**
+     * 描述
+     */
+    @Column(name = "\"desc\"")
+    private String desc;
+
+    @Transient
+    private CropImage fay;
+    @Transient
+    private CropImage center;
+    @Transient
+    private CropImage near;
+
+    @Column
+    private Integer province;
+    @Column
+    private Integer city;
+    @Column
+    private Integer district;
+    @Column
+    private String name;
+    @Column
+    private String address;
+
+}

+ 9 - 0
src/main/java/com/sysu/admin/controller/aland/LandAreaStat.java

@@ -0,0 +1,9 @@
+package com.sysu.admin.controller.aland;
+
+import lombok.Data;
+
+@Data
+public class LandAreaStat {
+    private String name;
+    private Double area;
+}

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

@@ -0,0 +1,7 @@
+package com.sysu.admin.controller.aland;
+
+import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
+
+public interface LandRepository extends JpaPlusRepository<Land, Long> {
+
+}

+ 57 - 0
src/main/java/com/sysu/admin/controller/aland/LandService.java

@@ -0,0 +1,57 @@
+package com.sysu.admin.controller.aland;
+
+import com.sysu.admin.support.base.BaseService;
+import com.sysu.admin.support.system.config.SConfig;
+import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+@Service("LandService2")
+public class LandService extends BaseService<Land,Long> {
+    @Autowired
+    LandRepository landRepository;
+
+
+    public List<LandAreaStat> getLandAreaStat(){
+        List<LandAreaStat> list = new ArrayList<>();
+        list.add(toLandAreaStat("crop_acre"));
+        list.add(toLandAreaStat("water_acre"));
+        list.add(toLandAreaStat("field_acre"));
+        return  list;
+    }
+
+    public LandAreaStat toLandAreaStat(String key){
+        LandAreaStat cropAreaStat = new LandAreaStat();
+        SConfig field_acre =serviceContext.mSConfigService.get(key);
+        cropAreaStat.setArea(Double.parseDouble(field_acre.getV()));
+        cropAreaStat.setName(field_acre.getTitle());
+        return cropAreaStat;
+    }
+
+    public CropAreaStat toCropAreaStat(String key){
+        CropAreaStat cropAreaStat = new CropAreaStat();
+        SConfig field_acre =serviceContext.mSConfigService.get(key);
+        cropAreaStat.setArea(Double.parseDouble(field_acre.getV()));
+        cropAreaStat.setName(field_acre.getTitle());
+        return cropAreaStat;
+    }
+
+    public List<CropAreaStat> getCropAreaStat() {
+        List<CropAreaStat> list = new ArrayList<>();
+        list.add(toCropAreaStat("rice_area_stat"));
+        list.add(toCropAreaStat("maize_area_stat"));
+        list.add(toCropAreaStat("potato_area_stat"));
+        list.add(toCropAreaStat("sweet_potato_area_stat"));
+        list.add(toCropAreaStat("sorghum_area_stat"));
+        return list;
+    }
+
+
+    @Override
+    public JpaPlusRepository<Land, Long> r() {
+        return landRepository;
+    }
+}