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;


/**
 * 复合/叠轧坯基本信息表(PmCompositeSlab)实体类
 *
 * @author 纪文桃 wentao.ji01@hand-china.com
 * @since 2024-08-01 15:46:26
 */

@Getter
@Setter
@ApiModel("复合/叠轧坯基本信息表")
@VersionAudit
@ModifyAudit
@JsonInclude(value = JsonInclude.Include.NON_NULL)
@Table(name = "PM_COMPOSITE_SLAB")
public class PmCompositeSlab extends AuditDomain implements Serializable {
    private static final long serialVersionUID = 186778960164965336L;

    public static final String FIELD_SLAB_ID = "slabId";
    public static final String FIELD_SLAB_NO = "slabNo";
    public static final String FIELD_HEAT_NO = "heatNo";
    public static final String FIELD_PONO = "pono";
    public static final String FIELD_ACT_THICK = "actThick";
    public static final String FIELD_ACT_WIDTH = "actWidth";
    public static final String FIELD_ACT_LENGTH = "actLength";
    public static final String FIELD_ACT_WT = "actWt";
    public static final String FIELD_ROLL_TYPE = "rollType";
    public static final String FIELD_ROLL_AIM_THICK = "rollAimThick";
    public static final String FIELD_ROLL_AIM_WIDTH = "rollAimWidth";
    public static final String FIELD_STATUS_CODE = "statusCode";
    public static final String FIELD_SLAB_TYPE = "slabType";
    public static final String FIELD_DEST_STOCK_ID = "destStockId";
    public static final String FIELD_DEST_STOCK_CODE = "destStockCode";
    public static final String FIELD_FACTORY_CODE = "factoryCode";
    public static final String FIELD_FACTORY_NAME = "factoryName";
    public static final String FIELD_MSC_LINE_NO = "mscLineNo";
    public static final String FIELD_CORRECTION_FLAG = "correctionFlag";
    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_SAMPLE_LOT_NO = "sampleLotNo";

    @ApiModelProperty("表ID，主键")
    @Id
    @GeneratedValue
    private Long slabId;

    @ApiModelProperty(value = "复合/叠轧坯号", required = true)
    @NotBlank
    private String slabNo;

    @ApiModelProperty(value = "熔炼号")
    private String heatNo;

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

    @ApiModelProperty(value = "实际厚度")
    private BigDecimal actThick;

    @ApiModelProperty(value = "实际宽度")
    private BigDecimal actWidth;

    @ApiModelProperty(value = "实际长度")
    private BigDecimal actLength;

    @ApiModelProperty(value = "实际重量")
    private BigDecimal actWt;

    @ApiModelProperty(value = "轧制方式代码")
    private String rollType;

    @ApiModelProperty(value = "轧制目标厚度")
    private BigDecimal rollAimThick;

    @ApiModelProperty(value = "轧制目标宽度")
    private BigDecimal rollAimWidth;

    @ApiModelProperty(value = "状态代码")
    private String statusCode;

    @ApiModelProperty(value = "复合类型代码")
    private String slabType;

    @ApiModelProperty(value = "目的库区ID")
    private Long destStockId;

    @ApiModelProperty(value = "目的库区代码")
    private String destStockCode;

    @ApiModelProperty(value = "加工厂代码")
    private String factoryCode;

    @ApiModelProperty(value = "加工厂名称")
    private String factoryName;

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

    @ApiModelProperty(value = "返修标志（Y:表示返修，N表示正常复合)")
    private String correctionFlag;

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


    @ApiModelProperty(value = "试样号")
    private String sampleLotNo;

    private String attribute1;

    private String attribute2;

    private String attribute3;

    private String attribute4;

    private String attribute5;

}
