package org.jeecg.modules.projectManagement.entity;

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

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.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;

import javax.validation.constraints.NotEmpty;

/**
 * @Description: 生物分析样本里程碑
 * @author： jeecg-boot
 * @date：   2019-06-04
 * @version： V1.0
 */
@Data
@TableName("fd_bioanalysis_sample_milestones")
public class FdBioanalysisSampleMilestones 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)
	private java.lang.String pkProjectFile;
	/**合同号*/
	@Excel(name = "合同号", width = 15)
	@NotEmpty(message = "合同号不能为空")
	private java.lang.String contractCode;
	/**项目名称*/
	@Excel(name = "项目名称", width = 15)
	private java.lang.String projectName;
	/**申办方主键*/
	@Excel(name = "申办方主键", 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 contractType;
	/**基质类型*/
	@Excel(name = "基质类型", width = 15)
	private java.lang.String matrixType;
	/**生物分析负责人*/
	@Excel(name = "生物分析负责人", width = 15)
	private java.lang.String bioanalyticalPm;
	/**生物分析助理*/
	@Excel(name = "生物分析助理", width = 15)
	private java.lang.String assistant;


	/**合同签订日期*/
	@Excel(name = "合同签订日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	private java.util.Date signDate;
	/**生物样品接受日期*/
	@Excel(name = "生物样品接受日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	private java.util.Date receivedDate;
	/**样本数量 */
	@Excel(name = "样本数量 ", width = 15)
	private java.lang.Integer sampleNumber;
	/**生物分析方法号*/
	@Excel(name = "生物分析方法号", width = 15)
	private java.lang.String bioanalysisCode;
	/**生物分析方法确认项目号*/
	@Excel(name = "生物分析方法确认项目号", width = 15)
	private java.lang.String bioanalysisConfirmItemCode;
	/**生物分析方法验证号*/
	@Excel(name = "生物分析方法验证号", width = 15)
	private java.lang.String bioanalysisValidationCode;
	/**生物分析样本分析号*/
	@Excel(name = "生物分析样本分析号", width = 15)
	private java.lang.String biologicalAnalysisSampleAnalysisCode;
	/**版本号*/
	@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;
	/**自定义1*/
	@Excel(name = "自定义1", width = 15)
	private java.lang.String def1;
	/**def2*/
	@Excel(name = "def2", width = 15)
	private java.lang.String def2;
	/**def3*/
	@Excel(name = "def3", width = 15)
	private java.lang.String def3;
	/**def4*/
	@Excel(name = "def4", width = 15)
	private java.lang.String def4;

	/**状态0未审核1审核*/
	@Excel(name = "状态0未审核1审核", width = 15)
	private java.lang.String status;

	//根据合同比例计算的总进度
	private String contractOverallProgress;

	//生物分析里程碑明细
	@TableField(exist = false)
	private List<FdBioanalysisSampleMilestonesItems> fdBioanalysisSampleMilestonesItemsList;
	//生物分析样本里程碑当前完成数量
	@TableField(exist = false)
	private List<FdBioanalysisSampleMilestonesCompletedNumber> fdBioanalysisSampleMilestonesCompletedNumberList;
	//生物分析样本接收日期
	@TableField(exist = false)
	private List<FdBioanalysisSampleMilestonesSampleReceived> fdBioanalysisSampleMilestonesSampleReceivedList;
	//付款节点集合
	@TableField(exist = false)
	private List<FdContractClause> fdContractClauseList;
	//生物分析方法号
	@TableField(exist = false)
	private List<FdBioanalysisSampleMilestonesMethod> fdBioanalysisSampleMilestonesMethodList;
	//生物分析方法确认项目号
	@TableField(exist = false)
	private List<FdBioanalysisSampleMilestonesConfirm> fdBioanalysisSampleMilestonesConfirmList;
	//生物分析方法验证号
	@TableField(exist = false)
	private List<FdBioanalysisSampleMilestonesValidation> fdBioanalysisSampleMilestonesValidationList;
	//生物分析样本分析号
	@TableField(exist = false)
	private List<FdBioanalysisSampleMilestonesSample> fdBioanalysisSampleMilestonesSampleList;

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

	//模板id
	// private String templateId;

	//模板树形类型map
	@TableField(exist = false)
	private List<FdBioanalysisTemplate> fdBioanalysisTemplateList;

	//总进度
	private String overallProgress;

	//总完成数量
	private String totalSuccNumber;

	//生物分析进度
	private String sampleAnalysisProgress;

	//里程碑模板编码
	private String milestoneCode;

	//项目经理Id
	private String projectManagerId;

	//项目档案号
	private String projectFileNo;

	//模板明细任务项名称
	@TableField(exist = false)
	private String itemDescriptionName;

	//明细的付款节点id
	@TableField(exist = false)
	private String itemPkContractClause;

	//项目档案分配人员的ids
	@TableField(exist = false)
	private String personnelWithAuthorityIds;

	//生物分析总监
	@TableField(exist = false)
	private String bioanalysisIdPM;

	//临床PM
	@TableField(exist = false)
	private String clinicalIdPM;


}
