package org.jeecg.modules.basedata.entity;

import java.io.Serializable;
import java.util.ArrayList;
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;

import javax.validation.constraints.NotEmpty;

/**
 * @Description: 客户档案
 * @author： jeecg-boot
 * @date：   2019-05-05
 * @version： V1.0
 */
@Data
@TableName("fd_customer")
public class FdCustomer implements Serializable {
    private static final long serialVersionUID = 1L;
    
	/**客户档案主键*/
	@TableId(type = IdType.UUID)
	private java.lang.String id;
	/**客户编码*/
	@Excel(name = "客户编码", width = 15)
	// @NotEmpty(message = "客户编码不能为空")
	private java.lang.String code;
	/**客户名称*/
	@Excel(name = "客户名称", width = 15)
	@NotEmpty(message = "客户名称不能为空")
	private java.lang.String name;
	/**客户缩写*/
	@Excel(name = "客户缩写", width = 15)
	@NotEmpty(message = "客户缩写不能为空")
	private java.lang.String abbreviation;
	/**客户简称*/
	@Excel(name = "客户简称", width = 15)
	private java.lang.String shortName;
	/**联系人*/
	@Excel(name = "联系人", width = 15)
	private java.lang.String contacts;
	/**联系人电话*/
	@Excel(name = "联系人电话", width = 15)
	private java.lang.String telephone;
	/**联系人邮件*/
	@Excel(name = "联系人邮件", width = 15)
	private java.lang.String email;
	/**公司地址*/
	@Excel(name = "公司地址", width = 15)
	private java.lang.String address;
	/**公司电话*/
	@Excel(name = "公司电话", width = 15)
	private java.lang.String phone;
	/**税号*/
	@Excel(name = "税号", width = 15)
	private java.lang.String taxNo;
	/**开户行*/
	@Excel(name = "开户行", width = 15)
	private java.lang.String bank;
	/**账号*/
	@Excel(name = "账号", width = 15)
	private java.lang.String account;
	/**是否停用*/
	@Excel(name = "是否停用", width = 15)
	@NotEmpty(message = "是否停用不能为空")
	private java.lang.String enable;
	/**信用等级*/
	@Excel(name = "信用等级", width = 15)
	private java.lang.String creditGrade;
	/**信用期*/
	@Excel(name = "信用期", width = 15)
	private java.lang.String creditPeriod;
	/**删除标记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;
	/**备注*/
	@Excel(name = "备注", width = 15)
	private java.lang.String memo;
	/**扩展字段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 zipCode;

	//注册地址
	private String postalAddress;

	@Excel(name = "客户联系人")
	@TableField(exist = false)
	private  java.lang.String contactPsn;
	// @Excel(name = "页码")
	// @TableField(exist = false)
	// private Integer pageNo;
	// @Excel(name = "每页显示数")
	// @TableField(exist = false)
	// private Integer pageSize;
	@Excel(name = "联系人外键")
	@TableField(exist = false)
	private java.lang.String pkCustomerId;

	@Excel(name = "客户联系人表")
	@TableField(exist = false)
	private List<FdCustomerContacts> fdCustomerContactsList;

	//是否存在保存的客户缩写1不存在2存在
	@TableField(exist = false)
	private String isAbbreviation;

	//自身集合
	@TableField(exist = false)
	private List<FdCustomer> fdCustomerList;

}
