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.util.Date;

/**
 * 命令板坯表(PmCmdSlabTra)实体类
 *
 * @author 纪文桃 wentao.ji01@hand-china.com
 * @since 2024-11-28 17:19:48
 */

@Getter
@Setter
@ApiModel("命令板坯表")
@VersionAudit
@ModifyAudit
@JsonInclude(value = JsonInclude.Include.NON_NULL)
@Table(name = "PM_CMD_SLAB_TRA")
public class PmCmdSlabTra extends AuditDomain {
    private static final long serialVersionUID = 623459669582726645L;

    public static final String FIELD_TRA_ID = "traId";
    public static final String FIELD_OPERATION_TYPE = "operationType";
    public static final String FIELD_OPERATION_USER = "operationUser";
    public static final String FIELD_OPERATION_TIME = "operationTime";
    public static final String FIELD_PM_CMD_SLAB_ID = "pmCmdSlabId";
    public static final String FIELD_PONO_SLAB_NO = "ponoSlabNo";
    public static final String FIELD_TMP_SLAB_NO = "tmpSlabNo";
    public static final String FIELD_PD_BACKLOG_SEQ = "pdBacklogSeq";
    public static final String FIELD_PD_BACKLOG_CODE = "pdBacklogCode";
    public static final String FIELD_SLAB_NO = "slabNo";
    public static final String FIELD_VIRTUAL_SLAB_NO = "virtualSlabNo";
    public static final String FIELD_PD_STATUS_HP = "pdStatusHp";
    public static final String FIELD_SHORT_SLAB_NUM_IN_LONG = "shortSlabNumInLong";
    public static final String FIELD_BIG_PLATE_NUM = "bigPlateNum";
    public static final String FIELD_SLAB_DIV_NO = "slabDivNo";
    public static final String FIELD_ORDER_NUM_IN_PLATE = "orderNumInPlate";
    public static final String FIELD_ORDER_NO_AXIS = "orderNoAxis";
    public static final String FIELD_ORDER_REMAIN_DIV = "orderRemainDiv";
    public static final String FIELD_MAT_DESIGN_KIND = "matDesignKind";
    public static final String FIELD_PROD_CODE_HP = "prodCodeHp";
    public static final String FIELD_SG_SIGN = "sgSign";
    public static final String FIELD_ST_NO = "stNo";
    public static final String FIELD_SLAB_HT_FLAG = "slabHtFlag";
    public static final String FIELD_PRE_CLEAN_SLAB_THICK = "preCleanSlabThick";
    public static final String FIELD_PRE_CLEAN_SLAB_WIDTH = "preCleanSlabWidth";
    public static final String FIELD_PRE_CLEAN_SLAB_LEN = "preCleanSlabLen";
    public static final String FIELD_PRE_CLEAN_SLAB_MAX_LEN = "preCleanSlabMaxLen";
    public static final String FIELD_PRE_CLEAN_SLAB_MIN_LEN = "preCleanSlabMinLen";
    public static final String FIELD_PRE_CLEAN_SLAB_WT = "preCleanSlabWt";
    public static final String FIELD_PRE_CLEAN_SLAB_MAX_WT = "preCleanSlabMaxWt";
    public static final String FIELD_PRE_CLEAN_SLAB_MIN_WT = "preCleanSlabMinWt";
    public static final String FIELD_MOLD_THICK = "moldThick";
    public static final String FIELD_MOLD_WID = "moldWid";
    public static final String FIELD_INFUR_SLAB_THICK = "infurSlabThick";
    public static final String FIELD_INFUR_SLAB_WID = "infurSlabWid";
    public static final String FIELD_INFUR_SLAB_LEN = "infurSlabLen";
    public static final String FIELD_INFUR_SLAB_MAX_LEN = "infurSlabMaxLen";
    public static final String FIELD_INFUR_SLAB_MIN_LEN = "infurSlabMinLen";
    public static final String FIELD_INFUR_SLAB_WT = "infurSlabWt";
    public static final String FIELD_INFUR_SLAB_MAX_WT = "infurSlabMaxWt";
    public static final String FIELD_INFUR_SLAB_MIN_WT = "infurSlabMinWt";
    public static final String FIELD_NEED_SLAB_LEN = "needSlabLen";
    public static final String FIELD_NEED_SLAB_WT = "needSlabWt";
    public static final String FIELD_FIX_SLAB_LEN_FLAG = "fixSlabLenFlag";
    public static final String FIELD_FIX_SLAB_LEN = "fixSlabLen";
    public static final String FIELD_ROLL_MAX_PRE_CLEAN_SLAB_LEN = "rollMaxPreCleanSlabLen";
    public static final String FIELD_ROLL_MAX_PRE_CLEAN_SLAB_WT = "rollMaxPreCleanSlabWt";
    public static final String FIELD_SLAB_PLACE_CODE = "slabPlaceCode";
    public static final String FIELD_HP_FLAME_CLEAN_DIV = "hpFlameCleanDiv";
    public static final String FIELD_SLAB_FINISH_CODE = "slabFinishCode";
    public static final String FIELD_SLAB_CLEAN_WT_LOSS_RATE_ST = "slabCleanWtLossRateSt";
    public static final String FIELD_SLAB_CLEAN_WT_LOSS_RATE_FR = "slabCleanWtLossRateFr";
    public static final String FIELD_COOL_CODE = "coolCode";
    public static final String FIELD_LAST_SLAB_FLAG = "lastSlabFlag";
    public static final String FIELD_ADD_SLAB_FLAG = "addSlabFlag";
    public static final String FIELD_SLAB_PRE_PROC1 = "slabPreProc1";
    public static final String FIELD_SLAB_PRE_PROC2 = "slabPreProc2";
    public static final String FIELD_SLAB_PRE_PROC3 = "slabPreProc3";
    public static final String FIELD_SLAB_PRE_PROC4 = "slabPreProc4";
    public static final String FIELD_SLAB_PRE_PROC5 = "slabPreProc5";
    public static final String FIELD_SLAB_PRE_PROC6 = "slabPreProc6";
    public static final String FIELD_SLAB_PRE_PROC7 = "slabPreProc7";
    public static final String FIELD_SLAB_PRE_PROC8 = "slabPreProc8";
    public static final String FIELD_SLAB_PRE_PROC9 = "slabPreProc9";
    public static final String FIELD_SLAB_PRE_PROC10 = "slabPreProc10";
    public static final String FIELD_SLAB_PRE_PROC11 = "slabPreProc11";
    public static final String FIELD_SLAB_PRE_PROC12 = "slabPreProc12";
    public static final String FIELD_SLAB_PRE_PROC13 = "slabPreProc13";
    public static final String FIELD_SLAB_PRE_PROC14 = "slabPreProc14";
    public static final String FIELD_SLAB_PRE_PROC15 = "slabPreProc15";
    public static final String FIELD_SLAB_STACK_INDICATE = "slabStackIndicate";
    public static final String FIELD_HOT_SEND_DIV = "hotSendDiv";
    public static final String FIELD_FUR_TYPE = "furType";
    public static final String FIELD_TRANS_FLAG = "transFlag";
    public static final String FIELD_HOT_CHARGE_FLAG = "hotChargeFlag";
    public static final String FIELD_ROLL_PLAN_NO = "rollPlanNo";
    public static final String FIELD_NEW_TEST_NO = "newTestNo";
    public static final String FIELD_FORM_PLATE_TIME = "formPlateTime";
    public static final String FIELD_SHP_CODE = "shpCode";
    public static final String FIELD_PONO = "pono";
    public static final String FIELD_IG_MAT_DESIGN_KIND = "igMatDesignKind";
    public static final String FIELD_INGOT_TYPE = "ingotType";
    public static final String FIELD_MSC_LINE_NO = "mscLineNo";
    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";

    @ApiModelProperty("履历主键ID")
    @Id
    @GeneratedValue
    private Long traId;

    @ApiModelProperty(value = "操作类型(I:插入，U:修改，D:删除)", required = true)
    @NotBlank
    private String operationType;

    @ApiModelProperty(value = "操作者", required = true)
    @NotBlank
    private String operationUser;

    @ApiModelProperty(value = "操作时间", required = true)
    @NotNull
    private Date operationTime;

    @ApiModelProperty(value = "${column.comment}", required = true)
    @NotNull
    private Long pmCmdSlabId;

    @ApiModelProperty(value = "命令板坯号")
    private String ponoSlabNo;

    @ApiModelProperty(value = "临时命令板坯号")
    private String tmpSlabNo;

    @ApiModelProperty(value = "组批工序顺序号")
    private Long pdBacklogSeq;

    @ApiModelProperty(value = "组批工序代码")
    private String pdBacklogCode;

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

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

    @ApiModelProperty(value = "厚板组板状态")
    private String pdStatusHp;

    @ApiModelProperty(value = "长板坯含短板坯块数")
    private Long shortSlabNumInLong;

    @ApiModelProperty(value = "长板坯含大板块数")
    private Long bigPlateNum;

    @ApiModelProperty(value = "板坯分割号")
    private Long slabDivNo;

    @ApiModelProperty(value = "板内合同个数")
    private Long orderNumInPlate;

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

    @ApiModelProperty(value = "合同材/预备材区分")
    private String orderRemainDiv;

    @ApiModelProperty(value = "材料设计种类")
    private String matDesignKind;

    @ApiModelProperty(value = "厚板品种代码")
    private String prodCodeHp;

    @ApiModelProperty(value = "牌号（钢级）")
    private String sgSign;

    @ApiModelProperty(value = "出钢记号")
    private String stNo;

    @ApiModelProperty(value = "头尾板坯标记")
    private String slabHtFlag;

    @ApiModelProperty(value = "清理前板坯厚度")
    private Long preCleanSlabThick;

    @ApiModelProperty(value = "清理前板坯宽度")
    private Long preCleanSlabWidth;

    @ApiModelProperty(value = "清理前板坯长度")
    private Long preCleanSlabLen;

    @ApiModelProperty(value = "清理前板坯最大长度")
    private Long preCleanSlabMaxLen;

    @ApiModelProperty(value = "清理前板坯最小长度")
    private Long preCleanSlabMinLen;

    @ApiModelProperty(value = "清理前板坯重量")
    private Long preCleanSlabWt;

    @ApiModelProperty(value = "清理前板坯最大重量")
    private Long preCleanSlabMaxWt;

    @ApiModelProperty(value = "清理前板坯最小重量")
    private Long preCleanSlabMinWt;

    @ApiModelProperty(value = "结晶器厚度")
    private Long moldThick;

    @ApiModelProperty(value = "结晶器宽度")
    private Long moldWid;

    @ApiModelProperty(value = "进加热炉板坯厚度")
    private Long infurSlabThick;

    @ApiModelProperty(value = "进加热炉板坯宽度")
    private Long infurSlabWid;

    @ApiModelProperty(value = "进加热炉板坯长度")
    private Long infurSlabLen;

    @ApiModelProperty(value = "进加热炉板坯最大长度")
    private Long infurSlabMaxLen;

    @ApiModelProperty(value = "进加热炉板坯最小长度")
    private Long infurSlabMinLen;

    @ApiModelProperty(value = "进加热炉板坯重量")
    private Long infurSlabWt;

    @ApiModelProperty(value = "进加热炉板坯最大重量")
    private Long infurSlabMaxWt;

    @ApiModelProperty(value = "进加热炉板坯最小重量")
    private Long infurSlabMinWt;

    @ApiModelProperty(value = "必要板坯长度")
    private Long needSlabLen;

    @ApiModelProperty(value = "必要板坯重量")
    private Long needSlabWt;

    @ApiModelProperty(value = "固定板坯长度标记")
    private String fixSlabLenFlag;

    @ApiModelProperty(value = "固定板坯长度")
    private Long fixSlabLen;

    @ApiModelProperty(value = "最大轧件对应的清理前板坯长度")
    private Long rollMaxPreCleanSlabLen;

    @ApiModelProperty(value = "最大轧件对应的清理前板坯重量")
    private Long rollMaxPreCleanSlabWt;

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

    @ApiModelProperty(value = "厚板板坯火焰清理区分")
    private String hpFlameCleanDiv;

    @ApiModelProperty(value = "板坯精整基准代码")
    private String slabFinishCode;

    @ApiModelProperty(value = "板坯清理重量减少率_静态表")
    private Long slabCleanWtLossRateSt;

    @ApiModelProperty(value = "板坯清理重量减少率_画面")
    private Long slabCleanWtLossRateFr;

    @ApiModelProperty(value = "钢板缓冷代码")
    private String coolCode;

    @ApiModelProperty(value = "最后短板坯标记")
    private String lastSlabFlag;

    @ApiModelProperty(value = "附加板坯标记")
    private String addSlabFlag;

    @ApiModelProperty(value = "板坯预定通过工序1")
    private String slabPreProc1;

    @ApiModelProperty(value = "板坯预定通过工序2")
    private String slabPreProc2;

    @ApiModelProperty(value = "板坯预定通过工序3")
    private String slabPreProc3;

    @ApiModelProperty(value = "板坯预定通过工序4")
    private String slabPreProc4;

    @ApiModelProperty(value = "板坯预定通过工序5")
    private String slabPreProc5;

    @ApiModelProperty(value = "板坯预定通过工序6")
    private String slabPreProc6;

    @ApiModelProperty(value = "板坯预定通过工序7")
    private String slabPreProc7;

    @ApiModelProperty(value = "板坯预定通过工序8")
    private String slabPreProc8;

    @ApiModelProperty(value = "板坯预定通过工序9")
    private String slabPreProc9;

    @ApiModelProperty(value = "板坯预定通过工序10")
    private String slabPreProc10;

    @ApiModelProperty(value = "板坯预定通过工序11")
    private String slabPreProc11;

    @ApiModelProperty(value = "板坯预定通过工序12")
    private String slabPreProc12;

    @ApiModelProperty(value = "板坯预定通过工序13")
    private String slabPreProc13;

    @ApiModelProperty(value = "板坯预定通过工序14")
    private String slabPreProc14;

    @ApiModelProperty(value = "板坯预定通过工序15")
    private String slabPreProc15;

    @ApiModelProperty(value = "板坯堆放指示")
    private String slabStackIndicate;

    @ApiModelProperty(value = "热送区分")
    private String hotSendDiv;

    @ApiModelProperty(value = "加热炉类型")
    private String furType;

    @ApiModelProperty(value = "转置标记")
    private String transFlag;

    @ApiModelProperty(value = "热装标记")
    private String hotChargeFlag;

    @ApiModelProperty(value = "轧制计划号")
    private String rollPlanNo;

    @ApiModelProperty(value = "新试号")
    private String newTestNo;

    @ApiModelProperty(value = "组板时间")
    private Date formPlateTime;

    @ApiModelProperty(value = "钢板形状代码")
    private String shpCode;

    @ApiModelProperty(value = "制造命令号")
    private String pono;

    @ApiModelProperty(value = "钢锭材料设计种类")
    private String igMatDesignKind;

    @ApiModelProperty(value = "锭坯型")
    private String ingotType;

    @ApiModelProperty(value = "产线号")
    private String mscLineNo;

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

    @ApiModelProperty(value = "是否合并板坯(N:未合并、A:合并后、B：合并前那两条)")
    private String isMerge;

    private String attribute1;

    private String attribute2;

    private String attribute3;

    private String attribute4;

    private String attribute5;


}

