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

import javax.validation.constraints.NotEmpty;

/**
 * @Description: 尾款结算
 * @author： tanj
 * @date：   2019-07-20
 * @version： V1.0
 */
@Data
@TableName("fd_balance_payment_settlement")
public class FdBalancePaymentSettlement implements Serializable {
    private static final long serialVersionUID = 1L;
    
	/**主键*/
	@TableId(type = IdType.UUID)
	private String id;
	/**单号*/
	@Excel(name = "尾款单号", width = 15)
	private String statementNo;
	/**合同id*/
	@NotEmpty(message = "合同id不能为空")
	@Excel(name = "合同id", width = 15)
	private String contractId;
	/**合同号*/
	@NotEmpty(message = "合同号不能为空")
	@Excel(name = "合同号", width = 15)
	private String contractCode;
	/**合同金额*/
	@NotEmpty(message = "合同金额不能为空")
	@Excel(name = "合同金额", width = 15)
	private String contractMoney;
	/**结算金额*/
	@NotEmpty(message = "结算金额不能为空")
	@Excel(name = "结算金额", width = 15)
	private String settlementMoney;
	/**申办方id*/
	@Excel(name = "申办方id", width = 15)
	private String pkBidParty;
	/**申办方名称*/
	@Excel(name = "申办方名称", width = 15)
	private String bidPartyName;
	/**合同方主键*/
	@Excel(name = "合同方主键", width = 15)
	private String pkContractParty;
	/**合同方名称*/
	@Excel(name = "合同方名称", width = 15)
	private String contractPartyName;
	/**客户缩写*/
	@Excel(name = "客户缩写", width = 15)
	private String bidPartyNameAbbreviation;
	/**化合物*/
	@Excel(name = "化合物", width = 15)
	private String compound;
	/**生物分析项目负责人id(人员id)*/
	@Excel(name = "生物分析项目负责人id(人员id)", width = 15)
	private String bioanalysisProjectLeaderId;
	/**生物分析项目负责人*/
	@Excel(name = "生物分析项目负责人", width = 15)
	private String bioanalysisProjectLeader;
	/**生物分析项目助理id(人员id)*/
	@Excel(name = "生物分析项目助理id(人员id)", width = 15)
	private String bioanalysisProjectAssistantId;
	/**生物分析项目助理*/
	@Excel(name = "生物分析项目助理", width = 15)
	private String bioanalysisProjectAssistant;
	/**生物分析负责人id(人员id)*/
	@Excel(name = "生物分析负责人id(人员id)", width = 15)
	private String headOfBiologicalAnalysisId;
	/**生物分析负责人*/
	@Excel(name = "生物分析负责人", width = 15)
	private String headOfBiologicalAnalysis;
	/**商务经理id(人员id)*/
	@Excel(name = "商务经理id(人员id)", width = 15)
	private String bdDirectorId;
	/**商务经理*/
	@Excel(name = "商务经理", width = 15)
	private String bdDirector;
	/**临床项目经理id(人员id)*/
	@Excel(name = "临床项目经理id(人员id)", width = 15)
	private String clinicalProjectManagerId;
	/**临床项目经理*/
	@Excel(name = "临床项目经理", width = 15)
	private String clinicalProjectManager;
	/**状态*/
	@Excel(name = "状态", width = 15)
	private String status;
	/**类别*/
	@Excel(name = "类别", width = 15)
	@NotEmpty(message = "类别不能为空")
	private String category;
	/**税费*/
	@Excel(name = "税费", width = 15)
	private String rate;
	/**备注*/
	@Excel(name = "备注", width = 15)
	// @NotEmpty(message = "备注不能为空")
	private String memo;
	/**删除标识*/
	@Excel(name = "删除标识", 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;

	//合同说明
	private String contractDescription;

	//付款节点id
	private String receivingNodeId;
	///付款节点名称
	private String receivingNodeName;

	//项目号
	private String projectFileNo;

	//项目档案id
	private String pkProjectFile;

	//临床服务费
	private String clinicalServiceFee;

	//临床过手费
	private String clinicalPassFee;

	//生物分析服务费
	private String biologicalAnalysisServiceFee;

	//生物分析耗材费
	private String biologicalAnalysisConsumablesFee;

	//结算单日期
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@TableField(strategy = FieldStrategy.IGNORED)
	private String statementDate;

	/**尾款详情集合*/
	@TableField(exist = false)
	List<FdBalancePaymentSettlementItem> balancePaymentSettlementItemList;
}
