package com.xisc.pm.api.dto.model;

import lombok.Data;
import lombok.EqualsAndHashCode;

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

@Data
@EqualsAndHashCode(callSuper = false)
public class SlabInfoDO implements Serializable {

    /**
     * 板坯ID
     */
    private Long slabId;

    /**
     * 板坯号(炼钢产出时写)
     */
    private String slabNo;

    /**
     * 合同号(命令板坯号去生产组炉抓)
     */
    private String orderNo;

    /**
     * 制造命令号(炼钢产出时写)
     */
    private String pono;

    /**
     * 板坯类型(炼钢产出时写)
     */
    private String slabType;

    /**
     * 原合同号(默认空)
     */
    private String oldOrderNo;

    /**
     * 产线号(来自生产管理)
     */
    private String mscLineNo;

    /**
     * 状态代码(初始值2)
     */
    private String recSts;

    /**
     * 进程代码(炼钢产出默认A1A)
     */
    private String procCd;

    /**
     * 前进程代码(炼钢产出默认A1A)
     */
    private String befProcCd;

    /**
     * 年(制造命令号的年)
     */
    private String prodYear;

    /**
     * 上料时间(加热炉前上料写)
     */
    private Date loadingTime;

    /**
     * 外购板坯号(外购坯录入时候)
     */
    private String originSlabNo;

    /**
     * 当前计划号()
     */
    private String planNo;

    /**
     * 轧制计划号
     */
    private String rollPlanNo;

    /**
     * 厚板流向代码
     */
    private String plateDtCode;

    /**
     * 厚板品种代码()
     */
    private String prodCodeHp;

    /**
     * 材料来源代码(区分自产1，外购2)
     */
    private String slabOriginCode;

    /**
     * 材料状态码(炼钢产出默认20)
     */
    private String slabStatus;

    /**
     * 牌号代码(通过代表合同去质量抓)
     */
    private String stdSgCode;

    /**
     * 标准牌号(通过代表合同去质量抓)
     */
    private String sgSign;

    /**
     * 标准(通过合同去质量抓)
     */
    private String sgStd;

    /**
     * 原牌号代码(默认值为空)
     */
    private String oldStdSgCode;

    /**
     * 原标准(默认值为空)
     */
    private String oldSgStd;

    /**
     * 原牌号(默认值为空)
     */
    private String oldSgSign;

    /**
     * 出钢记号/内部钢种(炼钢产出写预定的，判钢后调用API更新)
     */
    private String stNo;

    /**
     * 原钢板号(默认空，材转坯记录)
     */
    private String oldPlateNo;

    /**
     * 原始板坯号(默认为空,二切记录)
     */
    private String oldSlabNo;

    /**
     * 前道工序机组(等待陈总确认)
     */
    private String acUnitCode;

    /**
     * 当前机组(默认为PRX)
     */
    private String unitCode;

    /**
     * 后道工序机组(默认为PRX)
     */
    private String preUnitCode;

    /**
     * 热处理去向1(合同去抓生产)
     */
    private String hotDest1;

    /**
     * 热处理去向2(合同去抓生产)
     */
    private String hotDest2;

    /**
     * 热处理去向3(合同去抓生产)
     */
    private String hotDest3;

    /**
     * 热处理去向4(合同去抓生产)
     */
    private String hotDest4;

    /**
     * 热处理去向5(合同去抓生产)
     */
    private String hotDest5;

    private String tranferFlag;

    /**
     * 热处理去向(合同去抓生产)
     */
    private String hotDest;

    /**
     * 板坯目标厚度(合同去抓生产)
     */
    private BigDecimal slabTargThk;

    /**
     * 板坯目标宽度(合同去抓生产)
     */
    private BigDecimal slabTargWid;

    /**
     * 板坯目标长度(合同去抓生产)
     */
    private BigDecimal slabTargLen;

    /**
     * 炼钢板坯厚度(炼钢产出 板坯厚度)
     */
    private BigDecimal slabActThk;

    /**
     * 炼钢板坯宽度(炼钢产出 板坯宽度)
     */
    private BigDecimal slabActWid;

    /**
     * 炼钢板坯长度(炼钢产出 板坯长度)
     */
    private BigDecimal slabActLen;

    /**
     * 炼钢板坯重量
     */
    private BigDecimal slabActWgt;

    /**
     * 板坯毛重(默认为0)
     */
    private BigDecimal slabGrossWgt;

    /**
     * 计重方式(理重:0   实重:1，炼钢产出默认为0)
     */
    private String wgtMode;

    /**
     * 生产时间(炼钢切断时间)
     */
    private Date prodTime;

    /**
     * 封锁标记(默认为空,轧钢提供接口供质量调用)
     */
    private String holdFlag;

    /**
     * 封锁原因代码(默认为空,轧钢提供接口供质量调用)
     */
    private String holdCauseCode;

    /**
     * 封锁时刻(默认为空,轧钢提供接口供质量调用)
     */
    private Date holdTime;

    /**
     * 封锁班次号(默认为空,轧钢提供接口供质量调用)
     */
    private String holdShiftNo;

    /**
     * 封锁责任者(默认为空,轧钢提供接口供质量调用)
     */
    private String holdMaker;

    /**
     * 释放时间(默认为空,轧钢提供接口供质量调用)
     */
    private Date relTime;

    /**
     * 释放责任者(默认为空,轧钢提供接口供质量调用)
     */
    private String relMaker;

    /**
     * 余材原因代码(默认为空,轧钢提供接口供质量调用)
     */
    private String remainCauseCode;

    /**
     * 余材判定时刻(默认为空,轧钢提供接口供质量调用)
     */
    private Date remainDecideTime;

    /**
     * 余材判定责任者(默认为空,轧钢提供接口供质量调用)
     */
    private String remainDecideMaker;

    /**
     * 余材判定代码(默认为空,轧钢提供接口供质量调用)
     */
    private String remainDecideCode;

    /**
     * 报废原因代码(默认为空,轧钢提供接口供质量调用)
     */
    private String scrapCauseCode;

    /**
     * 报废责任者(默认为空,轧钢提供接口供质量调用)
     */
    private String scrapMaker;

    /**
     * 报废时间(默认为空,轧钢提供接口供质量调用)
     */
    private Date scrapTime;

    /**
     * 表面判定代码(外卖默认为1，自用默认为0)(0未判,1合格，2不合格)
     */
    private String surfaceDecideCode;

    /**
     * 准发标志（0：正常，1：材料判断错误2：准发，红冲完成）
     */
    private String confmFlag;

    /**
     * 表面判定时间（外卖坯就是当前时间，自用默认为空）
     */
    private Date surfaceDecideTime;

    /**
     * 表面判定责任者(外卖的默认为空，手动判定记录工号)
     */
    private String surfaceDecideMaker;

    /**
     * 性能判定代码(默认为空,轧钢提供接口供质量调用)
     */
    private String pchJudgeCode;

    /**
     * 性能判定结果(默认为空,轧钢提供接口供质量调用)
     */
    private String pchJudgeResult;

    /**
     * 性能判定异常原因(默认为空,轧钢提供接口供质量调用)
     */
    private String pchJudgeAbn;

    /**
     * 性能判定时间(默认为空,轧钢提供接口供质量调用)
     */
    private Date pchJudgeTime;

    /**
     * 性能判定责任者(默认为空,轧钢提供接口供质量调用)
     */
    private String pchJudgeMaker;

    /**
     * 综合判定代码(默认为空,轧钢提供接口供质量调用)
     */
    private String complexDecideCode;

    /**
     * 综合判定时间(默认为空,轧钢提供接口供质量调用)
     */
    private Date complexDecideTime;

    /**
     * 综合判定责任者(默认为空,轧钢提供接口供质量调用)
     */
    private String complexDecideMaker;

    /**
     * 原综合判定代码(默认为空,轧钢提供接口供质量调用)
     */
    private String oldComplexDecideCode;

    /**
     * 原综合判定时刻(默认为空,轧钢提供接口供质量调用)
     */
    private Date oldComplexDecideTime;

    /**
     * 原综合判定责任人(默认为空,轧钢提供接口供质量调用)
     */
    private String oldComplexDecideMaker;

    /**
     * 计划钢种(炼钢产出写)
     */
    private String preStNo;

    /**
     * 熔炼号(炼钢产出写)
     */
    private String heatNo;

    /**
     * 板坯去向(用合同去生产取)
     */
    private String slabDest;

    /**
     * 热装标记(默认为空，轧钢计划时写)
     */
    private String hotChargeFlag;

    /**
     * 试验材号(默认为空，等待质量确认)
     */
    private String sampleMartNo;

    /**
     * 命令板坯号(炼钢产出写)
     */
    private String ponoSlab;

    /**
     * 切割块数(默认为1)
     */
    private Integer fixSlabNum;

    /**
     * 品质异常代码1(炼钢产出写)
     */
    private String abnrCode1;

    /**
     * 品质异常代码2(炼钢产出写)
     */
    private String abnrCode2;

    /**
     * 品质异常代码3(炼钢产出写)
     */
    private String abnrCode3;

    /**
     * 品质异常代码4(炼钢产出写)
     */
    private String abnrCode4;

    /**
     * 品质异常代码5(炼钢产出写)
     */
    private String abnrCode5;

    /**
     * 品质异常代码6(炼钢产出写)
     */
    private String abnrCode6;

    /**
     * 品质异常代码7(炼钢产出写)
     */
    private String abnrCode7;

    /**
     * 品质异常代码8(炼钢产出写)
     */
    private String abnrCode8;

    /**
     * 品质异常代码9(炼钢产出写)
     */
    private String abnrCode9;

    /**
     * 品质异常代码10(炼钢产出写)
     */
    private String abnrCode10;

    /**
     * 板坯TOP点确认标志(默认为1。炼钢和轧钢的交接)
     */
    private String slabtopFlag;

    /**
     * 板坯TOP点时间(默认当前时间)
     */
    private Date slabtopTime;

    /**
     * 长板坯标记(默认为空，生产余材组板更新)
     */
    private String slabFlag;

    /**
     * 火切计划号(板坯火切计划写)
     */
    private String secutPlanNo;

    /**
     * 小工序代码(来源生产)
     */
    private String subBacklogCode;

    /**
     * 小工序顺序号(初始值为1)
     */
    private Integer subBacklogSeq;

    /**
     * 后小工序代码(来源生产)
     */
    private String nextSubBacklogCode;

    /**
     * 后小工序顺序号(初始值2为2)
     */
    private Integer nextSubBacklogSeq;

    /**
     * BD材标记(来源生产,命令板坯去抓)
     */
    private String bdFlag;

    /**
     * 板坯返送时间(默认为空)
     */
    private Date slabReturnTime;

    /**
     * 板坯返送处理代码(默认为空)
     */
    private String slabReturnCode;

    /**
     * 板坯返送理由代码(默认为空)
     */
    private String slabReturnCauseCode;

    /**
     * 备注
     */
    private String remark;

    /**
     * 备用字段1
     */
    private String spareField1;

    /**
     * 备用字段2
     */
    private String spareField2;

    /**
     * 备用字段3
     */
    private String spareField3;

    /**
     * 备用字段4
     */
    private String spareField4;

    /**
     * 备用字段5
     */
    private String spareField5;

    /**
     * 备用字段6
     */
    private BigDecimal spareField6;

    /**
     * 备用字段7
     */
    private BigDecimal spareField7;

    /**
     * 备用字段8
     */
    private BigDecimal spareField8;

    /**
     * 备用字段9
     */
    private BigDecimal spareField9;

    /**
     * 备用字段10
     */
    private BigDecimal spareField10;

    /**
     * 租户ID
     */
    private Long tenantId;

    /**
     * 行版本号，用来处理锁
     */
    private BigDecimal objectVersionNumber;

    /**
     * 创建时间
     */
    private Date creationDate;

    /**
     * 创建人ID
     */
    private BigDecimal createdBy;

    /**
     * 最近更新人ID
     */
    private BigDecimal lastUpdatedBy;

    /**
     * 最近更新时间
     */
    private Date lastUpdateDate;

    /**
     * 试批组
     */
    private String smpGroup;

    /**
     * 外委标记(0:其他,1:外委)
     */
    private String outtrustFlag;

    /**
     * 第一次合同号(命令板坯号去生产组炉抓)
     */
    private String firstOrderNo;

    /**
     * 产品规范码(质量改判时写入,初始值空)
     */
    private String psc;

    /**
     * 产品最终用途码(质量改判时写入,初始值空)
     */
    private String apn;

    /**
     * 冶金规范码(质量改判时写入,初始值空)
     */
    private String msc;

    /**
     * 全程工序途经码（默认生产模块）
     */
    private String wholeBacklog;

    /**
     * 全程工序顺序号（各模块）
     */
    private Integer wholeBacklogSeq;

    /**
     * 全程工序代码（各模块）
     */
    private String wholeBacklogCode;

    /**
     * 后全程工序顺序号（各模块）
     */
    private Integer nextWholeBacklogSeq;

    /**
     * 后全程工序代码（各模块）
     */
    private String nextWholeBacklogCode;

    /**
     * 大工序代码(由各个模块写入)
     */
    private String bigBacklogCode;

    /**
     * 库区产线
     */
    private String stockLine;

    /**
     * 辊道确认时间
     */
    private Date rollerConfTime;

    /**
     * 辊道确认产线
     */
    private String rollerLineNo;

    /**
     * 辊道标志
     */
    private String rollerFlag;

    /**
     * 报废等级
     */
    private String scrapLev;

    /**
     * 钢级
     */
    private String stGrade;

    /**
     * 外委库区
     */
    private String outStore;

    /**
     * 外委工序
     */
    private String outPro;

    /**
     * 综合判定异常原因(默认为空，提供给质量模块)
     */
    private String complexJudgeAbn;

    /**
     * 钢锭尾部厚度
     */
    private BigDecimal ingotBottThick;

    /**
     * 钢锭头部宽度
     */
    private BigDecimal ingotHeadWidth;

    /**
     * 钢锭尾部宽度
     */
    private BigDecimal ingotBottWidth;

    /**
     * 钢锭型
     */
    private String ingotType;

    /**
     * 连铸机号
     */
    private String prcLine;

    /**
     * 产品代码
     */
    private String prodCd;

    /**
     * 判钢标记VR2
     */
    private String ifDecideStno;

    /**
     * GY代码
     */
    private String gyCode;

    /**
     * 钢锭头部厚度
     */
    private BigDecimal ingotHeadThick;

    //剩余长度
    private BigDecimal remLen;

    //剩余宽度
    private BigDecimal remWid;

}
