package org.jeecg.modules.clinical.budget.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.clinical.budget.controller.FdClinicalBudgetTemplateTypeCostController;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;

/**
 * @Description: 临床预算表
 * @author： jeecg-boot
 * @date：   2019-08-17
 * @version： V1.0
 */
@Data
@TableName("fd_clinical_budget")
public class FdClinicalBudget implements Serializable {
    private static final long serialVersionUID = 1L;
    
	/**临床预算模板主键*/
	@TableId(type = IdType.UUID)
	private String id;
	/**临床预算号*/
	@Excel(name = "临床预算号", width = 15)
	private String clinicalBudgetCode;
	/**临床方案号（项目档案）*/
	@Excel(name = "临床方案号（项目档案）", width = 15)
	private String clinicalCode;
	/**项目名称（项目档案）*/
	@Excel(name = "项目名称（项目档案）", width = 15)
	private String projectName;
	/**客户id（项目档案）*/
	@Excel(name = "客户id（项目档案）", width = 15)
	private String customerId;
	/**客户名称（项目档案）*/
	@Excel(name = "客户名称（项目档案）", width = 15)
	private String customerName;
	/**合同方id(项目档案)*/
	@Excel(name = "合同方id(项目档案)", width = 15)
	private String contractPartyId;
	/**合同方名称（项目档案）*/
	@Excel(name = "合同方名称（项目档案）", width = 15)
	private String contractPartyName;
	/**合同签订日期*/
	@Excel(name = "合同签订日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	private Date contractSignDate;
	/**研究类型id*/
	@Excel(name = "研究类型id", width = 15)
	private String researchTypeId;
	/**研究类型名称*/
	@Excel(name = "研究类型名称", width = 15)
	private String researchTypeName;
	/**项目报价id*/
	@Excel(name = "项目报价id", width = 15)
	private String projectQuotationId;
	/**项目报价编码*/
	@Excel(name = "项目报价编码", width = 15)
	private String projectQuotationCode;
	/**删除标识0否1删除*/
	@Excel(name = "删除标识0否1删除", width = 15)
	private String delFlag;
	/**创建人*/
	@Excel(name = "创建人", width = 15)
	private 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 Date createTime;
	/**修改人*/
	@Excel(name = "修改人", width = 15)
	private 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 Date updateTime;
	/**自定义字段1*/
	@Excel(name = "自定义字段1", width = 15)
	private String def1;
	/**def2*/
	@Excel(name = "def2", width = 15)
	private String def2;
	/**def3*/
	@Excel(name = "def3", width = 15)
	private String def3;
	/**def4*/
	@Excel(name = "def4", width = 15)
	private String def4;
	/**def5*/
	@Excel(name = "def5", width = 15)
	private String def5;
	/**生物分析含税金额*/
	@Excel(name = "生物分析含税金额", width = 15)
	private String bioanalysisMoneyTax;
	/**生物分析不含税金额*/
	@Excel(name = "生物分析不含税金额", width = 15)
	private String bioanalysisMoneyNotTax;
	/**临床含税金额*/
	@Excel(name = "临床含税金额", width = 15)
	private String clinicalMoneyTax;
	/**临床不含税金额*/
	@Excel(name = "临床不含税金额", width = 15)
	private String clinicalMoneyNotTax;
	/**税率（项目报价）*/
	@Excel(name = "税率（项目报价）", width = 15)
	private String taxRate;
	/**生物分析预算负责人id*/
	@Excel(name = "生物分析预算负责人id", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private String biologicalBudgetPiId;
	/**生物分析预算负责人名称*/
	@Excel(name = "生物分析预算负责人名称", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private String biologicalBudgetPiName;
	/**临床预算负责人id*/
	@Excel(name = "临床预算负责人id", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private String clinicalBudgetPiId;
	/**临床预算负责人名称*/
	@Excel(name = "临床预算负责人名称", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private String clinicalBudgetPiName;
	/**生物分析预算日期*/
	@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")
	@TableField(strategy = FieldStrategy.IGNORED)
	private Date biologicalBudgetDate;
	/**临床预算日期*/
	@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")
	@TableField(strategy = FieldStrategy.IGNORED)
	private Date clinicalBudgetDate;
	/**生物分析启动日期*/
	@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")
	@TableField(strategy = FieldStrategy.IGNORED)
	private Date biologicalStartDate;
	/**临床启动日期*/
	@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")
	@TableField(strategy = FieldStrategy.IGNORED)
	private Date clinicalStartDate;
	/**生物分析结束日期*/
	@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")
	@TableField(strategy = FieldStrategy.IGNORED)
	private Date biologicalEndDate;
	/**临床结束日期*/
	@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")
	@TableField(strategy = FieldStrategy.IGNORED)
	private Date clinicalEndDate;
	/**临床工时总费用（临床工时的合计）*/
	@Excel(name = "临床工时总费用（临床工时的合计）", width = 15)
	private String clinicalHoursCostTotal;
	/**临床过手费总费用（临床过手费合计含税）*/
	@Excel(name = "临床过手费总费用（临床过手费合计含税）", width = 15)
	private String clinicalOverpaymentTotalTax;
	/**临床过手费总费用（临床过手费合计不含税）*/
	@Excel(name = "临床过手费总费用（临床过手费合计不含税）", width = 15)
	private String clinicalOverpaymentTotalNotTax;
	/**临床总费用*/
	@Excel(name = "临床总费用", width = 15)
	private String clinicalTotalCost;
	/**临床成本总费用（含税）（合同方表总计）*/
	@Excel(name = "临床成本总费用（含税）（合同方表总计）", width = 15)
	private String clinicalCostTotalTax;
	/**临床成本总费用（不含税）（合同方表总计）*/
	@Excel(name = "临床成本总费用（不含税）（合同方表总计）", width = 15)
	private String clinicalCostTotalNotTax;
	/**临床总工时（临床工时表的合计）*/
	@Excel(name = "临床总工时（临床工时表的合计）", width = 15)
	private String clinicalHoursTotal;
	/**差旅费用合计（临床过手费表）*/
	@Excel(name = "差旅费用合计（临床过手费表）", width = 15)
	private String clinicalOverpaymentTravelTotal;
	/**文件打印和运输费用合计（临床过手费表）*/
	@Excel(name = "文件打印和运输费用合计（临床过手费表）", width = 15)
	private String clinicalOverpaymentFilerTotal;
	/**其他固定费用（临床过手费表）*/
	@Excel(name = "其他固定费用（临床过手费表）", width = 15)
	private String clinicalOverpaymentOtherTotal;

	//空腹合同金额总计
	private String fastingTotal;

	//餐后合同金额总计
	private String fedTotal;

	//空腹和餐后合同金额总计
	private String contractTotal;

	//合同id
	private String contractId;

	//成本预算集合
	@TableField(exist = false)
	private List<FdClinicalBudgetTemplateTypeCost> fdClinicalBudgetTemplateTypeCostList;

	//公司成本预算集合
	@TableField(exist = false)
	private List<FdClinicalBudgetContractor> fdClinicalBudgetContractorList;

	//临床过手费明细集合
	@TableField(exist = false)
	private List<FdClinicalBudgetHandoverfeeItems> fdClinicalBudgetHandoverfeeItemsList;

	//临床管理项目明细
	@TableField(exist = false)
	private List<FdClinicalBudgetProjectCost> fdClinicalBudgetProjectCostList;

	//临床工时统计表
	@TableField(exist = false)
	private List<FdClinicalBudgetWorkingHoursItems> fdClinicalBudgetWorkingHoursItemsList;

	//临床工时总统计表
	@TableField(exist = false)
	private List<FdClinicalBudgetWorkingHoursTotal> fdClinicalBudgetWorkingHoursTotalList;

	//毛利分析统计表
	@TableField(exist = false)
	private List<FdClinicalGrossProfit> fdClinicalGrossProfitList;

	// 单位人工成本
	private String unitCost;

	// 审核人员Id
	@TableField(strategy = FieldStrategy.IGNORED)
	private String auditPersonId;

	// 审核人员名字
	@TableField(strategy = FieldStrategy.IGNORED)
	private String auditPersonName;

	// 审核状态
	private String status;

	//项目号
	private String projectFileNo;

	//项目档案id
	private String projectFileId;
}
