package org.jeecg.modules.financeManage.entity;

import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
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;

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

/**
 * @Description: 项目应收款子表
 * @author： jeecg-boot
 * @date：   2019-07-22
 * @version： V1.0
 */
@Data
@TableName("fd_project_receivables_b")
public class FdProjectReceivablesB implements Serializable {
    private static final long serialVersionUID = 1L;
    
	/**项目应收款子表主键*/
	@TableId(type = IdType.UUID)
	private String id;
	/**表头主键*/
	private String pkHeadId;
	/**序号*/
    @Excel(name = "序号", width = 15)
	private Integer number;
	/**里程碑*/
    @Excel(name = "里程碑", width = 15)
	@NotEmpty(message = "里程碑不能为空")
	private String milepost;
	/**估计量*/
    @Excel(name = "估计量", width = 15)
	@NotEmpty(message = "估计量不能为空")
	private String estimator;
	/**合同金额*/
    @Excel(name = "合同金额", width = 15)
	// @NotNull(message = "合同金额不能为空")
	private Double contractAmount;
	/**金额说明*/
    @Excel(name = "金额说明", width = 15)
	private String amountinfo;
	/**付款通知书号*/
    @Excel(name = "付款通知书号", width = 15)
	private String noticeCode;
	/**付款通知书日期*/
	@Excel(name = "付款通知书日期", width = 20, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	private Date noticeDate;
	/**付款通知书金额*/
    @Excel(name = "付款通知书金额", width = 15)
	private Double noticeAmount;
	/**到款日期*/
	@Excel(name = "到款日期", width = 20, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	private Date paymentDate;
	/**开票日期*/
	@Excel(name = "开票日期", width = 20, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	private Date invoiceDate;
	/**实际开票金额*/
    @Excel(name = "实际开票金额", width = 15)
	private Double actualAmount;
	/**发票开具日期*/
	@Excel(name = "发票开具日期", width = 20, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	private Date invoiceIssuanceDate;
	/**快递单号*/
    @Excel(name = "快递单号", width = 15)
	private String courierCode;
	/**账龄：显示字段，当前日期-付款通知书日期*/
    @Excel(name = "账龄：显示字段，当前日期-付款通知书日期", width = 15)
	private String accountAge;
	/**备注*/
    @Excel(name = "备注", width = 15)
	private String memo;

    //类别
	private String type;
	//类别名称（付款节点）
	private String typeName;

	//里程碑名称
	private String milepostName;
	//是否禁用0否1是
	private String isDisa;

	private String def1;
	private String def2;
	private String def3;
	private String def4;
	private String def5;
}
