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.Geometry;
import org.locationtech.jts.geom.MultiPolygon;
import org.locationtech.jts.geom.Point;

import javax.persistence.*;
import java.util.Date;
import java.util.HashMap;

@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@FieldNameConstants(innerTypeName = "FIELDS")
@Table(name = "leizhou_land")
@Entity
@DynamicInsert
@DynamicUpdate
public class Land {

    /*
字段信息：
value——潜在产值（元）
area_ha——地块面积（公顷）
crop_type——作物类别
cropTypeName -- 作物类别名称
number --编号
perimeter -- 周长
elevation -- 高程
parcelTypeName -- 地块类型名称
parcelType -- 地块类型
id_card——身份证
name——姓名
aspect——坡向
slope——坡度
gdp_pop——人均gdp
hupo——离水源距离
shengdao——离道路距离
quxian——离城市中心距离
Area——面积（平方米）
TOC——土壤有机质
ph -- 酸碱度
c  -- 碳
_2n -- 氮
p -- 磷
k -- 钾
el_sure -- 元素可信度
crop_sure -- 作物可信度
 */

    public Land(){
    }
    public Land(Geometry geometry){
        this.geom = (MultiPolygon)geometry;
    }


    /**
     * 主键
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;


    @Column
    private Double area;

    /**
     * 编号
     */
    @Column
    private Long number;


    /**
     * 周长
     */
    @Column
    private Double perimeter;

    /**
     * 高程
     */
    @Column
    private Double elevation;

    @Column
    private Double simpgnflag;

    @Column
    private Double toc;

    @Column
    private Double quxian;
    @Column
    private Double shengdao;
    @Column
    private Double hupo;
    @Column
    private Double gdp_pop;
    @Column
    private Double slope;
    @Column
    private Double aspect;
    @Column
    private String name;
    @Column
    private String id_card;
    /**
     * "corn","rice","other"
     */
    @Column
    private String crop_type;

    @Transient
    private String cropTypeName;

    /**
     * 单产
     */
    @Column
    private Double danChan;

    /**
     * 总产 = 单产 x 面积
     */
    @Transient
    private Double zongChan;


    @Column
    private Double area_ha;

    @Column
    private Double value;
    @Column
    private Integer majority;
    @Column
    private Integer parcel_type;
    @Transient
    private String parcelTypeName;

    @JSONField(serialize = false)
    @Column(columnDefinition = "geom")
    private MultiPolygon geom;

    @Transient
    private String wkt;
    @Transient
    private String geojson;

    /**
     * 酸碱度
     */
    @Column()
    private Double ph;

    /**
     *c  -- 碳
     */
    @Column()
    private Double c;

    /**
     * _2n -- 氮
     */
    @Column()
    private Double _2n;

    /**
     *p -- 磷
     */
    @Column()
    private Double p;

    /**
     *k -- 钾
     */
    @Column()
    private Double k;

    /**
     * 元素可信度
     * 0到1之间的小数
     */
    @Column()
    private Double elSure;

    /**
     * 作物类型可信度
     * 0到1之间的小数
     */
    @Column()
    private Double cropSure;
    /**
     * 种植
     */
    @Column()
    private String plant;
    /**
     * 长势 （1 优 2良 3中 0差 ）
     */
    @Column()
    private Integer zs;

    /**
     * （第一轮作产量）
     */
    @Column()
    private Integer lz1;

    /**
     * lz2 — （第二轮作产量）
     */
    @Column()
    private Integer lz2;

    /**
     * lz3 — （第三轮作产量）
     */
    @Column()
    private Integer lz3;

    /**
     * 适宜性得分 （0到12分）
     */
    @Column()
    private Integer syxdf;

    /**
     * syxsp — 适宜性水平 （0到12分）
     */
    @Column()
    private Integer syxsp;

    /**
     * bhfxdf — 病害风险得分 （0到12分）
     */
    @Column()
    private Integer bhfxdf;

    /**
     * bhfxdj — 病害风险等级 （0到12分）
     */
    @Column()
    private Integer bhfxdj;


}














