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：   2019-12-02
 * @version： V1.0
 */
@Data
@TableName("fd_income")
public class FdIncome implements Serializable {
    private static final long serialVersionUID = 1L;
    
	/**收入主表id*/
	@TableId(type = IdType.UUID)
	private String id;
	/**项目档案id*/
	@Excel(name = "项目档案id", width = 15)
	private String projectFileId;
	/**合同id*/
	@Excel(name = "合同id", width = 15)
	private String contractId;
	/**合同编码*/
	@Excel(name = "合同编码", width = 15)
	private String contractName;
	/**客户档案id*/
	@Excel(name = "客户档案id", width = 15)
	private String curstomerId;
	/**客户名称*/
	@Excel(name = "客户名称", width = 15)
	private String curstomerName;
	/**合同方id*/
	@Excel(name = "合同方id", width = 15)
	private String contractPartyId;
	/**合同方名称*/
	@Excel(name = "合同方名称", width = 15)
	private String contractPartyName;
	/**负责人id*/
	@Excel(name = "负责人id", width = 15)
	private String pfPersonId;
	/**负责人名称*/
	@Excel(name = "负责人名称", width = 15)
	private String pfPersonName;
	/**项目档案状态*/
	@Excel(name = "项目档案状态", width = 15)
	private String pfStatus;
	/**项目名称*/
	@Excel(name = "项目名称", width = 15)
	private String pfProjectName;
	/**合同签数日期*/
	@Excel(name = "合同签数日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	private Date pfSignDate;
	/**不带交付物的价值共计*/
	@Excel(name = "不带交付物的价值共计", width = 15)
	private Double withoutDeliverablesTotal;
	/**空腹总计*/
	@Excel(name = "空腹总计", width = 15)
	private Double fastingTotal;
	/**餐后总计*/
	@Excel(name = "餐后总计", width = 15)
	private Double afterMealTotal;
	/**耗材总计*/
	@Excel(name = "耗材总计", width = 15)
	private Double consumablesTotal;
	/**生物分析总计*/
	@Excel(name = "生物分析总计", width = 15)
	private Double biologicalAnalysisTotal;
	/**签署方预算金额*/
	@Excel(name = "签署方预算金额", width = 15)
	private Double signBudgetAmount;
	/**分包方预算金额*/
	@Excel(name = "分包方预算金额", width = 15)
	private Double toSubcontractBudgetAmount;
	/**项目管理总计*/
	@Excel(name = "项目管理总计", width = 15)
	private Double projectManagementTotal;
	/**完工百分比*/
	@Excel(name = "完工百分比", width = 15)
	private Double percentageOfCompletion;
	/**按照交付物确认收入总计*/
	@Excel(name = "按照交付物确认收入总计", width = 15)
	private Double deliverablesIncomeTotal;
	/**按照交付物价值比例摊销进的累计收入总计*/
	@Excel(name = "按照交付物价值比例摊销进的累计收入总计", width = 15)
	private Double deliverablesProportionIncomeTotal;
	/**按照交付物价值比例摊销项目管理费进的收入总计*/
	@Excel(name = "按照交付物价值比例摊销项目管理费进的收入总计", width = 15)
	private Double deliverablesManagementIncomeTotal;
	/**实际耗材应予确认的金额总计*/
	@Excel(name = "实际耗材应予确认的金额总计", width = 15)
	private Double actualConsumablesTotal;
	/**上海方达生物累计收入总计*/
	@Excel(name = "上海方达生物累计收入总计", width = 15)
	private Double accumulatedIncomeOne;
	/**方达医药累计收入总计*/
	@Excel(name = "方达医药累计收入总计", width = 15)
	private Double accumulatedIncomeTwo;
	/**化合物ids*/
	@Excel(name = "化合物ids", width = 15)
	private String compoundId;
	/**化合物名称*/
	@Excel(name = "化合物名称", width = 15)
	private String compoundName;
	/**删除标记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;
	/**自定义字段1*/
	@Excel(name = "自定义字段1", width = 15)
	private java.lang.String def1;
	/**自定义字段2*/
	@Excel(name = "自定义字段2", width = 15)
	private java.lang.String def2;
	/**自定义字段3*/
	@Excel(name = "自定义字段3", width = 15)
	private java.lang.String def3;
	/**自定义字段4*/
	@Excel(name = "自定义字段4", width = 15)
	private java.lang.String def4;
	/**自定义字段5*/
	@Excel(name = "自定义字段5", width = 15)
	private java.lang.String def5;

	//收入确认时间（月份）
	private String incomeDateMonth;

	//收入确认时间（月份）
	private String projectFileNo;

	//生物分析总监名称
	@TableField(exist = false)
	private String bioanalyticalPmName;

	//税率
	private String taxRate;

	//上月上海方达生物累计收入总计
	private Double accumulatedIncomeOneLastMonth;

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

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

	//实验室地点id
	private String labAddressId;

	//实验室地点名称
	private String labAddressName;


	//生物分析总监ids
	@TableField(exist = false)
	private List<String> bioanalyticalPmList;

	//收入确认明细集合
	@TableField(exist = false)
	private List<FdIncomeItem> fdIncomeItemList;
}
