package org.jeecg.modules.projectManagement.entity;

import java.io.Serializable;
import java.util.Date;
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-03
 * @version： V1.0
 */
@Data
@TableName("fd_clinical_project_milestones_items")
public class FdClinicalProjectMilestonesItems implements Serializable {
    private static final long serialVersionUID = 1L;
    
	/**主键*/
	@TableId(type = IdType.UUID)
	private java.lang.String id;
	/**临床项目里程碑id*/
	@Excel(name = "临床项目里程碑id", width = 15)
	private java.lang.String pkClinicalProjectMilestones;
	/**临床项目里程碑模板项id*/
	@Excel(name = "临床项目里程碑模板项id", width = 15)
	private java.lang.String pkClinicalProjectMilestonesItemId;
	/**编码/序号*/
	@Excel(name = "编码/序号", width = 15)
	private java.lang.String code;
	/**里程碑描述*/
	@Excel(name = "里程碑描述", width = 15)
	private java.lang.String description;
	/**权重*/
	@Excel(name = "权重", width = 15)
	private java.lang.String weight;
	/**排序*/
	@Excel(name = "排序", width = 15)
	private java.lang.String sort;
	/**预计开始时间*/
	@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 estimateStartTime;
	/**预计完成时间*/
	@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 estimateEndTime;
	/**实际开始时间*/
	@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 actualStartTime;
	/**实际完成时间*/
	@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 actualEndTime;
	/**是否关键节点0否1是*/
	@Excel(name = "是否关键节点0否1是", width = 15)
	// @NotEmpty(message = "是否关键不能为空")
	private java.lang.String isKeypoint;
	/**是否付款里程碑*/
	@Excel(name = "是否付款里程碑", width = 15)
	@NotEmpty(message = "是否付款里程碑不能为空")
	private java.lang.String isPayMilestones;
	/**合同付款节点id*/
	@Excel(name = "合同付款节点id", width = 15)
	private java.lang.String pkContractClause;
	/**付款节点名称*/
	@Excel(name = "付款节点名称", width = 15)
	private java.lang.String contractClauseDescription;
	/**是否上传文档*/
	@Excel(name = "是否上传文档", width = 15)
	@NotEmpty(message = "是否上传文档不能为空")
	private java.lang.String isUploadFile;
	/**预计工时*/
	@Excel(name = "预计工时", width = 15)
//	@NotEmpty(message = "预计工时不能为空")
	private String estimateDays;
	/**父节点*/
	@Excel(name = "父节点", width = 15)
	private java.lang.String parentId;
	/**所有父节点*/
	@Excel(name = "所有父节点", width = 15)
	private java.lang.String parentIds;
	/**版本号*/
	@Excel(name = "版本号", width = 15)
	private java.lang.String version;
	/**删除标记0正常1删除*/
	@Excel(name = "删除标记0正常1删除", 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 memo;
	/**完成时间差异*/
	@Excel(name = "完成时间差异", width = 15)
	private Integer completionTimeDifference;

	//确认进度
	private String projectProgress;


	/**上传下载文件地址*/
	@Excel(name = "上传下载文件地址", width = 15)
	private String clinicalUrl;

	//旧id（用于保存和复制改变parentID）
	@TableField(exist = false)
	private String pid;

}
