package com.ruoyi.project.business.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
import org.springframework.data.annotation.Transient;

/**
 * 客户（组织）履历对象 tc_account_history
 * 
 * @author ruoyi
 * @date 2024-04-23
 */
public class TcAccountHistory extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 版本ID */
    private Long id;

    /** 客户ID */
    @Excel(name = "客户ID")
    private Long accountId;

    /** 客户编号 */
    @Excel(name = "客户编号")
    private String accountNo;

    /** 公司名称 */
    @Excel(name = "公司名称")
    private String accountName;

    /** 国家 */
    @Excel(name = "国家")
    private Long countryId;

    /** 地区（可输入） */
    @Excel(name = "地区", readConverterExp = "可=输入")
    private String area;

    /** 区域 */
    private Long areaId;

    /** 来源（关联字典表） */
    @Excel(name = "来源", readConverterExp = "关=联字典表")
    private String origin;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String phone;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 行业 */
    @Excel(name = "行业")
    private String sector;

    /** 注册资本 */
    @Excel(name = "注册资本")
    private String registeredCapital;

    /** 客户级别（关联字典表） */
    @Excel(name = "客户级别", readConverterExp = "关=联字典表")
    private String level;

    /** 成立日期 */
//    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "成立日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 客户所有人 */
    @Excel(name = "客户所有人")
    private Long owner;

    public Long getOwnerAgent() {
        return ownerAgent;
    }

    public void setOwnerAgent(Long ownerAgent) {
        this.ownerAgent = ownerAgent;
    }

    /** 客户所有代理商 */
    private Long ownerAgent;

    /** 状态（关联字典表，活跃、暂无意向） */
    @Excel(name = "状态", readConverterExp = "关=联字典表，活跃、暂无意向")
    private String status;

    /** 客户类型（0：终端客户 1 代理商） */
    @Excel(name = "客户类型", readConverterExp = "0=：终端客户,1=,代=理商")
    private String type;

    /** 公司介绍 */
    @Excel(name = "公司介绍")
    private String accountDesc;

    /** 成单状态 0：已成单  1：未成单 */
    @Excel(name = "成单状态 0：已成单  1：未成单")
    private String orderStatus;

    /** 所属集团 */
    @Excel(name = "所属集团")
    private String accountGroup;

    /** 版本号 */
    @Excel(name = "版本号")
    private Long version;

    /** 删除标记（0：启用  1：停用） */
    private String delFlag;

    @Transient
    private String nickName;

    @Transient
    private List<TcAccountContactHistory> contactList;

    @Transient
    private List<TbFile> fileList;

    /** 公司类型 新增 */
    private String companyType;

    /** 产品意向（关联字典表） 新增 */
    private String intentionalProduct;

    /** 项目类型（关联字典表） 新增 */
    private String segment;

    /** 公司网址 新增 */
    private String companyWebsite;

    /** 公司背景 新增 */
    private String background;

    /** 首次合作年份 新增 */
    private Date beginYear;

    public String getCompanyType() {
        return companyType;
    }

    public void setCompanyType(String companyType) {
        this.companyType = companyType;
    }

    public String getIntentionalProduct() {
        return intentionalProduct;
    }

    public void setIntentionalProduct(String intentionalProduct) {
        this.intentionalProduct = intentionalProduct;
    }

    public String getSegment() {
        return segment;
    }

    public void setSegment(String segment) {
        this.segment = segment;
    }

    public String getCompanyWebsite() {
        return companyWebsite;
    }

    public void setCompanyWebsite(String companyWebsite) {
        this.companyWebsite = companyWebsite;
    }

    public String getBackground() {
        return background;
    }

    public void setBackground(String background) {
        this.background = background;
    }

    public Date getBeginYear() {
        return beginYear;
    }

    public void setBeginYear(Date beginYear) {
        this.beginYear = beginYear;
    }

    public List<TbFile> getFileList() {
        return fileList;
    }

    public void setFileList(List<TbFile> fileList) {
        this.fileList = fileList;
    }

    public List<TcAccountContactHistory> getContactList() {
        return contactList;
    }

    public void setContactList(List<TcAccountContactHistory> contactList) {
        this.contactList = contactList;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setAccountId(Long accountId) 
    {
        this.accountId = accountId;
    }

    public Long getAccountId() 
    {
        return accountId;
    }
    public void setAccountNo(String accountNo) 
    {
        this.accountNo = accountNo;
    }

    public String getAccountNo() 
    {
        return accountNo;
    }
    public void setAccountName(String accountNanme)
    {
        this.accountName = accountNanme;
    }

    public String getAccountName()
    {
        return accountName;
    }
    public void setCountryId(Long countryId) 
    {
        this.countryId = countryId;
    }

    public Long getCountryId() 
    {
        return countryId;
    }
    public void setArea(String area) 
    {
        this.area = area;
    }

    public String getArea() 
    {
        return area;
    }
    public void setOrigin(String origin)
    {
        this.origin = origin;
    }

    public String getOrigin()
    {
        return origin;
    }
    public void setPhone(String phone) 
    {
        this.phone = phone;
    }

    public String getPhone() 
    {
        return phone;
    }
    public void setEmail(String email) 
    {
        this.email = email;
    }

    public String getEmail() 
    {
        return email;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setSector(String sector) 
    {
        this.sector = sector;
    }

    public String getSector() 
    {
        return sector;
    }
    public void setRegisteredCapital(String registeredCapital) 
    {
        this.registeredCapital = registeredCapital;
    }

    public String getRegisteredCapital() 
    {
        return registeredCapital;
    }
    public void setLevel(String level)
    {
        this.level = level;
    }

    public String getLevel()
    {
        return level;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setOwner(Long owner) 
    {
        this.owner = owner;
    }

    public Long getOwner()
    {
        return owner;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setType(String type) 
    {
        this.type = type;
    }

    public String getType() 
    {
        return type;
    }
    public void setAccountDesc(String accountDesc) 
    {
        this.accountDesc = accountDesc;
    }

    public String getAccountDesc() 
    {
        return accountDesc;
    }
    public void setOrderStatus(String orderStatus)
    {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus()
    {
        return orderStatus;
    }
    public void setAccountGroup(String accountGroup) 
    {
        this.accountGroup = accountGroup;
    }

    public String getAccountGroup() 
    {
        return accountGroup;
    }
    public void setVersion(Long version) 
    {
        this.version = version;
    }

    public Long getVersion() 
    {
        return version;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public Long getAreaId() {
        return areaId;
    }

    public void setAreaId(Long areaId) {
        this.areaId = areaId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("accountId", getAccountId())
            .append("accountNo", getAccountNo())
            .append("accountNanme", getAccountName())
            .append("countryId", getCountryId())
            .append("area", getArea())
            .append("origin", getOrigin())
            .append("phone", getPhone())
            .append("email", getEmail())
            .append("address", getAddress())
            .append("sector", getSector())
            .append("registeredCapital", getRegisteredCapital())
            .append("level", getLevel())
            .append("startTime", getStartTime())
            .append("owner", getOwner())
            .append("status", getStatus())
            .append("type", getType())
            .append("accountDesc", getAccountDesc())
            .append("orderStatus", getOrderStatus())
            .append("accountGroup", getAccountGroup())
            .append("version", getVersion())
            .append("delFlag", getDelFlag())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateTime", getUpdateTime())
            .append("updateBy", getUpdateBy())
            .append("remark", getRemark())
            .toString();
    }
}
