package org.jeecg.modules.financeManage.entity;

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

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;

/**
 * @Description: 临床收入确认
 * @author： jeecg-boot
 * @date：   2020-06-23
 * @version： V1.0
 */
@Data
@TableName("fd_clinical_income")
public class FdClinicalIncome implements Serializable {
    private static final long serialVersionUID = 1L;
    
	/**临床收入确认主表id*/
	@TableId(type = IdType.UUID)
	private String id;
	/**临床预算id*/
	@Excel(name = "临床预算id", width = 15)
	private String clinicalBudgetId;
	/**签署方id*/
	@Excel(name = "签署方id", width = 15)
	private String contractPartyId;
	/**签署方name*/
	@Excel(name = "签署方name", width = 15)
	private java.lang.String contractPartyName;
	/**申办方id*/
	@Excel(name = "申办方id", width = 15)
	private java.lang.String curstomerId;
	/**申办方name*/
	@Excel(name = "申办方name", width = 15)
	private java.lang.String curstomerName;

	/**项目档案id*/
	private String projectFileId;
	/**合同id*/
	@Excel(name = "合同id", width = 15)
	private java.lang.String contractId;
	/**项目号*/
	@Excel(name = "项目号", width = 15)
	private java.lang.String code;
	/**合同签署日*/
	@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 signDate;
	/**项目名称*/
	@Excel(name = "项目名称", width = 15)
	private String projectName;
	/**项目描述*/
	@Excel(name = "项目描述", width = 15)
	private String projectDescription;
	/**币种id*/
	@Excel(name = "币种id", width = 15)
	private String currencyTypeId;
	/**币种名称*/
	@Excel(name = "币种名称", width = 15)
	private String currencyTypeName;
	/**汇率*/
	@Excel(name = "汇率", width = 15)
	private String exchangeRate;
	/**研究中心id*/
	@Excel(name = "研究中心id", width = 15)
	private String researchCenterId;
	/**研究中心名称*/
	@Excel(name = "研究中心名称", width = 15)
	private String researchCenterName;
	/**项目整体进度*/
	@Excel(name = "项目整体进度", width = 15)
	private String overallProjectProgress;
	/**CRO服务类型*/
	@Excel(name = "CRO服务类型", width = 15)
	private String croTypeId;
	/**CRO服务类型名称*/
	@Excel(name = "CRO服务类型名称", width = 15)
	private String croTypeName;
	/**CRO服务*/
	@Excel(name = "CRO服务", width = 15)
	private Double croTotal;
	/**CRO相关服务类型*/
	@Excel(name = "CRO相关服务类型", width = 15)
	private String croCorrelationTypeId;
	/**CRO相关服务类型名称*/
	@Excel(name = "CRO相关服务类型名称", width = 15)
	private String croCorrelationTypeName;
	/**CRO相关服务*/
	@Excel(name = "CRO相关服务", width = 15)
	private Double croCorrelationTotal;
	/**临床操作类型*/
	@Excel(name = "临床操作类型", width = 15)
	private String clinicalOperationTypeId;
	/**临床操作类型名称*/
	@Excel(name = "临床操作类型名称", width = 15)
	private String clinicalOperationTypeName;
	/**临床操作*/
	@Excel(name = "临床操作", width = 15)
	private Double clinicalOperationTotal;
	/**含税合同金额*/
	@Excel(name = "含税合同金额", width = 15)
	private Double contractAmountIncludingTax;
	/**不含税合同金额*/
	@Excel(name = "不含税合同金额", width = 15)
	private Double contractAmountIncludingNotTax;
	/**项目预算金*/
	@Excel(name = "项目预算金", width = 15)
	private Double projectBudgetAmount;
	/**医院进度*/
	@Excel(name = "医院进度", width = 15)
	private String hospitalProgress;
	/**医院成本*/
	@Excel(name = "医院成本", width = 15)
	private Double hospitalCost;
	/**按本月进度确认医院成本*/
	@Excel(name = "按本月进度确认医院成本", width = 15)
	private Double thisMonthHospitalCost;
	/**按上月进度确认医院成本*/
	@Excel(name = "按上月进度确认医院成本", width = 15)
	private Double lastMonthHospitalCost;
	/**伦理费*/
	@Excel(name = "伦理费", width = 15)
	private Double ethicalFee;
	/**CRC*/
	@Excel(name = "CRC", width = 15)
	private Double crcFee;
	/**招募*/
	@Excel(name = "招募", width = 15)
	private Double recruitFee;
	/**报销等其他费用*/
	@Excel(name = "报销等其他费用", width = 15)
	private Double reimbursementAndOther;
	/**累计工时*/
	@Excel(name = "累计工时", width = 15)
	private String cumulativeWork;
	/**导入工时*/
	@Excel(name = "导入工时", width = 15)
	private String cumulativeWorkExport;
	/**按标准工时确认的工时成本*/
	@Excel(name = "按标准工时确认的工时成本", width = 15)
	private Double workCost;
	/**累计成本*/
	@Excel(name = "累计成本", width = 15)
	private Double cumulativeCost;
	/**完工百分比*/
	@Excel(name = "完工百分比", width = 15)
	private String percentageOfCompletion;
	/**累计应确认的收入*/
	@Excel(name = "累计应确认的收入", width = 15)
	private Double thisMonthAccumulatedRevenueToBeRecognized;
	/**截止上月已确认的收入*/
	@Excel(name = "截止上月已确认的收入", width = 15)
	private Double lastMonthAccumulatedRevenueToBeRecognized;
	/**本月应确认的收入*/
	@Excel(name = "本月应确认的收入", width = 15)
	private Double thisMonthRevenueToBeRecognized;
	/**本月应确认的医院成本*/
	@Excel(name = "本月应确认的医院成本", width = 15)
	private Double lastMonthRevenueToBeRecognized;
	/**预算工时*/
	@Excel(name = "预算工时", width = 15)
	private String budgetWork;
	/**实际工时*/
	@Excel(name = "实际工时", width = 15)
	private String actualWorkingHours;
	/**实际工时占预算工时百分比*/
	@Excel(name = "实际工时占预算工时百分比", width = 15)
	private Double actualBudgetWorkPercentage;
	/**项目档案状态*/
	@Excel(name = "项目档案状态", width = 15)
	private String projectFileStatus;
	/**删除标记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;
	/**自定义字段2*/
	@Excel(name = "自定义字段2", width = 15)
	private String def2;
	/**自定义字段3*/
	@Excel(name = "自定义字段3", width = 15)
	private String def3;
	/**自定义字段4*/
	@Excel(name = "自定义字段4", width = 15)
	private String def4;
	/**自定义字段5*/
	@Excel(name = "自定义字段5", width = 15)
	private String def5;

	/**合同税率*/
	private String taxRate;

	/**项目实际服务费收入*/
	@Excel(name = "项目实际服务费收入", width = 15)
	private Double serviceFeeIncome;
	/**项目实际服务费不含税收入*/
	@Excel(name = "项目实际服务费不含税收入", width = 15)
	private Double serviceFeeIncomeNotTax;
	/**实际工时成本*/
	@Excel(name = "实际工时成本", width = 15)
	private Double actualWorkCost;
	/**服务费毛利*/
	@Excel(name = "服务费毛利", width = 15)
	private Double grossProfitOfServiceFee;
	/**实际服务毛利率*/
	@Excel(name = "实际服务毛利率", width = 15)
	private Double grossProfitRateOfServiceFee;

	/**项目实际过手费收入*/
	@Excel(name = "项目实际过手费收入", width = 15)
	private Double overchargeIncome;
	/**项目实际过手费不含税收入*/
	@Excel(name = "项目实际过手费不含税收入", width = 15)
	private Double overchargeIncomeNotTax;
	/**实际过手费成本*/
	@Excel(name = "实际过手费成本", width = 15)
	private Double actualPassingFeeCost;
	/**过手费毛利*/
	@Excel(name = "过手费毛利", width = 15)
	private Double grossProfitOfPassingFee;
	/**过手费毛利率*/
	@Excel(name = "过手费毛利率", width = 15)
	private Double grossProfitRateOfPassingFee;

	/**收入确认月份*/
	private String incomeDateMonth;

	//结算状态id(1未结算2已结算)
	private String settlementStatusId;

	//结算状态名称(1未结算2已结算)
	private String settlementStatusName;

	//预算成本子表
	@TableField(exist = false)
	private List<FdClinicalIncomeBudgetCost> fdClinicalIncomeBudgetCostList;

	//项目实际服务费收入子表
	@TableField(exist = false)
	private List<FdClinicalIncomeServiceFeeIncome> fdClinicalIncomeServiceFeeIncomeList;

	//项目实际过手费收入子表
	@TableField(exist = false)
	private List<FdClinicalIncomeOverchargeIncome> fdClinicalIncomeOverchargeIncomeList;

	@TableField(exist = false)
	private List<FdClinicalIncome> fdClinicalIncomeList;
}
