package com.sw.mes.yb.pc.entity;

import lombok.Data;

import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;

@Data
@Entity
@Table(name="zhxx_quality_print")
public class QualityPrint {


    @Id
    private Long id;

    /**
     * 晶棒编号
     */
    @Column(length = 80)
    private String crystalNo;

    /**
     * 晶段编号
     */
    @Column(length = 80)
    private String sectionNo;

    /**
     * 设备编号
     */
    @Column(length = 40)
    private String deviceNo;

    /**
     * 炉次号
     */
    @Column(length = 80)
    private String lotNo;

    /**
     * 类型
     */
    @Column(length = 40)
    private String productType;

    /**
     * 导电型号
     */
    @Column(length = 40)
    private String conductiveType;

    /**
     * 实验类型名称（是否进行实验的标注）
     */
    @Column(length = 40)
    private String experiment;

    /**
     * 实验类型值
     */
    @Column(length = 20)
    private String experimentValue;

    /**
     * 产品等级
     */
    @Column(length = 80)
    private String productLevel;

    /**
     * 产品等级
     * 二次评级
     */
    @Column
    private String productLevelSecond;

    /**
     * 目标规格
     */
    @Column(length = 40)
    private String productTypeSecond;

    /**
     * 产品等级
     * 实验类型结果
     */
    @Column
    private String productLevelExperiment;

    /**
     * 评级时间
     */
    @Column(length = 19)
    @Temporal(TemporalType.TIMESTAMP)
    private Date levelTime;

    /**
     * 实际直径
     */
    @Column(length = 10)
    private BigDecimal actualDiameter;

    /**
     * 实际称重
     */
    @Column(length = 10)
    private BigDecimal actualWeight;

    /**
     * 最大直径
     */
    @Column(length = 10)
    private BigDecimal diameterMax;

    /**
     * 最小直径
     */
    @Column(length = 10)
    private BigDecimal diameterMin;


    /**
     * 创建时间
     */
    @Column(length = 19)
    @Temporal(TemporalType.TIMESTAMP)
    private Date createTime;


    /**
     * 实际长度
     */
    @Column(length = 10)
    private BigDecimal actualLength;

    /**
     * 画线长度
     */
    @Column(length = 10)
    private BigDecimal drawLength;

    /**
     * 长度范围
     */
    @Column(length = 40)
    private String scope;

    /**
     * 晶棒类型：返切/拼棒/整棒
     */
    @Column(length = 40)
    private String type;

    /**
     * 晶段类型
     */
    @Column(length = 40)
    private String sectionType;

    /**
     * 检验人员
     */
    @Column(length = 40)
    private String inspector;

    /**
     * 检验时间
     */
    @Column(length = 19)
    @Temporal(TemporalType.TIMESTAMP)
    private Date inspectTime;

    /**
     * 是否为孪晶
     */
    @Column(length = 0)
    private Boolean isTwin;

    /**
     * 孪晶检验人
     */
    @Column(length = 40)
    private String twinInspector;

    /**
     * 孪晶检验时间
     */
    @Column(length = 19)
    @Temporal(TemporalType.TIMESTAMP)
    private Date twinInspectTime;

    /**
     * 孪晶长度
     */
    @Column(length = 10)
    private BigDecimal twinLength;

    /**
     * 斜度
     */
    @Column(length = 20)
    private String slope;

    /**
     * 头斜度
     */
    @Column(length = 18)
    private BigDecimal slopeT;

    /**
     * 尾斜度
     */
    @Column(length = 18)
    private BigDecimal slopeW;

    /**
     * 是否返切棒
     */
    @Column
    private Boolean reCut;

    /**
     * 打印次数
     */
    @Column(length = 2)
    private Integer printCount;

    /**
     * 晶段段数
     */
    @Column(length = 2)
    private Integer sectionCount;

    /**
     * 收尾类型
     */
    @Column(length = 20)
    private String tailType;

    /**
     * 见埚底尾
     */
    @Column
    private Boolean bottomTail;

    /**
     * 段数是否是V或者W
     */
    @Column
    private Boolean vw;

    /**
     * 段数是否是V
     */
    @Column
    private Boolean v;

    /**
     * 段数是否是W
     */
    @Column
    private Boolean w;

    /**
     * 第18位数字
     */
    @Column
    private Integer eighteen;

    /**
     * 少子寿命头1
     */
    @Column(length = 10)
    private BigDecimal sintonHead1;
    /**
     * 少子寿命头2
     */
    @Column(length = 10)
    private BigDecimal sintonHead2;

    /**
     * 少子寿命头3
     */
    @Column(length = 10)
    private BigDecimal sintonHead3;
    /**
     * 少子寿命头4
     */
    @Column(length = 10)
    private BigDecimal sintonHead4;

    /**
     * 少子寿命头5
     */
    @Column(length = 10)
    private BigDecimal sintonHead5;
    /**
     * 少子寿命尾1
     */
    @Column(length = 10)
    private BigDecimal sintonTail1;
    /**
     * 少子寿命尾2
     */
    @Column(length = 10)
    private BigDecimal sintonTail2;
    /**
     * 少子寿命尾3
     */
    @Column(length = 10)
    private BigDecimal sintonTail3;
    /**
     * 少子寿命尾4
     */
    @Column(length = 10)
    private BigDecimal sintonTail4;
    /**
     * 少子寿命尾5
     */
    @Column(length = 10)
    private BigDecimal sintonTail5;
    /***********************************************************************************/
    /**
     * 默认值：待入库
     * 入库状态  待入库/已入库/可出库/可出库锁定/已出库/已拼棒
     */
    @Column(length = 20)
    private String state;

    /**
     * 检测结果 --- 出库使用
     * 0：默认值，不可出库；
     * 1：已检测，可出库；
     * 2：已拼棒，根据时间判断是否可出库；
     */
    @Column(length = 2)
    private Integer checkResult;

    /**
     * ---检验线使用
     * 检测状态  已检测/未检测
     */
    @Column(length = 20)
    private String checkState;

    /**
     * 状态变更时间
     */
    @Column(length = 19)
    @Temporal(TemporalType.TIMESTAMP)
    private Date stateUpdateTime;

    /**
     * 入库时间
     */
    @Column(length = 19)
    @Temporal(TemporalType.TIMESTAMP)
    private Date storageTime;

    /**
     * 托盘号
     */
    @Column(length = 80)
    private String code;
    /**
     * 托盘号RFID
     */
    @Column(length = 80)
    private String rfid;
    /*************************************/

    /*********************************************************************************/
    /**
     * 中心点头
     */
    @Column(length = 18)
    private BigDecimal centerHead;

    /**
     * 边缘点头1
     */
    @Column(length = 18)
    private BigDecimal borderHead1;

    /**
     * 边缘点头2
     */
    @Column(length = 18)
    private BigDecimal borderHead2;

    /**
     * 边缘点头3
     */
    @Column(length = 18)
    private BigDecimal borderHead3;

    /**
     * 边缘点头4
     */
    @Column(length = 18)
    private BigDecimal borderHead4;

    /**
     * 中心点尾
     */
    @Column(length = 18)
    private BigDecimal centerTail;

    /**
     * 边缘点尾1
     */
    @Column(length = 18)
    private BigDecimal borderTail1;

    /**
     * 边缘点尾2
     */
    @Column(length = 18)
    private BigDecimal borderTail2;

    /**
     * 边缘点尾3
     */
    @Column(length = 18)
    private BigDecimal borderTail3;

    /**
     * 边缘点尾4
     */
    @Column(length = 18)
    private BigDecimal borderTail4;
    /*********************************************************************************/

    /**************************外观检测***************************/

    /**
     * 裂纹
     */
    @Column(length = 10)
    private BigDecimal crack;


    /**
     * 是否扭曲过大
     */
    @Column
    private Boolean distortionBig;
    /**
     * 扭曲
     */
    @Column(length = 10)
    private BigDecimal distortion;

    /**
     * 崩边长度
     */
    @Column(length = 10)
    private BigDecimal edgeBark;

    /**
     * 崩晶线
     */
    @Column(length = 10)
    private BigDecimal collapseLine;


    /**
     * 单晶头方向
     * 左 或者 右
     */
    @Column(length = 20)
    private String crystalHead;

    //======机器测量数据======
    /**
     * 细总长
     */
    @Column(length = 10)
    private BigDecimal fineDiameter;

    /**
     * 细减长
     */
    @Column(length = 10)
    private BigDecimal fineCutLength;
    /**
     * 粗
     */
    @Column(length = 10)
    private BigDecimal c;
    /**
     * d1
     */
    @Column(length = 10)
    private BigDecimal d1;
    /**
     * d2
     */
    @Column(length = 10)
    private BigDecimal d2;

    //======机器测量数据======

    /*********************************检验暂定数据属性T**********************************/

    /**
     * 原棒总长
     */
    @Column(length = 10)
    private BigDecimal crystalTotalLength;

    /**
     * 记录人员
     */
    @Column(length = 40)
    private String recorder;

    /**
     * 头斜
     */
    @Column(length = 10)
    private BigDecimal headSlope;

    /**
     * 尾斜
     */
    @Column(length = 10)
    private BigDecimal tailSlope;

    /**
     * 氧施主
     */
    @Column(length = 40)
    private String oxygenDonor;

    /**
     * 棒寿命分档
     */
    @Column(length = 40)
    private String crystalAgeBracket;

    /**
     * 是否为复检
     */
    @Column(length = 0)
    private Boolean isRecheck;

    /**
     * 晶向
     */
    @Column(length = 40)
    private String crystalOrientation;

    /**
     * 复检类别
     */
    @Column(length = 40)
    private String reCheckType;

    /**
     * 直径粗
     */
    @Column(length = 0)
    private Boolean diameterThickness;

    /**
     * 返修工序
     */
    @Column(length = 40)
    private String reWorkProcess;

    /**
     * 外观检验备注
     */
    @Lob
    private String remark;

    /**
     * 班次
     */
    @Column(length = 40)
    private String classNo;

    /**
     * 班组
     */
    @Column(length = 40)
    private String className;

    /**
     * 复检类别
     */
    @Column(length = 80)
    private String checkAgain;

    /**
     * 少子寿命
     */
    @Column(length = 10)
    private BigDecimal minLife;

    /**
     * 开始时间
     */
    @Column(length = 19)
    @Temporal(TemporalType.TIMESTAMP)
    private Date startTime;

    /**
     * 结束时间
     */
    @Column(length = 19)
    @Temporal(TemporalType.TIMESTAMP)
    private Date endTime;

    /**
     * 晶棒直径
     */
    @Column(length = 10)
    private BigDecimal barDiameter;

    /**
     * 录入人员
     */
    @Column(length = 40)
    private String inputUser;

    /**
     * 入库长度
     */
    @Column(length = 10)
    private BigDecimal wareHouseLength;

    /**
     * 理论重量
     */
    @Column(length = 10)
    private BigDecimal theoryWeight;

    /**
     * 退火后
     */
    @Column(length = 80)
    private String postannealing;

    /**
     * 规格号备注
     */
    @Column
    private String autoRemark;

    /**
     * 是否切断不良
     */
    @Column(length = 0)
    private Boolean isCutBad;

    /**
     * 是否合格
     */
    @Column(length = 0)
    private Boolean isPassed;

    /**
     * 更改人
     */
    @Column(length = 40)
    private String changer;

    /**
     * 实验（复检用）
     */
    @Column(length = 40)
    private String experimentData;

    /*********************************检验暂定数据属性W**********************************/

    /*********************样片数据T**********************/

    /**
     * 样片编号T
     */
    @Column(length = 100)
    private String pieceNoHead;

    /**
     * 样片编号W
     */
    @Column(length = 100)
    private String pieceNoTail;

    /**
     * 钝化寿命T
     */
    @Column(length = 10)
    private BigDecimal passivationLifeHead;

    /**
     * 钝化寿命W
     */
    @Column(length = 10)
    private BigDecimal passivationLifeTail;

    /**
     * 棒寿命T
     */
    @Column(length = 10)
    private BigDecimal stickLifeHead;

    /**
     * 棒寿命W
     */
    @Column(length = 10)
    private BigDecimal stickLifeTail;

    /**
     * 微缺陷T
     */
    @Column(length = 40)
    private String microdefectHead;

    /**
     * 微缺陷W
     */
    @Column(length = 40)
    private String microdefectTail;

    /**
     * 位错T
     */
    @Column(length = 40)
    private String dislocationHead;

    /**
     * 位错W
     */
    @Column(length = 40)
    private String dislocationTail;

    /**
     * 氧含量T
     */
    @Column(length = 10)
    private BigDecimal oxygenContentHead;

    /**
     * 氧含量W
     */
    @Column(length = 10)
    private BigDecimal oxygenContentTail;

    /**
     * 碳含量T
     */
    @Column(length = 10)
    private BigDecimal carbonContentHead;

    /**
     * 碳含量W
     */
    @Column(length = 10)
    private BigDecimal carbonContentTail;

    /**
     * 厚度T
     */
    @Column(length = 10)
    private BigDecimal thicknessHead;

    /**
     * 厚度W
     */
    @Column(length = 10)
    private BigDecimal thicknessTail;

    /**
     * 退火后电阻率T
     */
    @Column(length = 10)
    private BigDecimal resistyAfterAnnealHead;

    /**
     * 退火后电阻率W
     */
    @Column(length = 10)
    private BigDecimal resistyAfterAnnealTail;

    /**
     * 投料量
     */
    @Column(length = 10)
    private BigDecimal materialCount;

    /**
     * 寿命/电阻率T中心
     */
    @Column(length = 10)
    private BigDecimal sintonCenter;
    /**
     * 寿命/电阻率T边缘
     */
    @Column(length = 10)
    private BigDecimal sintonBorder;

    /**
     * 寿命/电阻率W中心
     */
    @Column(length = 10)
    private BigDecimal sintonTail;
    /**
     * 寿命/电阻率W边缘
     */
    @Column(length = 10)
    private BigDecimal sintonBorderTail;


    /**
     * 01W中心
     */
    @Column(length = 10)
    private BigDecimal firstSintonCenter;
    /**
     * 01W边缘
     */
    @Column(length = 10)
    private BigDecimal firstSintonBorder;

    /*********************样片数据W**********************/

    /**************************** 检验线采集数据 - 重量 、 型号（P/N）、电阻率 ******************************/
    /**
     * 重量
     */
    @Column(length = 40)
    private String weight;

    /**
     * 线体ID
     */
    @Column(length = 20)
    private String lineId;
    /**
     * 电阻率
     */
    @Column
    private String resistivity;
    /**************************** 检验线采集数据 - 重量 、 型号（P/N）、电阻率 ******************************/

    /**
     *
     */
    @Column(length = 11, updatable = false, insertable = false)
    private Integer rankId;
    /**
     * 电阻率检验次数
     **/
    @Column(length = 11)
    private Integer resistivityCheckCount;
    /**
     * 前段样片
     * 01W或者02T
     */
    @Column
    private Boolean prePieceNo;

    /**
     * 氧含量判定
     */
    @Column(length = 100)
    private String yhl;

    /**
     * 外发
     */
    @Column(length = 100)
    private String wf;

    /**
     * 打印备注
     */
    @Column(length = 1000)
    private String printRemark;

    /**
     * 其它异常选项
     */
    @Column
    private String otherException;

    @Column
    private Integer isSpecialRoundLevel;
}
