package org.jeecg.modules.sampleAndConsumableManagement.entity;

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

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.modules.basedata.entity.FdPersonnel;
import org.jeecg.modules.basedata.entity.FdStoragePlace;
import org.jeecg.modules.projectManagement.entity.FdProjectFile;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;

import javax.validation.constraints.NotEmpty;

/**
 * @Description: 样本存储
 * @author： jeecg-boot
 * @date：   2019-06-06
 * @version： V1.0
 */
@Data
@TableName("fd_sample_storage")
public class FdSampleStorage implements Serializable {
    private static final long serialVersionUID = 1L;
    
	/**主键*/
	@TableId(type = IdType.UUID)
	private java.lang.String id;
	/**样本方达追踪号*/
	@Excel(name = "样本方达追踪号", width = 15)
	@NotEmpty(message = "样本方达追踪号不能为空")
	private java.lang.String trackingCode;
	/**样本存储单日期*/
	@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")
	// @NotEmpty(message = "样本存储单日期不能为空")
	private java.util.Date storageDate;
	/**项目档案主键*/
	@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 projectName;
	/**申办方id*/
	@Excel(name = "申办方id", width = 15)
	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)
	private java.lang.String compound;
	/**临床方案号*/
	@Excel(name = "临床方案号", width = 15)
	private java.lang.String clinicalCode;
	/**合同说明*/
	@Excel(name = "合同说明", width = 15)
	private java.lang.String projectDescription;
	/**存储温度*/
	@Excel(name = "存储温度", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.lang.String storageTemperature;
	/**基质类型*/
	@Excel(name = "基质类型", width = 15)
	private java.lang.String substrateType;
	/**基质类型名称*/
	@Excel(name = "基质类型名称", width = 15)
	private java.lang.String substrateTypeName;
	/**抗凝剂类型*/
	@Excel(name = "抗凝剂类型", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.lang.String anticoagulantType;
	/**生物分析PM*/
	@Excel(name = "生物分析PM", width = 15)
	private java.lang.String bioanalysisPm;
	/**生物分析PM名称*/
	@Excel(name = "生物分析PM名称", width = 15)
	private java.lang.String bioanalysisPmName;
	/**样品管理负责人主键（人员档案id）*/
	@Excel(name = "样品管理负责人主键（人员档案id）", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.lang.String pkSampleManagementHead;
	/**样品管理负责人姓名*/
	@Excel(name = "样品管理负责人姓名", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.lang.String sampleManagementHead;
	/**样品管理辅助负责人主键（人员档案id）*/
	@Excel(name = "样品管理辅助负责人主键（人员档案id）", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.lang.String pkSampleManagementAuxiliaryHead;
	/**样品管理辅助负责人名称*/
	@Excel(name = "样品管理辅助负责人名称", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.lang.String sampleManagementAuxiliaryHead;
	/**运单号*/
	@Excel(name = "运单号", width = 15)
	private java.lang.String courierNumber;
	/**主测样本数量  */
	@Excel(name = "主测样本数量  ", width = 15)
	private java.lang.String primarySampleNumber;
	/**主测样本存储位置主键（存储位置主键）*/
	@Excel(name = "主测样本存储位置主键（存储位置主键）", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.lang.String pkPrimarySampleStoragePlace;
	/**主测样本存储位置*/
	@Excel(name = "主测样本存储位置", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.lang.String primarySampleStoragePlace;
	/**备份样品数量*/
	@Excel(name = "备份样品数量", width = 15)
	private java.lang.String backupSampleNumber;
	/**备份样本存储位置主键（存储位置主键）*/
	@Excel(name = "备份样本存储位置主键（存储位置主键）", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.lang.String pkBackupSampleStoragePlace;
	/**备份样本存储位置*/
	@Excel(name = "备份样本存储位置", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.lang.String backupSampleStoragePlace;
	/**样品接收日期*/
	@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")
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.util.Date sampleReceivedDate;
	/**样品存储过期日期*/
	@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 sampleStorageExpireDate;
	/**样本运送时间 */
	@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")
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.util.Date sampleDeliveryDate;
	/**样本存储收费开始日期*/
	@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")
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.util.Date sampleStorageChargeStartDate;
	/**样本存储收费到期日期*/
	@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")
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.util.Date sampleStorageChargeExpireDate;
	/**样本年龄*/
	@Excel(name = "样本年龄", width = 15)
	private java.lang.String sampleAge;
	/**销毁日期*/
	@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")
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.util.Date destructionDate;
	/**返还日期*/
	@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")
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.util.Date returnDate;
	/**主测样本存储地点*/
	@Excel(name = "主测样本存储地点", width = 15)
	private java.lang.String primarySampleStorageAddress;
	/**备份样本存储地点*/
	@Excel(name = "备份样本存储地点", width = 15)
	private java.lang.String backupSampleStorageAddress;
	/**备注*/
	@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;

	/**合同类型*/
	@Excel(name = "合同类型", width = 15)
	private java.lang.String contractType;

	/**合同类型名称*/
	@Excel(name = "合同类型名称", width = 15)
	private java.lang.String contractTypeName;

	/**商务经理id*/
	@Excel(name = "商务经理id", width = 15)
	private java.lang.String businessAffairsBd;

	/**商务经理id名称*/
	@Excel(name = "商务经理id名称", width = 15)
	private java.lang.String businessAffairsBdName;

	/**生物分析负责人id*/
	@Excel(name = "生物分析负责人id", width = 15)
	private java.lang.String aiologicalAnalysis;

	/**生物分析负责人名称*/
	@Excel(name = "生物分析负责人名称", width = 15)
	private java.lang.String aiologicalAnalysisName;

	/**临床项目经理PMid*/
	@Excel(name = "临床项目经理PMid", width = 15)
	private java.lang.String clinicalPm;

	/**临床项目经理PMid名称*/
	@Excel(name = "临床项目经理PMid名称", width = 15)
	private java.lang.String clinicalPmName;

	//单价
	private String price;

	//项目号
	private String projectFileNo;

	//项目档案
	@TableField(exist = false)
	private List<FdProjectFile> fdProjectFileList;

	//存储位置
	@TableField(exist = false)
	private List<FdStoragePlace> fdStoragePlaceList;

	//人员档案
	@TableField(exist = false)
	private List<FdPersonnel> fdPersonnelList;



}
