package com.unis.detectionnum.common.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * x，y的步长
 */
@Data
public class GetXYVO {

    //主键id
    @ApiModelProperty(value="id")
    private String id;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    //设备编号（库区code+仓房code+001）
    @ApiModelProperty(value="设备编号")
    private String sbCode;

    //x的步长
    @ApiModelProperty(value="x的步长")
    private double pointX;

    // y的步长
    @ApiModelProperty(value = "y的步长")
    private double pointY;

    //粮食高度（读取到为mm,需转换为m）
    @ApiModelProperty(value = "粮食高度")
    private Double pointZ;

    //创建时间
    @DateTimeFormat(pattern = "yyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @ApiModelProperty(value="创建时间")
    private Date createDate;

    //备注
    @ApiModelProperty(value="备注")
    private String remark;

    //扫描纪录id
    @ApiModelProperty(value="操作记录id")
    private String operateId;

    public String getOperateId() {
        return operateId;
    }

    public void setOperateId(String operateId) {
        this.operateId = operateId;
    }

    @ApiModelProperty(value="可信度")
    private Integer point_trust;

    //设备y值的弧度
    @ApiModelProperty(value = "设备y值的弧度")
    private Double point_radian = 0.0;

    //设备x值的弧度
    @ApiModelProperty(value = "设备x值的弧度")
    private double pointx_radian = 0.0;

    //设备x值的弧度
    @ApiModelProperty(value = "计算的斜边长")
    private double ab = 0.0;

    //返回结果index_m
    @ApiModelProperty(value = "返回结果index_m")
    private int m_index = 0;

    //返回结果n_index
    @ApiModelProperty(value = "返回结果n_index1")
    private int n_index1 = 0;

    //返回结果n_index
    @ApiModelProperty(value = "返回结果n_index2")
    private int n_index2 = 0;

    //返回结果n_index
    @ApiModelProperty(value = "返回结果n_index3")
    private int n_index3 = 0;

    //结果1
    @ApiModelProperty(value = "结果1")
    private double result_1 = 0.0;

    //结果2
    @ApiModelProperty(value = "结果2")
    private double result_2 = 0.0;

    //结果3
    @ApiModelProperty(value = "结果3")
    private double result_3 = 0.0;

    @ApiModelProperty(value = "区分区域")
    private int s_region;

    @ApiModelProperty(value = "仓房左边长")
    private double houseLengthLeft;

    @ApiModelProperty(value = "仓房右边长")
    private double houseLengthRight;

    @ApiModelProperty(value = "仓房宽度")
    private double houseWide;

    public int getS_region() {
        return s_region;
    }

    public void setS_region(int s_region) {
        this.s_region = s_region;
    }

    public double getHouseLengthLeft() {
        return houseLengthLeft;
    }

    public void setHouseLengthLeft(double houseLengthLeft) {
        this.houseLengthLeft = houseLengthLeft;
    }

    public double getHouseLengthRight() {
        return houseLengthRight;
    }

    public void setHouseLengthRight(double houseLengthRight) {
        this.houseLengthRight = houseLengthRight;
    }

    public double getHouseWide() {
        return houseWide;
    }

    public void setHouseWide(double houseWide) {
        this.houseWide = houseWide;
    }

    public void setPointx_radian(double pointx_radian) {
        this.pointx_radian = pointx_radian;
    }

    public double getAb() {
        return ab;
    }

    public void setAb(double ab) {
        this.ab = ab;
    }

    public Double getPointx_radian() {
        return pointx_radian;
    }

    public void setPointx_radian(Double pointx_radian) {
        this.pointx_radian = pointx_radian;
    }


    public String getSbCode() {
        return sbCode;
    }

    public void setSbCode(String sbCode) {
        this.sbCode = sbCode;
    }

    public double getPointX() {
        return pointX;
    }

    public void setPointX(double pointX) {
        this.pointX = pointX;
    }

    public double getPointY() {
        return pointY;
    }

    public void setPointY(double pointY) {
        this.pointY = pointY;
    }

    public Double getPointZ() {
        return pointZ;
    }

    public void setPointZ(Double pointZ) {
        this.pointZ = pointZ;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }


    public Integer getPoint_trust() {
        return point_trust;
    }

    public void setPoint_trust(Integer point_trust) {
        this.point_trust = point_trust;
    }



    @Override
    public String toString() {
        return "{:"+sbCode+",pointX:"+pointX+",pointY:" +pointY+ ",pointZ: "+pointZ +
                ",createDate: " +createDate+",remark: "+remark+"}";
    }

    public Double getPoint_radian() {
        return point_radian;
    }

    public GetXYVO(double pointX, double pointY, Double point_radian, Double pointx_radian) {
        this.pointX = pointX;
        this.pointY = pointY;
        this.point_radian = point_radian;
        this.pointx_radian = pointx_radian;
    }
    public GetXYVO(double pointX, double pointY, Double point_radian, Double pointx_radian,String id,String operateId,String sbCode,int m_index,int n_index1,int n_index2,int n_index3,double result_1,double result_2,int s_region,double houseLengthLeft,double houseLengthRight,double houseWide) {
        this.pointX = pointX;
        this.pointY = pointY;
        this.point_radian = point_radian;
        this.pointx_radian = pointx_radian;
        this.id = id;
        this.operateId = operateId;
        this.sbCode = sbCode;
        this.m_index = m_index;
        this.n_index1 = n_index1;
        this.n_index2 = n_index2;
        this.n_index3 = n_index3;
        this.result_1 = result_1;
        this.result_2 = result_2;
        this.s_region = s_region;
        this.houseLengthLeft = houseLengthLeft;
        this.houseLengthRight = houseLengthRight;
        this.houseWide = houseWide;
    }

    public void setPoint_radian(Double point_radian) {
        this.point_radian = point_radian;
    }

    public GetXYVO(double pointX, double pointY, Double point_radian) {
        this.pointX = pointX;
        this.pointY = pointY;
        this.point_radian = point_radian;
    }

    public GetXYVO(Integer pointX, Integer pointY) {
        this.pointX = pointX;
        this.pointY = pointY;
    }

    public GetXYVO(String id, String sbCode, Integer pointX, Integer pointY, Double pointZ, Date createDate, String remark, String operateId, Integer point_trust) {
        this.id = id;
        this.sbCode = sbCode;
        this.pointX = pointX;
        this.pointY = pointY;
        this.pointZ = pointZ;
        this.createDate = createDate;
        this.remark = remark;
        this.operateId = operateId;
        this.point_trust = point_trust;
    }

    public GetXYVO() {
    }
}
