package org.jeecg.modules.sampleAndConsumableManagement.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.FdProjectFile;
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_standard_products")
public class FdStandardProducts 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 pkContract;
	/**合同号*/
	@Excel(name = "合同号", width = 15)
	@NotEmpty(message = "合同号不可为空")
	private java.lang.String contractCode;
	/**项目档案主键*/
	@Excel(name = "项目档案主键", width = 15)
	private java.lang.String pkProjectFile;
	/**项目名称*/
	@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 purpose;
	/**方达追踪号*/
	@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")
	@NotNull(message = "存储单日期不可为空")
	private java.util.Date storageOrderDate;
	/**标准品/内标名称*/
	@Excel(name = "标准品/内标名称", width = 15)
	@NotEmpty(message = "标准品/内标名称不可为空")
	private java.lang.String standardProductsName;
	/**采购单号*/
	@Excel(name = "采购单号", width = 15)
	private java.lang.String purchaseOrderNo;
	/**批号*/
	@Excel(name = "批号", width = 15)
	private java.lang.String lotNo;
	/**管理负责人人员档案主键*/
	@Excel(name = "管理负责人人员档案主键", width = 15)
	private java.lang.String pkPersonInCharge;
	/**管理负责人*/
	@Excel(name = "管理负责人", width = 15)
	@NotEmpty(message = "管理负责人不可为空")
	private java.lang.String personInCharge;
	/**项目负责人人员档案主键*/
	@Excel(name = "项目负责人人员档案主键", width = 15)
	private java.lang.String pkProjectLeader;
	/**项目负责人*/
	@Excel(name = "项目负责人", width = 15)
	private java.lang.String projectLeader;
	/**运单号*/
	@Excel(name = "运单号", width = 15)
	private java.lang.String courierNumber;
	/**入库总量*/
	@Excel(name = "入库总量", width = 15)
	@NotNull(message = "入库总量不可为空")
	private java.lang.Integer totalInventory;
	/**规格*/
	@Excel(name = "规格", width = 15)
	private java.lang.String specifications;
	/**入库数量*/
	@Excel(name = "入库数量", width = 15)
	private java.lang.Integer inventoryQuantity;
	/**存储温度*/
	@Excel(name = "存储温度", width = 15)
	private java.lang.String storageTemperature;
	/**存储位置*/
	@Excel(name = "存储位置", width = 15)
	private java.lang.String storageLocation;
	/**生产日期*/
	@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 productionDate;
	/**校正系数 */
	@Excel(name = "校正系数 ", width = 15)
	private java.lang.String correctionFactor;
	/**基质类型*/
	@Excel(name = "基质类型", width = 15)
	private java.lang.String substrateType;
	/**浓度*/
	@Excel(name = "浓度", width = 15)
	private java.lang.String concentration;
	/**纯度*/
	@Excel(name = "纯度", width = 15)
	private java.lang.String purity;
	/**接收日期*/
	@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 receivingDate;
	/**过期日期*/
	@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 expirationDate;
	/**预警数量*/
	@Excel(name = "预警数量", width = 15)
	private java.lang.Integer warningNumber;
	/**预警天数*/
	@Excel(name = "预警天数", width = 15)
	private java.lang.Integer warningDay;
	/**剩余数量 */
	@Excel(name = "剩余数量 ", width = 15)
	private java.lang.Integer remainingNumber;
	/**距过期日还剩天数*/
	@Excel(name = "距过期日还剩天数", width = 15)
	private java.lang.Integer expirationDay;
	/**生物分析QA数据日期*/
	@Excel(name = "生物分析QA数据日期", 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 bioanalysisQaDate;
	/**备注*/
	@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;


	//标准品管理领用记录
	@TableField(exist = false)
	private List<FdStandardProductsRecipientRecord> fdStandardProductsRecipientRecordList;

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