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

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;

/**
 * 合同产线工艺参数表
 *
 * @author 曾俊 jun.zeng@hand-china.com 2024-07-29 16:24:25
 */
@Setter
@Getter
@ApiModel("合同产线工艺参数表")
@VersionAudit
@ModifyAudit
@JsonInclude(value = JsonInclude.Include.NON_NULL)
@Table(name = "PM_CONT_MSC_TECH")
public class PmContMscTech extends AuditDomain implements Serializable {

    private static final long serialVersionUID = 1347801768663397696L;

    public static final String FIELD_CONT_MSC_ID = "contMscId";
    public static final String FIELD_ORDER_NO = "orderNo";
    public static final String FIELD_PRO_CONT_ID = "proContId";
    public static final String FIELD_MSC_LINE_NO = "mscLineNo";
    public static final String FIELD_PLATE_PD_QTY = "platePdQty";
    public static final String FIELD_SLAB_PD_QTY = "slabPdQty";
    public static final String FIELD_CC_PD_QTY = "ccPdQty";
    public static final String FIELD_WHOLE_BACKLOG = "wholeBacklog";
    public static final String FIELD_WHOLE_BACKLOG_CODE = "wholeBacklogCode";
    public static final String FIELD_ST_NO = "stNo";
    public static final String FIELD_ST_NO1 = "stNo1";
    public static final String FIELD_ST_NO2 = "stNo2";
    public static final String FIELD_ST_NO3 = "stNo3";
    public static final String FIELD_ST_NO4 = "stNo4";
    public static final String FIELD_ST_NO5 = "stNo5";
    public static final String FIELD_ST_NO6 = "stNo6";
    public static final String FIELD_ST_NO7 = "stNo7";
    public static final String FIELD_ST_NO8 = "stNo8";
    public static final String FIELD_ST_NO9 = "stNo9";
    public static final String FIELD_SLAB_PLACE_STD = "slabPlaceStd";
    public static final String FIELD_SLAB_FINISH_CODE = "slabFinishCode";
    public static final String FIELD_FLAME_CLEAN_DIV = "flameCleanDiv";
    public static final String FIELD_SLAB_DEST = "slabDest";
    public static final String FIELD_EXPAND_QUOT = "expandQuot";
    public static final String FIELD_AD_TYPE_CODE = "adTypeCode";
    public static final String FIELD_PLATE_DT_CODE = "plateDtCode";
    public static final String FIELD_GAUGE_MUL_MIN1 = "gaugeMulMin1";
    public static final String FIELD_MIN_CR1_THICK = "minCr1Thick";
    public static final String FIELD_ROLL_DIRECT_CODE = "rollDirectCode";
    public static final String FIELD_CTRL_ROLL_CODE = "ctrlRollCode";
    public static final String FIELD_CTRL_ROLL_CODE1 = "ctrlRollCode1";
    public static final String FIELD_CTRL_ROLL_CODE34 = "ctrlRollCode34";
    public static final String FIELD_AD_MODE_CODE = "adModeCode";
    public static final String FIELD_AD_MODE_CODE34 = "adModeCode34";
    public static final String FIELD_ROLL_MODE = "rollMode";
    public static final String FIELD_COMPRESS_MIN = "compressMin";
    public static final String FIELD_MULTI_PLATE_FLAG = "multiPlateFlag";
    public static final String FIELD_RF_PATH = "rfPath";
    public static final String FIELD_FUR_TYPE = "furType";
    public static final String FIELD_WIDEN_MIN = "widenMin";
    public static final String FIELD_MIDDLE_COOL_MODE = "middleCoolMode";
    public static final String FIELD_MAX_MIDDLE_COOL_SPEED = "maxMiddleCoolSpeed";
    public static final String FIELD_HOT_RECTIFY_FLAG = "hotRectifyFlag";
    public static final String FIELD_HOT_RECTIFY_METHOD_CODE = "hotRectifyMethodCode";
    public static final String FIELD_HOT_SEND_DIV = "hotSendDiv";
    public static final String FIELD_HOT_CHARGE_FLAG = "hotChargeFlag";
    public static final String FIELD_G_FLAG = "gFlag";
    public static final String FIELD_CS_FLAG = "csFlag";
    public static final String FIELD_DSS_FLAG = "dssFlag";
    public static final String FIELD_SS_FLAG = "ssFlag";
    public static final String FIELD_DS_FLAG = "dsFlag";
    public static final String FIELD_HEAD_CUT = "headCut";
    public static final String FIELD_TAIL_CUT = "tailCut";
    public static final String FIELD_ULT_DETECT_METHOD_CODE = "ultDetectMethodCode";
    public static final String FIELD_ULT_STG_CODE = "ultStgCode";
    public static final String FIELD_ULT_CODE = "ultCode";
    public static final String FIELD_COOL_CODE = "coolCode";
    public static final String FIELD_CUT_MODE_CODE = "cutModeCode";
    public static final String FIELD_WHOLE_HEAT_TREATMENT_TYPE = "wholeHeatTreatmentType";
    public static final String FIELD_HEAT_TREAT_MODE = "heatTreatMode";
    
    public static final String FIELD_KEEP_TEMP_AIM = "keepTempAim";
    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，主键")
    @Id
    @GeneratedValue
    private Long contMscId;
    @ApiModelProperty(value = "合同号", required = true)
    @NotBlank
    private String orderNo;
    @ApiModelProperty(value = "关联生产合同主表主键", required = true)
    @NotNull
    private Long proContId;
    @ApiModelProperty(value = "设计产线号")
    private String mscLineNo;
    @ApiModelProperty(value = "余材钢板组板合同小板数")
    private BigDecimal platePdQty;
    @ApiModelProperty(value = "余材板坯组板合同小板数")
    private BigDecimal slabPdQty;
    @ApiModelProperty(value = "出钢材组板合同小板数")
    private BigDecimal ccPdQty;
    @ApiModelProperty(value = "全程工序途径码", required = true)
    @NotBlank
    private String wholeBacklog;
    @ApiModelProperty(value = "全程工序代码")
    private String wholeBacklogCode;
    @ApiModelProperty(value = "出钢记号", required = true)
    @NotBlank
    private String stNo;
    @ApiModelProperty(value = "副出钢记号1", required = true)
    @NotBlank
    private String stNo1;
    @ApiModelProperty(value = "副出钢记号2", required = true)
    @NotBlank
    private String stNo2;
    @ApiModelProperty(value = "副出钢记号3", required = true)
    @NotBlank
    private String stNo3;
    @ApiModelProperty(value = "副出钢记号4", required = true)
    @NotBlank
    private String stNo4;
    @ApiModelProperty(value = "副出钢记号5", required = true)
    @NotBlank
    private String stNo5;
    @ApiModelProperty(value = "副出钢记号6", required = true)
    @NotBlank
    private String stNo6;
    @ApiModelProperty(value = "副出钢记号7", required = true)
    @NotBlank
    private String stNo7;
    @ApiModelProperty(value = "副出钢记号8", required = true)
    @NotBlank
    private String stNo8;
    @ApiModelProperty(value = "副出钢记号9", required = true)
    @NotBlank
    private String stNo9;
    @ApiModelProperty(value = "板坯位置充当标准", required = true)
    @NotBlank
    private String slabPlaceStd;
    @ApiModelProperty(value = "板坯精整基准代码", required = true)
    @NotBlank
    private String slabFinishCode;
    @ApiModelProperty(value = "厚板板坯火焰清理区分", required = true)
    @NotBlank
    private String flameCleanDiv;
    @ApiModelProperty(value = "板坯去向", required = true)
    @NotBlank
    private String slabDest;
    @ApiModelProperty(value = "线膨胀系数", required = true)
    @NotNull
    private BigDecimal expandQuot;
    @ApiModelProperty(value = "AD类型代码", required = true)
    @NotBlank
    private String adTypeCode;
    @ApiModelProperty(value = "厚板流向代码", required = true)
    @NotBlank
    private String plateDtCode;
    @ApiModelProperty(value = "第一控轧点厚度下限倍数", required = true)
    @NotNull
    private BigDecimal gaugeMulMin1;
    @ApiModelProperty(value = "第一控轧点厚度最小值", required = true)
    @NotNull
    private BigDecimal minCr1Thick;
    @ApiModelProperty(value = "轧制方向代码", required = true)
    @NotBlank
    private String rollDirectCode;
    @ApiModelProperty(value = "控轧代码", required = true)
    @NotBlank
    private String ctrlRollCode;
    @ApiModelProperty(value = "控轧代码第一位", required = true)
    @NotBlank
    private String ctrlRollCode1;
    @ApiModelProperty(value = "控轧代码第34位", required = true)
    @NotBlank
    private String ctrlRollCode34;
    @ApiModelProperty(value = "AD控制模式代码", required = true)
    @NotBlank
    private String adModeCode;
    @ApiModelProperty(value = "AD控制模式代码第34位", required = true)
    @NotBlank
    private String adModeCode34;
    @ApiModelProperty(value = "轧制方式", required = true)
    @NotBlank
    private String rollMode;
    @ApiModelProperty(value = "压缩比下限", required = true)
    @NotNull
    private BigDecimal compressMin;
    @ApiModelProperty(value = "轧制倍尺可否标记", required = true)
    @NotNull
    private Long multiPlateFlag;
    @ApiModelProperty(value = "精炼路径代码", required = true)
    @NotBlank
    private String rfPath;
    @ApiModelProperty(value = "加热炉类型", required = true)
    @NotBlank
    private String furType;
    @ApiModelProperty(value = "展宽比下限", required = true)
    @NotNull
    private BigDecimal widenMin;
    @ApiModelProperty(value = "中间冷却模式", required = true)
    @NotBlank
    private String middleCoolMode;
    @ApiModelProperty(value = "中间冷却最大冷却速度", required = true)
    @NotNull
    private BigDecimal maxMiddleCoolSpeed;
    @ApiModelProperty(value = "热矫可否", required = true)
    @NotNull
    private Long hotRectifyFlag;
    @ApiModelProperty(value = "热矫方法代码", required = true)
    @NotBlank
    private String hotRectifyMethodCode;
    @ApiModelProperty(value = "热送标记", required = true)
    @NotBlank
    private String hotSendDiv;
    @ApiModelProperty(value = "热装标记", required = true)
    @NotNull
    private Long hotChargeFlag;
    @ApiModelProperty(value = "气切可否", required = true)
    @NotNull
    private Long gFlag;
    @ApiModelProperty(value = "CS可否", required = true)
    @NotNull
    private Long csFlag;
    @ApiModelProperty(value = "DSS可否", required = true)
    @NotNull
    private Long dssFlag;
    @ApiModelProperty(value = "SS可否", required = true)
    @NotNull
    private Long ssFlag;
    @ApiModelProperty(value = "DS可否", required = true)
    @NotNull
    private Long dsFlag;
    @ApiModelProperty(value = "头部切舍量", required = true)
    @NotNull
    private BigDecimal headCut;
    @ApiModelProperty(value = "尾部切舍量", required = true)
    @NotNull
    private BigDecimal tailCut;
    @ApiModelProperty(value = "探伤方式代码", required = true)
    @NotBlank
    private String ultDetectMethodCode;
    @ApiModelProperty(value = "超声探伤时期代码", required = true)
    @NotBlank
    private String ultStgCode;
    @ApiModelProperty(value = "超声探伤代码", required = true)
    @NotBlank
    private String ultCode;
    @ApiModelProperty(value = "钢板缓冷代码", required = true)
    @NotBlank
    private String coolCode;
    @ApiModelProperty(value = "切断方式代码", required = true)
    @NotBlank
    private String cutModeCode;
    @ApiModelProperty(value = "全程热处理模式", required = true)
    @NotBlank
    private String wholeHeatTreatmentType;
    
    @ApiModelProperty(value = "热处理模式", required = true)
    @NotBlank
    private String heatTreatMode;

    @ApiModelProperty(value = "保温温度目标值", required = true)
    @NotNull
    private BigDecimal keepTempAim;
    @ApiModelProperty(value = "租户ID", required = true)
    @NotNull
    private Long tenantId;
    @ApiModelProperty(value = "行版本号，用来处理锁", required = true)
    @NotNull
    private Long objectVersionNumber;

    @ApiModelProperty(value = "板坯位置代码")
    private String slabPlaceCode;

    @ApiModelProperty(value = "板坯厚度下限")
    private BigDecimal slabThkMin;

    @ApiModelProperty(value = "板坯厚度上限")
    private BigDecimal slabThkMax;
    
    @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;

}
