package org.jeecg.modules.projectManagement.entity;

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

import javax.validation.constraints.NotEmpty;

/**
 * @Description: 工时记录明细
 * @author： jeecg-boot
 * @date：   2019-06-25
 * @version： V1.0
 */
@Data
@TableName("fd_working_hours_items")
public class FdWorkingHoursItems 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 workPeople;
	/**工时分类*/
	@Excel(name = "工时分类", width = 15)
	private java.lang.String classification;
	/**合同主键*/
	@Excel(name = "合同主键", width = 15)
	private java.lang.String pkContract;
	/**合同号*/
	@Excel(name = "合同号", width = 15)
	private java.lang.String contractCode;
	/**项目说明*/
	@Excel(name = "项目说明", width = 15)
	private java.lang.String projectDescription;
	/**里程碑类型:01-临床，02-生物分析*/
	@Excel(name = "里程碑类型:01-临床，02-生物分析", width = 15)
	private java.lang.String milestonesType;
	/**里程碑主键*/
	@Excel(name = "里程碑主键", width = 15)
	private java.lang.String pkMilestones;
	/**里程碑*/
	@Excel(name = "里程碑", width = 15)
	private java.lang.String milestones;
	/**里程碑任务id*/
	@Excel(name = "里程碑任务id", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	@NotEmpty(message = "任务不能为空")
	private java.lang.String pkMilestonesItems;
	/**任务名称*/
	@Excel(name = "任务名称", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.lang.String milestonesItemsDescription;
	/**工时数*/
	@Excel(name = "工时数", width = 15)
	private java.lang.String workingHoursNumber;
	/**版本号*/
	@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普通里程碑模板2特殊里程碑模板*/
	@Excel(name = "类型1普通里程碑模板2特殊里程碑模板", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.lang.String specialType;

	/**类型名称1普通里程碑模板2特殊里程碑模板*/
	@Excel(name = "类型名称1普通里程碑模板2特殊里程碑模板", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.lang.String specialTypeName;

	/**预计开始时间*/
	@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")
	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;
	//排序
	private String sort;

	//预计开始时间（时）
	private String estimateStartTime1;

	//预计开始时间（时）
	private String estimateEndTime1;

	//创建人的人员id
	private String createByPersonnelId;

	//备注
	private String memo;

	//报价id
	private String quotationId;

	/**工时记录id*/
	@Excel(name = "工时记录id", width = 15)
	private String pkWokingHour;

	//部门名称（报表）
	@TableField(exist = false)
	private String departName;

	//客户名称（报表）
	@TableField(exist = false)
	private String customerName;

	//化合物名称（报表）
	@TableField(exist = false)
	private String compoundName;

	//合并行（报表）
	@TableField(exist = false)
	private Integer rowMerge;

	//合同合并行（报表）
	@TableField(exist = false)
	private Integer contractMergeRow;

	//人员名称
	@TableField(exist = false)
	private String personnelName;

	//工时记录号（主表）
	@TableField(exist = false)
	private String code;

	//工时记录时间（主表）
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@TableField(exist = false)
	private Date actualHours;

	//工时时间合并行
	@TableField(exist = false)
	private Integer actualHoursMerge;

	//主表创建人code（主表）
	@TableField(exist = false)
	private String mainCreateBy;
	//主表角色类别名称
	@TableField(exist = false)
	private String mainRoleName;

	//开始时间
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@TableField(exist = false)
	private String startDate;

	//结束时间
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	@TableField(exist = false)
	private String endDate;

	//工时填报人（主表）
	@TableField(exist = false)
	private String hourFiller;

	//总工时
	@TableField(exist = false)
	private String workingHoursNumberTotal;

	//筛选条件人员ids
	@TableField(exist = false)
	private List<String> fdPersonnelIdsList;

	//人员id
	@TableField(exist = false)
	private String personnelId;

	//项目总工时
	@TableField(exist = false)
	private String projectTotal;
}
