package com.xisc.pm.domain.entity;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.choerodon.mybatis.annotation.ModifyAudit;
import io.choerodon.mybatis.annotation.VersionAudit;
import io.choerodon.mybatis.domain.AuditDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 组板履历合同表(PmSubOrd)实体类
 *
 * @author BKGY
 * @since 2025-01-02 10:39:47
 */

@ApiModel("组板履历合同表")
@VersionAudit
@ModifyAudit
@Data
@JsonInclude(value = JsonInclude.Include.NON_NULL)
@Table(name = "PM_SUB_ORD")
public class PmSubOrd extends AuditDomain implements Serializable {
    private static final long serialVersionUID = -88627924804100104L;

    public static final String FIELD_ID = "id";
    public static final String FIELD_ORDER_NO = "orderNo";
    public static final String FIELD_SG_SIGN = "sgSign";
    public static final String FIELD_ST_NO = "stNo";
    public static final String FIELD_ORDER_THICK = "orderThick";
    public static final String FIELD_ORDER_WIDTH = "orderWidth";
    public static final String FIELD_LEN_AIM = "lenAim";
    public static final String FIELD_DELIVY_DATE = "delivyDate";
    public static final String FIELD_AXIS_ORD = "axisOrd";
    public static final String FIELD_LACK_NUM = "lackNum";
    public static final String FIELD_OVER_NUM = "overNum";
    public static final String FIELD_TENANT_ID = "tenantId";
    public static final String FIELD_ATTRIBUTE1 = "attribute1";
    public static final String FIELD_ATTRIBUTE2 = "attribute2";
    public static final String FIELD_ATTRIBUTE3 = "attribute3";
    public static final String FIELD_ATTRIBUTE4 = "attribute4";
    public static final String FIELD_ATTRIBUTE5 = "attribute5";
    public static final String FIELD_VIRTUAL_SLAB_NO = "virtualSlabNo";
    public static final String FIELD_POS_X = "posX";
    public static final String FIELD_POS_Y = "posY";
    public static final String FIELD_ORDER_SEQ_NO = "orderSeqNo";

    @ApiModelProperty("主键ID")
    @Id
    @GeneratedValue
    private Long id;

    @ApiModelProperty(value = "合同号", required = true)
    @NotBlank
    private String orderNo;

    @ApiModelProperty(value = "牌号")
    private String sgSign;

    @ApiModelProperty(value = "内部钢种")
    private String stNo;

    @ApiModelProperty(value = "订货厚度")
    private BigDecimal orderThick;

    @ApiModelProperty(value = "订货宽度")
    private BigDecimal orderWidth;

    @ApiModelProperty(value = "订货长度")
    private BigDecimal lenAim;

    @ApiModelProperty(value = "交货日期")
    private Date delivyDate;

    @ApiModelProperty(value = "轴合同")
    private String axisOrd;

    @ApiModelProperty(value = "欠量")
    private BigDecimal lackNum;

    @ApiModelProperty(value = "超投")
    private BigDecimal overNum;

    @ApiModelProperty(value = "租户ID", required = true)
    @NotNull
    private Long tenantId;

    private String attribute1;

    private String attribute2;

    private String attribute3;

    private String attribute4;

    private String attribute5;

    @ApiModelProperty(value = "合同顺序号")
    private Long orderSeqNo;

    @ApiModelProperty(value = "虚拟板批号")
    private String virtualSlabNo;

    @ApiModelProperty(value = "X方向位置")
    private BigDecimal posX;

    @ApiModelProperty(value = "Y方向位置")
    private BigDecimal posY;

    @ApiModelProperty(value = "关系主键")
    private String relKey;

    @ApiModelProperty(value = "板坯号")
    private String slabNo;
}

