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 javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;


/**
 * 炼钢连铸制造命令板坯-接口表(PmSteelCastSlabItf)实体类
 *
 * @author jie.yang04@hand-chian.com
 * @since 2024-10-17 15:17:13
 */

@Getter
@Setter
@ApiModel("炼钢连铸制造命令板坯-接口表")
@VersionAudit
@ModifyAudit
@JsonInclude(value = JsonInclude.Include.NON_NULL)
@Table(name = "PM_STEEL_CAST_SLAB_ITF")
public class PmSteelCastSlabItf extends AuditDomain implements Serializable {
    private static final long serialVersionUID = 876801098083810677L;

    public static final String FIELD_ITF_ID = "itfId";
    public static final String FIELD_MAIN_BACKLOG_CODE = "mainBacklogCode";
    public static final String FIELD_SLAB_NO = "slabNo";
    public static final String FIELD_CAST_LOT_NO = "castLotNo";
    public static final String FIELD_PONO = "pono";
    public static final String FIELD_STRAND_NO = "strandNo";
    public static final String FIELD_BILLET_TYPE = "billetType";
    public static final String FIELD_SLAB_GROUP_NO = "slabGroupNo";
    public static final String FIELD_SLAB_NUM = "slabNum";
    public static final String FIELD_VARIETY_CODE = "varietyCode";
    public static final String FIELD_STEEL_CODE = "steelCode";
    public static final String FIELD_SLAB_THICK = "slabThick";
    public static final String FIELD_SLAB_WIDTH = "slabWidth";
    public static final String FIELD_SLAB_LEN = "slabLen";
    public static final String FIELD_SLAB_MAX_LEN = "slabMaxLen";
    public static final String FIELD_SLAB_MIN_LEN = "slabMinLen";
    public static final String FIELD_SLAB_WT = "slabWt";
    public static final String FIELD_SLAB_MAX_WT = "slabMaxWt";
    public static final String FIELD_SLAB_MIN_WT = "slabMinWt";
    public static final String FIELD_ORDER_LEN_MAX = "orderLenMax";
    public static final String FIELD_ORDER_LEN_MIN = "orderLenMin";
    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_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_ORDER_NO = "orderNo";
    public static final String FIELD_PLAN_TYPE = "planType";
    public static final String FIELD_SLAB_DEST = "slabDest";
    public static final String FIELD_HOT_SEND_FLAG = "hotSendFlag";
    public static final String FIELD_HOT_CHARGE_FLAG = "hotChargeFlag";
    public static final String FIELD_MEND_FLAG = "mendFlag";
    public static final String FIELD_SLAB_FINISH_CODE = "slabFinishCode";
    public static final String FIELD_FLAME_CLEAN_DIV = "flameCleanDiv";
    public static final String FIELD_NEW_TEST_NO = "newTestNo";
    public static final String FIELD_SHORT_CUT_FLAG = "shortCutFlag";
    public static final String FIELD_PREC_ROLL_PLAN_NO = "precRollPlanNo";
    public static final String FIELD_PREC_ROLL_SEQ_NO = "precRollSeqNo";
    public static final String FIELD_SLAB_COOL_CODE = "slabCoolCode";
    public static final String FIELD_ORDER_REMAIN_DIV = "orderRemainDiv";
    public static final String FIELD_STEEL_LATEST_DATE = "steelLatestDate";
    public static final String FIELD_ITF_BATCH_ID = "itfBatchId";
    public static final String FIELD_ITF_STATUS = "itfStatus";
    public static final String FIELD_ITF_MESSAGE = "itfMessage";
    public static final String FIELD_ITF_RETRY_TIMES = "itfRetryTimes";
    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 itfId;

    @ApiModelProperty(value = "厂别")
    private String mainBacklogCode;

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

    @ApiModelProperty(value = "CAST_LOT号")
    private String castLotNo;

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

    @ApiModelProperty(value = "流号")
    private String strandNo;

    @ApiModelProperty(value = "钢坯类型")
    private String billetType;

    @ApiModelProperty(value = "板坯组号")
    private Long slabGroupNo;

    @ApiModelProperty(value = "板坯块数")
    private String slabNum;

    @ApiModelProperty(value = "品种代码")
    private String varietyCode;

    @ApiModelProperty(value = "钢种代码")
    private String steelCode;

    @ApiModelProperty(value = "板坯厚度")
    private BigDecimal slabThick;

    @ApiModelProperty(value = "板坯宽度")
    private BigDecimal slabWidth;

    @ApiModelProperty(value = "板坯长度")
    private String slabLen;

    @ApiModelProperty(value = "板坯长度最大值")
    private String slabMaxLen;

    @ApiModelProperty(value = "板坯长度最小值")
    private String slabMinLen;

    @ApiModelProperty(value = "板坯重量")
    private BigDecimal slabWt;

    @ApiModelProperty(value = "板坯重量最大值")
    private BigDecimal slabMaxWt;

    @ApiModelProperty(value = "板坯重量最小值")
    private BigDecimal slabMinWt;

    @ApiModelProperty(value = "订货长度上限")
    private String orderLenMax;

    @ApiModelProperty(value = "订货长度下限")
    private String orderLenMin;

    @ApiModelProperty(value = "订货最大短尺")
    private String orderShortMax;

    @ApiModelProperty(value = "订货最小短尺")
    private String orderShortMin;

    @ApiModelProperty(value = "订货短尺率")
    private BigDecimal orderShortRate;

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

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

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

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

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

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

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

    @ApiModelProperty(value = "合同号")
    private String orderNo;

    @ApiModelProperty(value = "计划类型")
    private String planType;

    @ApiModelProperty(value = "板坯去向")
    private String slabDest;

    @ApiModelProperty(value = "热送标记")
    private String hotSendFlag;

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

    @ApiModelProperty(value = "修磨标志")
    private String mendFlag;

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

    @ApiModelProperty(value = "火焰清理区分")
    private String flameCleanDiv;

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

    @ApiModelProperty(value = "短尺坯切割标记")
    private String shortCutFlag;

    @ApiModelProperty(value = "预定轧制计划号")
    private String precRollPlanNo;

    @ApiModelProperty(value = "预定轧制计划顺序号")
    private String precRollSeqNo;

    @ApiModelProperty(value = "板坯冷却基准代码")
    private String slabCoolCode;

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

    @ApiModelProperty(value = "炼钢最晚结束日期")
    private String steelLatestDate;

    @ApiModelProperty(value = "接口表数据批次（Linux时间戳）")
    private Long itfBatchId;

    @ApiModelProperty(value = "接口表数据状态（N 未处理 P 处理中 S 处理成功 E 处理失败）")
    private String itfStatus;

    @ApiModelProperty(value = "接口表处理消息")
    private String itfMessage;

    @ApiModelProperty(value = "接口表重试次数")
    private Long itfRetryTimes;

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

    private String attribute1;

    private String attribute2;

    private String attribute3;

    private String attribute4;

    private String attribute5;


}

