package org.jeecg.modules.financeManage.vo;

import java.util.List;
import org.jeecg.modules.financeManage.entity.FdProjectReceivables;
import org.jeecg.modules.financeManage.entity.FdProjectReceivablesB;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;

@Data
public class FdProjectReceivablesPage {
	
	/**项目应收款主表主键*/
	private String id;
	/**项目名称*/
  	@Excel(name = "项目名称", width = 15)
	@NotEmpty(message = "项目名称不能为空")
	private String projectName;
	/**申办方名称*/
  	@Excel(name = "申办方名称", width = 15)
	private String applicantname;
	/**申办方id*/
  	@Excel(name = "申办方id", width = 15)
	private String pkApplicant;
	/**合同方id*/
  	@Excel(name = "合同方id", width = 15)
	private String pkContractparty;
	/**合同方名称*/
	@Excel(name = "合同方名称", width = 15)
	private String contractpartyname;
	/**合同号*/
  	@Excel(name = "合同号", width = 15)
	@NotEmpty(message = "合同号不能为空")
	private String contractno;
	/**客户名称*/
  	@Excel(name = "客户名称", width = 15)
	private String clientname;
	/**客户id*/
  	@Excel(name = "客户id", width = 15)
	private String pkClient;
	/**收款单号码*/
  	@Excel(name = "收款单号码", width = 15)
//	@NotEmpty(message = "收款单号码不能为空")
	private String code;
	/**收款单日期*/
  	@Excel(name = "收款单日期", width = 20, format = "yyyy-MM-dd")
  	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
//	@NotNull(message = "收款单日期不能为空")
	private Date orderdate;
	/**BD负责人*/
  	@Excel(name = "BD负责人", width = 15)
	private String bdPerson;
	/**BD负责人id*/
	private String bdPersonId;
	/**PM负责人*/
  	@Excel(name = "PM负责人", width = 15)
	private String bmPerson;
	/**财务负责人*/
  	@Excel(name = "财务负责人", width = 15)
	private String financePerson;

	/**财务负责人ID*/
	@NotEmpty(message = "财务负责人不能为空")
	private String financePersonId;
	/**备注*/
  	@Excel(name = "备注", width = 15)
	private String memo;
	/**化合物*/
  	@Excel(name = "化合物", width = 15)
	private String compound;
	/**合同金额*/
	@Excel(name = "合同金额", width = 15)
	private Double contractamount;
	/**货币种类*/
  	@Excel(name = "货币种类", width = 15)
	// @NotEmpty(message = "币别不能为空")
	private String currencyType;

	/**货币种类id*/
	@NotEmpty(message = "币别不能为空")
	private String currencyTypeId;
	/**状态（0保存，1审核，2弃审）*/
  	@Excel(name = "状态（0保存，1审核，2弃审）", width = 15)
	private String state;
	/**创建人*/
  	@Excel(name = "创建人", width = 15)
	private String createBy;
	/**创建人名称*/
  	@Excel(name = "创建人名称", width = 15)
	private String createName;
	/**创建时间*/
  	@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;
	/**updateName*/
  	@Excel(name = "updateName", width = 15)
	private String updateName;
	/**最后修改时间*/
  	@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;
	/**删除状态*/
  	@Excel(name = "删除状态", width = 15)
	private String delFlag;
	//项目号
	private String projectFileNo;
	//项目档案id
	private String pkProjectFile;

	private String def1;
	private String def2;
	private String def3;
	private String def4;
	private String def5;
	//付款方
	private String payerName;

	private String contractId;

	//PM负责人Id （项目档案的项目经理）
	private String bmPersonId;

	//合同说明
	private String contractDescription;

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

	@ExcelCollection(name="项目应收款子表")
	@Valid
	private List<FdProjectReceivablesB> fdProjectReceivablesBList;
	
}
