package org.jeecg.modules.qualityControl.entity;

import java.io.Serializable;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.modules.projectManagement.entity.*;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * @Description: 质量控制（生物样本分析）
 * @author： jeecg-boot
 * @date：   2019-06-12
 * @version： V1.0
 */
@Data
@TableName("fd_qc_biometric_sample_analysis")
public class FdQcBiometricSampleAnalysis implements Serializable {
    private static final long serialVersionUID = 1L;
    
	/**主键*/
	@TableId(type = IdType.UUID)
	private java.lang.String id;
	/**项目档案主键*/
	@Excel(name = "项目档案主键", width = 15)
	private java.lang.String pkProjectFile;
	/**合同主键*/
	@Excel(name = "合同主键", width = 15)
	private java.lang.String pkContract;
	/**合同号*/
	@Excel(name = "合同号", width = 15)
	@NotEmpty(message = "合同号不可为空")
	private java.lang.String contractCode;
	/**合同描述*/
	@Excel(name = "合同描述", width = 15)
	private java.lang.String contractDescription;
	/**项目名称*/
	@Excel(name = "项目名称", width = 15)
	private java.lang.String projectName;
	/**申办方id*/
	@Excel(name = "申办方id", width = 15)
	@NotEmpty(message = "申办方不能为空")
	private java.lang.String pkBidParty;
	/**申办方名称*/
	@Excel(name = "申办方名称", width = 15)
	private java.lang.String bidPartyName;
	/**客户缩写*/
	@Excel(name = "客户缩写", width = 15)
	private java.lang.String bidPartyNameAbbreviation;
	/**合同方主键*/
	@Excel(name = "合同方主键", width = 15)
	private java.lang.String pkContractParty;
	/**合同方名称*/
	@Excel(name = "合同方名称", width = 15)
	private java.lang.String contractPartyName;
	/**质量保证单号 */
	@Excel(name = "质量控制单号 ", width = 15)
	// @NotEmpty(message = "质量控制单号")
	private java.lang.String qualityControlSheetNumber;
	/**质量保证单日期*/
	@Excel(name = "质量控制单日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@NotNull(message = "质量控制单日期不可为空")
	private java.util.Date qualityControlSheetDate;
	/**生物样本分析号*/
	@Excel(name = "生物样本分析号", width = 15)
	private java.lang.String biologicalSampleAnalysisNumber;
	/**化合物名称*/
	@Excel(name = "化合物名称", width = 15)
	private java.lang.String compoundName;
	//化合物id
	@NotEmpty(message = "化合物不可为空")
	private java.lang.String pkCompound;
	/**类型 */
	@Excel(name = "类型 ", width = 15)
	@NotEmpty(message = "类型不可为空")
	private java.lang.String analysisType;
	@TableField(exist = false)
	private java.lang.String analysisTypeName;
	/**QC提交日期 */
	@Excel(name = "QC提交日期 ", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private java.util.Date qcSubmissionDate;
	/**QC完成日期*/
	@Excel(name = "QC完成日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private java.util.Date qcCompletionDate;
	/**responsible QC*/
	@Excel(name = "responsible QC", width = 15)
	@NotEmpty(message = "质量控制负责人不能为空")
	private java.lang.String responsibleQc;
	@TableField(exist = false)
	private java.lang.String responsibleQcName;
	/**Bioanalytical PI*/
	@Excel(name = "Bioanalytical PI", width = 15)
	private java.lang.String bioanalyticalPi;
	@TableField(exist = false)
	private java.lang.String bioanalyticalPiName;
	/**associate Bioanalytical PI*/
	@Excel(name = "associate Bioanalytical PI", width = 15)
	private java.lang.String associateBioanalyticalPi;
	@TableField(exist = false)
	private java.lang.String associateBioanalyticalPiName;
	/**基质*/
	@Excel(name = "基质", width = 15)
	private java.lang.String matrix;
	/**备注*/
	@Excel(name = "备注", width = 15)
	private java.lang.String memo;
	/**版本号*/
	@Excel(name = "版本号", width = 15)
	private java.lang.String version;
	/**删除标识*/
	@Excel(name = "删除标识", width = 15)
	private java.lang.String delFlag;
	/**创建人*/
	@Excel(name = "创建人", width = 15)
	private java.lang.String createBy;
	/**创建时间*/
	@Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private java.util.Date createTime;
	/**更新人*/
	@Excel(name = "更新人", width = 15)
	private java.lang.String updateBy;
	/**更新时间*/
	@Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	private java.util.Date updateTime;

	//项目号（项目档案信息）
	private String projectFileNo;

	//质量管理状态（1未完成，2已完成）
	private Integer qualityStatus;

	//临床负责人id(合同选择查询所用)
	@TableField(exist = false)
	private String clinicalPi;

	//临床负责人名称（合同选择查询所用）
	@TableField(exist = false)
	private String clinicalPiName;

	//临床助理id（合同选择查询所用）
	@TableField(exist = false)
	private String clinicalAssociateId;

	//临床助理名称（合同选择查询所用）
	@TableField(exist = false)
	private String clinicalAssociateName;

	//明细
	@TableField(exist = false)
	private List<FdQcBiometricSampleAnalysisItems> fdQcBiometricSampleAnalysisItemsList;

	//生物分析样本号集合
	@TableField(exist = false)
	private List<FdProjectFileSample> fdProjectFileSampleList;

	//生物分析方法验证号集合
	@TableField(exist = false)
	private List<FdProjectFileValidation> fdProjectFileValidationList;

	//生物分析项目确认号集合
	@TableField(exist = false)
	private List<FdProjectFileConfirm> fdProjectFileConfirmList;

	//默认化合物
	@TableField(exist = false)
	private String compound1;

	//默认化合物id
	@TableField(exist = false)
	private String compound1Id;

	//合同签订日期
	// private java.util.Date contractSignDate;

	//质量控制生物样本分析表
	@TableField(exist = false)
	private List<FdQcSample> fdQcSampleList;

	//化合物集合
	@TableField(exist = false)
	private List<FdProjectFileCompound> fdProjectFileCompoundList;

	//基质类型名称
	@TableField(exist = false)
	private String matrixName;

	//样本号
	@TableField(exist =false)
	private String sampleCode;

	//QA状态
	@TableField(exist =false)
	private Integer qaStatus;

	//开始时间
	@TableField(exist =false)
	private String startTime;

	//结束时间
	@TableField(exist =false)
	private String endTime;

	//是否通知PI
	@TableField(exist =false)
	private String isNoticePi;
}
