package com.xisc.pm.domain.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

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.Getter;
import lombok.Setter;

/**
 * 生产合同产品属性表
 *
 * @author 曾俊 jun.zeng@hand-china.com 2024-07-29 14:28:18
 */
@Getter
@Setter
@ApiModel("生产合同产品属性表")
@VersionAudit
@ModifyAudit
@JsonInclude(value = JsonInclude.Include.NON_NULL)
@Table(name = "PM_PRO_CONT_PROD_ATTR")
public class PmProContProdTtr extends AuditDomain implements Serializable {

    private static final long serialVersionUID = 2974927347712254384L;

    public static final String FIELD_PRO_CONT_ID = "proContId";
    public static final String FIELD_ORDER_NO = "orderNo";
    public static final String FIELD_ORDER_WT = "orderWt";
    public static final String FIELD_ORDER_QTY = "orderQty";
    public static final String FIELD_DELIVY_NUM_TOL_PLUS = "delivyNumTolPlus";
    public static final String FIELD_DELIVY_NUM_TOL_MINUS = "delivyNumTolMinus";
    public static final String FIELD_ORDER_UNIT_AIM_WT = "orderUnitAimWt";
    public static final String FIELD_ORDER_UNIT_MAX_WT = "orderUnitMaxWt";
    public static final String FIELD_ORDER_UNIT_MIN_WT = "orderUnitMinWt";
    public static final String FIELD_ORDER_TYPE_CODE = "orderTypeCode";
    public static final String FIELD_URG_ORDER_FLAG = "urgOrderFlag";
    public static final String FIELD_DELIVY_DATE = "delivyDate";
    public static final String FIELD_EXPORT_FLAG = "exportFlag";
    public static final String FIELD_PSC = "psc";
    public static final String FIELD_MSC = "msc";
    public static final String FIELD_APN = "apn";
    public static final String FIELD_SG_STD = "sgStd";
    public static final String FIELD_SG_SIGN = "sgSign";
    public static final String FIELD_SG_CODE = "sgCode";
    public static final String FIELD_NEW_TEST_NO = "newTestNo";
    public static final String FIELD_ORDER_THICK = "orderThick";
    public static final String FIELD_ORDER_WIDTH = "orderWidth";
    public static final String FIELD_FIN_CUST_CODE = "finCustCode";
    public static final String FIELD_ORDER_MAX_LEN = "orderMaxLen";
    public static final String FIELD_ORDER_MIN_LEN = "orderMinLen";
    public static final String FIELD_ORDER_SHORT_MAX = "orderShortMax";
    public static final String FIELD_ORDER_SHORT_MIN = "orderShortMin";
    public static final String FIELD_ORDER_SHORT_RATE = "orderShortRate";
    public static final String FIELD_ORDER_NO_ERP = "orderNoErp";
    public static final String FIELD_ORDER_CUST_CNAME = "orderCustCname";
    public static final String FIELD_CONSIGN_CUST_CNAME = "consignCustCname";
    public static final String FIELD_DELIVY_PLACE_NAME = "delivyPlaceName";
    public static final String FIELD_TRNP_MODE_CODE = "trnpModeCode";
    public static final String FIELD_PLANER_FLAG = "planerFlag";
    public static final String FIELD_XZ_FLAG = "xzFlag";
    public static final String FIELD_ORDER_LEN = "orderLen";
    public static final String FIELD_WIDTH_DIV = "widthDiv";
    public static final String FIELD_WIDTH_MAX = "widthMax";
    public static final String FIELD_WIDTH_MIN = "widthMin";
    public static final String FIELD_LEN_DIV = "lenDiv";
    public static final String FIELD_PROD_CODE_HP = "prodCodeHp";
    public static final String FIELD_THICK_TOL_MAX = "thickTolMax";
    public static final String FIELD_THICK_TOL_MIN = "thickTolMin";
    public static final String FIELD_WIDTH_TOL_MAX = "widthTolMax";
    public static final String FIELD_WIDTH_TOL_MIN = "widthTolMin";
    public static final String FIELD_LEN_TOL_MAX = "lenTolMax";
    public static final String FIELD_LEN_TOL_MIN = "lenTolMin";
    public static final String FIELD_SAMPLE_LEN_HEAD = "sampleLenHead";
    public static final String FIELD_SAMPLE_LEN_TAIL = "sampleLenTail";
    public static final String FIELD_WIDTH_ADDV = "widthAddv";
    public static final String FIELD_SHP_CODE = "shpCode";
    public static final String FIELD_HULL_SECTION_NO = "hullSectionNo";
    public static final String FIELD_SECTION_MANAGE = "sectionManage";
    public static final String FIELD_TWO_ROLL_FLAG = "twoRollFlag";
    public static final String FIELD_TWO_ROLL_ORDER_FLAG = "twoRollOrderFlag";
    public static final String FIELD_SAMPLE_MODE_CODE = "sampleModeCode";
    public static final String FIELD_PICK_PATTERN_CODE = "pickPatternCode";
    public static final String FIELD_ACCP_AUTH_CODE = "accpAuthCode";
    public static final String FIELD_ACCPT_MODE_CODE = "accptModeCode";
    public static final String FIELD_CHECK_METHOD_CODE = "checkMethodCode";
    public static final String FIELD_SAMPLE_CHECK_FLAG = "sampleCheckFlag";
    public static final String FIELD_PROD_SR_MARK = "prodSrMark";
    public static final String FIELD_PROD_SIDE_MARK = "prodSideMark";
    public static final String FIELD_PROD_SHOT_MARK = "prodShotMark";
    public static final String FIELD_PROD_N_MARK = "prodNMark";
    public static final String FIELD_PROD_Q_MARK = "prodQMark";
    public static final String FIELD_PROD_T_MARK = "prodTMark";
    public static final String FIELD_PROD_MARK = "prodAMark";
    public static final String FIELD_BACKLOG_UT_MARK = "backlogUtMark";
    public static final String FIELD_BACKLOG_N_MARK = "backlogNMark";
    public static final String FIELD_BACKLOG_Q_MARK = "backlogQMark";
    public static final String FIELD_BACKLOG_T_MARK = "backlogTMark";
    public static final String FIELD_BACKLOG_MARK = "backlogAMark";
    public static final String FIELD_BACKLOG_DEMAG_MARK = "backlogDemagMark";
    public static final String FIELD_BACKLOG_PT_MARK = "backlogPtMark";
    public static final String FIELD_BACKLOG_MT_MARK = "backlogMtMark";
    public static final String FIELD_BACKLOG_TMCP_MARK = "backlogTmcpMark";
    public static final String FIELD_NEED_LECQUERING = "needLecquering";
    public static final String FIELD_SHOT_PAINT_CODE = "shotPaintCode";
    public static final String FIELD_GIVE_SAMPLE_CODE = "giveSampleCode";
    public static final String FIELD_SAMPLE_LEN_GIVE = "sampleLenGive";
    public static final String FIELD_SHOT_FLAG = "shotFlag";
    public static final String FIELD_TRIM_CODE = "trimCode";
    public static final String FIELD_TS_MAX = "tsMax";
    public static final String FIELD_TS_MIN = "tsMin";
    public static final String FIELD_PROD_DENSITY = "prodDensity";
    public static final String FIELD_DI_FLAG = "diFlag";
    public static final String FIELD_INGOT_ROLL = "ingotRoll";
    public static final String FIELD_SPECIAL_PRINT = "specialPrint";
    public static final String FIELD_PROJECT_CODE = "projectCode";
    public static final String FIELD_WT_METHOD_CODE = "wtMethodCode";
    public static final String FIELD_TENANT_ID = "tenantId";
    public static final String FIELD_OBJECT_VERSION_NUMBER = "objectVersionNumber";
    public static final String FIELD_CREATION_DATE = "creationDate";
    public static final String FIELD_CREATED_BY = "createdBy";
    public static final String FIELD_LAST_UPDATED_BY = "lastUpdatedBy";
    public static final String FIELD_LAST_UPDATE_DATE = "lastUpdateDate";
    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";

    @ApiModelProperty("表ID，关联表PM_PRO_CONT")
    @Id
    @GeneratedValue
    private Long proContId;
    @ApiModelProperty(value = "合同号", required = true)
    @NotBlank
    private String orderNo;
    @ApiModelProperty(value = "订货重量", required = true)
    @NotNull
    private BigDecimal orderWt;
    @ApiModelProperty(value = "订货件数", required = true)
    @NotNull
    private BigDecimal orderQty;
    @ApiModelProperty(value = "交货件数正公差", required = true)
    @NotNull
    private BigDecimal delivyNumTolPlus;
    @ApiModelProperty(value = "交货件数负公差", required = true)
    @NotNull
    private BigDecimal delivyNumTolMinus;
    @ApiModelProperty(value = "订货单件目标重量", required = true)
    @NotNull
    private BigDecimal orderUnitAimWt;
    @ApiModelProperty(value = "订货单件最大重量", required = true)
    @NotNull
    private BigDecimal orderUnitMaxWt;
    @ApiModelProperty(value = "订货单件最小重量", required = true)
    @NotNull
    private BigDecimal orderUnitMinWt;
    @ApiModelProperty(value = "合同性质代码", required = true)
    @NotBlank
    private String orderTypeCode;
    @ApiModelProperty(value = "紧急合同标记", required = true)
    @NotNull
    private Long urgOrderFlag;
    @ApiModelProperty(value = "交货日期", required = true)
    @NotBlank
    private Date delivyDate;
    @ApiModelProperty(value = "出口标记", required = true)
    @NotNull
    private Long exportFlag;
    @ApiModelProperty(value = "产品规范码", required = true)
    @NotBlank
    private String psc;
    @ApiModelProperty(value = "冶金规范码", required = true)
    @NotBlank
    private String msc;
    @ApiModelProperty(value = "产品最终用途码", required = true)
    @NotBlank
    private String apn;
    @ApiModelProperty(value = "标准", required = true)
    @NotBlank
    private String sgStd;
    @ApiModelProperty(value = "标准牌号", required = true)
    @NotBlank
    private String sgSign;
    @ApiModelProperty(value = "牌号代码", required = true)
    @NotBlank
    private String sgCode;
    @ApiModelProperty(value = "新试号", required = true)
    @NotBlank
    private String newTestNo;
    @ApiModelProperty(value = "订货厚度", required = true)
    @NotNull
    private BigDecimal orderThick;
    @ApiModelProperty(value = "订货宽度", required = true)
    @NotNull
    private BigDecimal orderWidth;
    @ApiModelProperty(value = "最终用户代码", required = true)
    @NotBlank
    private String finCustCode;
    @ApiModelProperty(value = "订货长度上限", required = true)
    @NotNull
    private BigDecimal orderMaxLen;
    @ApiModelProperty(value = "订货长度下限", required = true)
    @NotNull
    private BigDecimal orderMinLen;
    @ApiModelProperty(value = "订货最大短尺", required = true)
    @NotNull
    private BigDecimal orderShortMax;
    @ApiModelProperty(value = "订货最小短尺", required = true)
    @NotNull
    private BigDecimal orderShortMin;
    @ApiModelProperty(value = "订货短尺率", required = true)
    @NotNull
    private BigDecimal orderShortRate;
    @ApiModelProperty(value = "产销合同号", required = true)
    @NotBlank
    private String orderNoErp;
    @ApiModelProperty(value = "订货用户中文名称")
    private String orderCustCname;
    @ApiModelProperty(value = "收货用户中文名称", required = true)
    @NotBlank
    private String consignCustCname;
    @ApiModelProperty(value = "交货地点名称", required = true)
    @NotBlank
    private String delivyPlaceName;
    @ApiModelProperty(value = "运输方式代码", required = true)
    @NotBlank
    private String trnpModeCode;
    @ApiModelProperty(value = "剖分标记，1允许剖分，0不允许剖分")
    private String planerFlag;
    @ApiModelProperty(value = "湘重合同标记", required = true)
    @NotNull
    private Long xzFlag;
    @ApiModelProperty(value = "订货长度", required = true)
    @NotNull
    private BigDecimal orderLen;
    @ApiModelProperty(value = "宽度区分", required = true)
    @NotNull
    private Long widthDiv;
    @ApiModelProperty(value = "宽度上限", required = true)
    @NotNull
    private BigDecimal widthMax;
    @ApiModelProperty(value = "宽度下限", required = true)
    @NotNull
    private BigDecimal widthMin;
    @ApiModelProperty(value = "长度区分", required = true)
    @NotNull
    private Long lenDiv;
    @ApiModelProperty(value = "厚板品种代码", required = true)
    @NotBlank
    private String prodCodeHp;
    @ApiModelProperty(value = "厚度公差上限", required = true)
    @NotNull
    private BigDecimal thickTolMax;
    @ApiModelProperty(value = "厚度公差下限", required = true)
    @NotNull
    private BigDecimal thickTolMin;
    @ApiModelProperty(value = "宽度公差上限", required = true)
    @NotNull
    private BigDecimal widthTolMax;
    @ApiModelProperty(value = "宽度公差下限", required = true)
    @NotNull
    private BigDecimal widthTolMin;
    @ApiModelProperty(value = "长度公差上限", required = true)
    @NotNull
    private BigDecimal lenTolMax;
    @ApiModelProperty(value = "长度公差下限", required = true)
    @NotNull
    private BigDecimal lenTolMin;
    @ApiModelProperty(value = "头部试材长度", required = true)
    @NotNull
    private BigDecimal sampleLenHead;
    @ApiModelProperty(value = "尾部试材长度", required = true)
    @NotNull
    private BigDecimal sampleLenTail;
    @ApiModelProperty(value = "宽度余量", required = true)
    @NotNull
    private BigDecimal widthAddv;
    @ApiModelProperty(value = "楔形板代码", required = true)
    @NotBlank
    private String shpCode;
    @ApiModelProperty(value = "船体分段号")
    private String hullSectionNo;
    @ApiModelProperty(value = "是否分段管理")
    private String sectionManage;
    @ApiModelProperty(value = "二次开坯母材合同标记", required = true)
    @NotNull
    private Long twoRollFlag;
    @ApiModelProperty(value = "二次开坯目标合同标记", required = true)
    @NotNull
    private Long twoRollOrderFlag;
    @ApiModelProperty(value = "试材采取方式代码", required = true)
    @NotBlank
    private String sampleModeCode;
    @ApiModelProperty(value = "取样方式代码", required = true)
    @NotBlank
    private String pickPatternCode;
    @ApiModelProperty(value = "验收机关代码", required = true)
    @NotBlank
    private String accpAuthCode;
    @ApiModelProperty(value = "验收方式代码", required = true)
    @NotBlank
    private String accptModeCode;
    @ApiModelProperty(value = "厚板会检方式代码", required = true)
    @NotBlank
    private String checkMethodCode;
    @ApiModelProperty(value = "会检材标记", required = true)
    @NotNull
    private Long sampleCheckFlag;
    @ApiModelProperty(value = "制品记号（试验片SR）", required = true)
    @NotBlank
    private String prodSrMark;
    @ApiModelProperty(value = "制品记号（边部形态）", required = true)
    @NotBlank
    private String prodSideMark;
    @ApiModelProperty(value = "制品记号（抛丸涂漆）", required = true)
    @NotBlank
    private String prodShotMark;
    @ApiModelProperty(value = "制品记号（试验片正火）", required = true)
    @NotBlank
    private String prodNMark;
    @ApiModelProperty(value = "制品记号（试验片淬火）", required = true)
    @NotBlank
    private String prodQMark;
    @ApiModelProperty(value = "制品记号（试验片回火）", required = true)
    @NotBlank
    private String prodTMark;
    @ApiModelProperty(value = "制品记号（试验片退火）", required = true)
    @NotBlank
    private String prodAMark;
    @ApiModelProperty(value = "工序记号（超声探伤）", required = true)
    @NotBlank
    private String backlogUtMark;
    @ApiModelProperty(value = "工序记号（正火）", required = true)
    @NotBlank
    private String backlogNMark;
    @ApiModelProperty(value = "工序记号（淬火）", required = true)
    @NotBlank
    private String backlogQMark;
    @ApiModelProperty(value = "工序记号（回火）", required = true)
    @NotBlank
    private String backlogTMark;
    @ApiModelProperty(value = "工序记号（退火）", required = true)
    @NotBlank
    private String backlogAMark;
    @ApiModelProperty(value = "工序记号（脱磁）", required = true)
    @NotBlank
    private String backlogDemagMark;
    @ApiModelProperty(value = "工序记号（PT探伤）", required = true)
    @NotBlank
    private String backlogPtMark;
    @ApiModelProperty(value = "工序记号（MT探伤）", required = true)
    @NotBlank
    private String backlogMtMark;
    @ApiModelProperty(value = "工序记号（TMCP）", required = true)
    @NotBlank
    private String backlogTmcpMark;
    @ApiModelProperty(value = "涂漆标志，0为不喷，1为厂内喷漆，2为厂外喷漆", required = true)
    @NotBlank
    private String needLecquering;
    @ApiModelProperty(value = "抛丸涂漆代码", required = true)
    @NotBlank
    private String shotPaintCode;
    @ApiModelProperty(value = "奉送样标记代码", required = true)
    @NotBlank
    private String giveSampleCode;
    @ApiModelProperty(value = "奉送试材长度", required = true)
    @NotNull
    private BigDecimal sampleLenGive;
    @ApiModelProperty(value = "成品抛丸标记", required = true)
    @NotNull
    private Long shotFlag;
    @ApiModelProperty(value = "切边标记代码", required = true)
    @NotBlank
    private String trimCode;
    @ApiModelProperty(value = "抗拉强度最大值", required = true)
    @NotNull
    private BigDecimal tsMax;
    @ApiModelProperty(value = "抗拉强度最小值", required = true)
    @NotNull
    private BigDecimal tsMin;
    @ApiModelProperty(value = "产品密度", required = true)
    @NotNull
    private BigDecimal prodDensity;
    @ApiModelProperty(value = "试样标记", required = true)
    @NotBlank
    private String diFlag;
    @ApiModelProperty(value = "是否钢锭轧制")
    private String ingotRoll;
    @ApiModelProperty(value = "特殊喷印要求")
    private String specialPrint;
    
    @ApiModelProperty(value = "工程代码")
    private String projectCode ;
    
    @ApiModelProperty(value = "计重方式代码")
    private String wtMethodCode ;
    
    @ApiModelProperty(value = "租户ID", required = true)
    @NotNull
    private Long tenantId;
    @ApiModelProperty(value = "行版本号，用来处理锁", required = true)
    @NotNull
    private Long objectVersionNumber;

    @Transient
    @ApiModelProperty(value = "未编计划数量")
    private Long notUserOderQty;
    
    @ApiModelProperty(value = "")
    private String attribute1;
    @ApiModelProperty(value = "")
    private String attribute2;
    @ApiModelProperty(value = "")
    private String attribute3;
    @ApiModelProperty(value = "")
    private String attribute4;
    @ApiModelProperty(value = "")
    private String attribute5;

}
