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

import com.sw.mes.yb.seed.utils.SeedCodeGenerator;
import lombok.Data;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

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

/**
 * 籽晶对象
 *
 * @Author：wanjia
 * @Date：2024/1/9 14:41
 */
@Data
@Entity
@Table(name = "seed_data")
@DynamicUpdate
@DynamicInsert
public class SeedData {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 籽晶编码 由{@link SeedCodeGenerator} 生成
     */
    @Column
    private String seedCode;
    /**
     * 计划单号
     */
    @Column
    private String planCode;
    /**
     * 来源数据，圆棒 or 方棒
     */
    @Column
    private String source;

    /**
     * 单晶编号
     */
    @Column(length = 80)
    private String crystalNo;
    /**
     * 掺杂类型： U/N
     */
    @Column
    private String dopant;

    /**
     * 籽晶掏棒机台号
     */
    @Column
    private String seedCoringDevice;

    /**
     * 籽晶磨棒机台号
     */
    @Column
    private String seedGrindingDevice;

    /**
     * 籽晶加工长度
     */
    @Column
    private long processLength;

    /**
     * 籽晶加工工单号，来自于erp
     */
    @Column
    private String processOrderNo;

    /**
     * 籽晶批次号
     */
    @Column
    private String seedBatchNo;

    /**
     * 批次号
     */
    @Column
    private String batchNo;

    /**
     * 车间编码
     */
    @Column
    private String workShopCode;

    /**
     * 创建人
     */
    @Column
    private String createBy;

    /**
     * 创建日期
     */
    @Column
    private Date createDate;

    /**
     * 修改人
     */
    @Column
    private String updateBy;
    /**
     * 更新时间
     */
    @Column
    private Date updateDate;

    /**
     * 最小工作中心编码，用于后期生成编号和检索使用
     */
    @Column
    private String workCenterCode;

    /**
     * 软删除 1：删除；0：未删除
     */
    @Column
    private Boolean deleted;
    /**
     *物料id
     */
    @Column
    private Integer materialId;
    /**
     *物料编码
     */
    @Column
    private String materialCode;
    /**
     *物料名称
     */
    @Column
    private String materialName;
    /**
     *物料类型
     */
    @Column
    private String materialType;
    /**
     *规格
     */
    @Column
    private String spec;
    /**
     *物料型号
     */
    @Column
    private String materialModel;

    /**
     *定向标识
     */
    @Column
    private String directionalSign;

    /**
     *检测时间
     */
    @Column
    private Date detectionTime;

    /**
     *设备编码
     */
    @Column
    private String deviceCode;
    /**
     * 头尾识别
     */
    @Column
    private String headTailRecognition;
    /**
     * 是否组托
     */
    @Column
    private int groupBracket  = 0;
    /**
     * 自检合格
     */
    @Column
    private boolean selfQualified = false;
    /**
     * IQC合格
     */
    @Column
    private boolean iqcQualified = false;
}
