package com.ruoyi.web.calculate.domain;

import java.math.BigDecimal;
import java.math.RoundingMode;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.format.annotation.NumberFormat;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excel.ColumnType;
import com.ruoyi.common.core.domain.BaseEntity;

public class CmcEleDifSideLandDir extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 待求点号 */
    private String pointNumber;

    /** 坐标系 */
    private String pointName;

    /** 控制网点坐标x */
    private Double cpX;

    /** 控制网点坐标y */
    private Double cpY;

    /** 控制网点坐标z */
    private Double cpZ;

    /** 测站序号 */
    @Excel(name = "测站序号", cellType = ColumnType.NUMERIC)
    private Integer stationPN;

    /** 方向序号 */
    @Excel(name = "方向序号", cellType = ColumnType.NUMERIC)
    private Integer directionPN;

    /** 测站坐标x */
    @Excel(name = "测站坐标x", cellType = ColumnType.NUMERIC, numberFormat = "0.0000")
    private Double spX;

    /** 测站坐标y */
    @Excel(name = "测站坐标y", cellType = ColumnType.NUMERIC, numberFormat = "0.0000")
    private Double spY;

    /** 测站坐标z */
    @Excel(name = "测站坐标z", cellType = ColumnType.NUMERIC, numberFormat = "0.0000")
    private Double spZ;

    /** 方向坐标x */
    @Excel(name = "方向坐标x", cellType = ColumnType.NUMERIC, numberFormat = "0.0000")
    private Double dpX;

    /** 方向坐标y */
    @Excel(name = "方向坐标y", cellType = ColumnType.NUMERIC, numberFormat = "0.0000")
    private Double dpY;

    /** 方向坐标z */
    @Excel(name = "方向坐标z", cellType = ColumnType.NUMERIC, numberFormat = "0.0000")
    private Double dpZ;

    /** 测站点名 */
    @Excel(name = "测站点名")
    private String stationPointName;

    /** 方向点名 */
    @Excel(name = "方向点名")
    private String directionPointName;

    /** 高差 */
    @Excel(name = "高差", cellType = ColumnType.NUMERIC, numberFormat = "0.0000")
    private Double heightDiff;

    /** 边长 */
    @Excel(name = "边长", cellType = ColumnType.NUMERIC, numberFormat = "0.0000")
    private Double edgeLength;

    /** 方位角 */
    @Excel(name = "方位角", cellType = ColumnType.NUMERIC)
    private double azimuthAngle;

    /** 天顶距 */
    @Excel(name = "天顶距", cellType = ColumnType.NUMERIC)
    private double topDistance;

    /** 原始方位角（未复用前计算的值） */
    @Excel(name = "原始方位角", cellType = ColumnType.NUMERIC)
    private double originalAzimuthAngle;

    /** 角度差（原始方位角 - 复用后的方位角） */
    @Excel(name = "角度差", cellType = ColumnType.NUMERIC, numberFormat = "0.0000")
    private Double angleDifference;

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

    public Long getId() {
        return id;
    }

    public void setPointNumber(String pointNumber) {
        this.pointNumber = pointNumber;
    }

    public String getPointNumber() {
        return pointNumber;
    }

    public void setPointName(String pointName) {
        this.pointName = pointName;
    }

    public String getPointName() {
        return pointName;
    }

    public void setCPX(Double cpX) {
        this.cpX = cpX;
    }

    public Double getCPX() {
        return cpX;
    }

    public void setCPY(Double cpY) {
        this.cpY = cpY;
    }

    public Double getCPY() {
        return cpY;
    }

    public void setCPZ(Double cpZ) {
        this.cpZ = cpZ;
    }

    public Double getCPZ() {
        return cpZ;
    }

    public void setStationPN(Integer stationPN) {
        this.stationPN = stationPN;
    }

    public Integer getStationPN() {
        return stationPN;
    }

    public void setDirectionPN(Integer directionPN) {
        this.directionPN = directionPN;
    }

    public Integer getDirectionPN() {
        return directionPN;
    }

    public void setSPX(Double spX) {
        this.spX = spX;
    }

    public Double getSPX() {
        return spX;
    }

    public void setSPY(Double spY) {
        this.spY = spY;
    }

    public Double getSPY() {
        return spY;
    }

    public void setSPZ(Double spZ) {
        this.spZ = spZ;
    }

    public Double getSPZ() {
        return spZ;
    }

    public void setDPX(Double dpX) {
        this.dpX = dpX;
    }

    public Double getDPX() {
        return dpX;
    }

    public void setDPY(Double dpY) {
        this.dpY = dpY;
    }

    public Double getDPY() {
        return dpY;
    }

    public void setDPZ(Double dpZ) {
        this.dpZ = dpZ;
    }

    public Double getDPZ() {
        return dpZ;
    }

    public void setStationPointName(String stationPointName) {
        this.stationPointName = stationPointName;
    }

    public String getStationPointName() {
        return stationPointName;
    }

    public void setDirectionPointName(String directionPointName) {
        this.directionPointName = directionPointName;
    }

    public String getDirectionPointName() {
        return directionPointName;
    }

    public void setHeightDiff(Double heightDiff) {
        this.heightDiff = heightDiff;
    }

    public Double getHeightDiff() {
        return heightDiff;
    }

    public void setEdgeLength(Double edgeLength) {
        this.edgeLength = edgeLength;
    }

    public Double getEdgeLength() {
        return edgeLength;
    }

    public void setAzimuthAngle(double azimuthAngle) {
        this.azimuthAngle = azimuthAngle;
    }

    public double getAzimuthAngle() {
        return azimuthAngle;
    }

    public void setTopDistance(double topDistance) {
        this.topDistance = topDistance;
    }

    public double getTopDistance() {
        return topDistance;
    }

    public void setOriginalAzimuthAngle(double originalAzimuthAngle) {
        this.originalAzimuthAngle = originalAzimuthAngle;
    }

    public double getOriginalAzimuthAngle() {
        return originalAzimuthAngle;
    }

    public void setAngleDifference(Double angleDifference) {
        this.angleDifference = angleDifference;
    }

    public Double getAngleDifference() {
        return angleDifference;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("pointNumber", getPointNumber())
                .append("pointName", getPointName())
                .append("cpX", getCPX())
                .append("cpY", getCPY())
                .append("cpZ", getCPZ())
                .append("stationPN", getStationPN())
                .append("directionPN", getDirectionPN())
                .append("spX", getSPX())
                .append("spY", getSPY())
                .append("spZ", getSPZ())
                .append("dpX", getDPX())
                .append("dpY", getDPY())
                .append("dpZ", getDPZ())
                .append("heightDiff", getHeightDiff())
                .append("edgeLength", getEdgeLength())
                .append("azimuthAngle", getAzimuthAngle())
                .append("topDistance", getTopDistance())
                .toString();
    }
}

