package org.jeecg.modules.finance.entity;

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

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.modules.projectManagement.entity.FdContractClause;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * @Description: 补充合同应收款表
 * @author： jeecg-boot
 * @date：   2019-07-19
 * @version： V1.0
 */
@Data
@TableName("fd_supplementary_contract_receivables")
public class FdSupplementaryContractReceivables 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 pkProjectFile;
	/**项目名称*/
	@Excel(name = "项目名称", width = 15)
	private java.lang.String projectName;
	/**申办方主键*/
	@Excel(name = "申办方主键", width = 15)
	private java.lang.String pkBidparty;
	/**申办方名称*/
	@Excel(name = "申办方名称", width = 15)
	private java.lang.String bidpartyName;
	/**客户缩写*/
	@Excel(name = "客户缩写", width = 15)
	private java.lang.String bidpartyNameAbbreviation;
	/**合同主键*/
	@Excel(name = "合同主键", width = 15)
	private java.lang.String pkContract;
	/**合同号*/
	@Excel(name = "合同号", width = 15)
	@NotEmpty(message = "合同号不能为空")
	private java.lang.String contractCode;
	/**合同方主键*/
	@Excel(name = "合同方主键", width = 15)
	private java.lang.String pkContractParty;
	/**合同方名称*/
	@Excel(name = "合同方名称", width = 15)
	private java.lang.String contractPartyName;
	/**补充合同号*/
	@Excel(name = "补充合同号", width = 15)
	// @NotEmpty(message = "补充合同号不能为空")
	private java.lang.String supplementalContractCode;
	/**合同说明*/
	@Excel(name = "合同说明", width = 15)
	private java.lang.String contractDescription;
	/**收款单号码*/
	@Excel(name = "收款单号码", width = 15)
	@NotEmpty(message = "收款单号码不能为空")
	private java.lang.String receiptNumber;
	/**收款单日期*/
	@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")
//	@NotNull(message = "收款单日期不能为空")
	private java.util.Date receiptDate;
	/**bd负责人(商务经理)*/
	@Excel(name = "bd负责人(商务经理)", width = 15)
	private java.lang.String bdPersonInCharge;
	//bd负责人名称
	private java.lang.String bdPersonInChargeName;
	/**pm负责人*/
	@Excel(name = "pm负责人", width = 15)
	private java.lang.String pmPersonInCharge;
	//pm负责人名称
	private java.lang.String pmPersonInChargeName;
	/**财务负责人*/
	@Excel(name = "财务负责人", width = 15)
	@NotEmpty(message = "财务负责人不能为空")
	private java.lang.String financialManager;
	/**财务负责人*/
	@Excel(name = "财务负责人", width = 15)
	private java.lang.String financialManagerName;
	/**备注*/
	@Excel(name = "备注", width = 15)
	private java.lang.String memo;
	/**是否删除*/
	@Excel(name = "是否删除", 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;
	/**化合物*/
	@Excel(name = "化合物", width = 15)
	private java.lang.String compound;
	/**币别*/
	@Excel(name = "币别", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	@NotEmpty(message = "币别不能为空")
	private java.lang.String currency;
	/**币别名称*/
	@Excel(name = "币别名称", width = 15)
	@TableField(strategy = FieldStrategy.IGNORED)
	private java.lang.String currencyName;

	/**状态*/
	@Excel(name = "状态", width = 15)
	private java.lang.String status;

	//合同最终总金额
	private String finalTotalAmount;

	//项目号
	private String projectFileNo;
	//付款方
	private String payerName;


	//补充合同应收款子表
	@TableField(exist = false)
	private List<FdSupplementaryContractReceivablesB> fdSupplementaryContractReceivablesBList;

	//合同收款节点集合
	@TableField(exist = false)
	private List<FdContractClause> fdContractClauseList;

	//客户档案信用期
	@TableField(exist = false)
	private String creditPeriod;

}
