package org.jeecg.modules.projectManagement.entity;

import java.io.Serializable;
import java.util.Date;
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-25
 * @version： V1.0
 */
@Data
@TableName("fd_working_hours")
public class FdWorkingHours 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 pkWorkHoursItems;
	/**工时分类*/
	@Excel(name = "工时分类", width = 15)
	private java.lang.String classification;
	/**任务*/
	@Excel(name = "任务", width = 15)
	private java.lang.String task;
	/**开始时间*/
	@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 startTime;
	/**结束时间*/
	@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 endTime;
	/**实际工时*/
	@Excel(name = "实际工时", width = 20, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern="yyyy-MM-dd")
	private java.util.Date actualHours;
	/**删除标识*/
	@Excel(name = "删除标识", width = 15)
	private java.lang.String delFlag;
	/**创建时间*/
	@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 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 updateTime;
	/**更新人*/
	@Excel(name = "更新人", width = 15)
	private java.lang.String updateBy;
	/**里程碑主键*/
	@Excel(name = "里程碑主键", width = 15)
	private java.lang.String pkMilestones;
	/**里程碑类型:01-临床，02-生物分析*/
	@Excel(name = "里程碑类型:01-临床，02-生物分析", width = 15)
	private java.lang.String milestonesType;
	/**单据号*/
	@Excel(name = "单据号", width = 15)
	private java.lang.String code;
	/**状态*/
	@Excel(name = "状态", width = 15)
	private java.lang.String status;

	//工时填报人
	private String hourFiller;

	//工时填报人id
	// private String hourFillerId;

	//角色id
	@NotEmpty(message = "角色不能为空")
	private String roleId;
	//角色名称
	private String roleName;

	//合同号
	@TableField(exist = false)
	private String contractCode;

	//项目名称
	@TableField(exist = false)
	private String projectDescription;

	//任务（里程碑模板项描述）
	@TableField(exist = false)
	private String description;

	//开始时间(主页查询条件)
	@TableField(exist = false)
	private String startDate;

	//结束时间(主页查询条件)
	@TableField(exist = false)
	private String endDate;

	//工时记录明细
	@TableField(exist = false)
	private List<FdWorkingHoursItems> fdWorkingHoursItemsList;

	//审核
	private String checkStatus;

	//审核状态名称
	private String checkName;

	//项目总工时
	private String projectHoursTotal;

	//非项目总工时
	private String nonProjectHoursTotal;

	//人员ids
	@TableField(exist = false)
	private List<String> perIdList;

	@TableField(exist = false)
	private List<Map<String,Object>> sheet;
}
