package com.ruoyi.project.business.domain;

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

import com.ruoyi.project.business.domain.vo.lead.LeadRes;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
import org.springframework.data.annotation.Transient;

/**
 * 项目管理对象 tc_project
 *
 * @author ruoyi
 * @date 2024-04-10
 */
@EqualsAndHashCode(callSuper = false)
@Data
public class TcProject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 项目ID */
    private Long projectId;

    /** 项目编号(自动采番） */
    @Excel(name = "项目编号", i18nCode = "project.no", sort = 1)
    private String projectNo;

    /** 项目名称 */
    @Excel(name = "项目名称", i18nCode = "project.name", sort = 9)
    private String projectName;

    /** 客户ID */
    private Long accountId;

    /** 项目地址 */
    private String address;

    /** 标杆项目 0:否  1:是 */
    private String modelFlag;

    @Transient
    @Excel(name = "标杆项目", i18nCode = "project.flag", sort = 11)
    private String modelFlagName;

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

    @Transient
    @Excel(name = "项目类型", i18nCode = "project.type", sort = 10)
    private String typeName;

    /** 项目细分市场（关联字典表） */
    private String segmentedMarket;

    @Excel(name = "产品系列", i18nCode = "project.productSeries", sort = 12)
    private String segmentedMarketName;

    /** 区域ID */
    private Long areaId;

    /** 区域 */
    @Transient
    @Excel(name = "区域", i18nCode = "lead.area", sort = 2)
    private String areaName;

    /** 国家ID */
    private Long countryId;

    /** 国家 */
    @Excel(name = "国家", i18nCode = "project.countryName", sort = 3)
    private String countryName;

    /** 城市 */
    @Excel(name = "城市", i18nCode = "project.city", sort = 4)
    private String city;
    
    private String progress;

    /** 开发商 */
    private String developer;

    /** 计划成交月份 新增 */
    @Excel(name = "计划成交月份", i18nCode = "project.planDealMonth", dateFormat = "yyyy-MM", sort = 5)
    private Date planDealMonth;

    /** 项目交期 新增 */
    @Excel(name = "项目交期", i18nCode = "project.completionYear", dateFormat = "yyyy-MM-dd", sort = 13)
    private Date completionYear;

    /** 开始时间 */
    private Date startTime;

    /** 结束时间 */
    private Date overTime;

    /** 币种ID */
    private Long currencyId;

    /** 联系人 */
    private String contactPerson;

    /** 联系方式 */
    private String contact;

    /** 职位 新增 */
    private String jobTitle;

    /** 邮箱 新增 */
    private String email;

    /** 项目状态  01待审批、02审批不通过、03审批通过、04已报价、05议价中、06已接受价格、07已成单、08已出图、98延期、99丢单、 */
    private String status;

    @Excel(name = "项目状态", i18nCode = "project.status", sort = 6)
    private String statusName;

    /** 产品型号 新增 */
    private String productSeries;

    /** 解决方案 新增 */
    private String solution;

    /** 所有人 */
    private Long owner;

    /** 负责人名称 */
    @Transient
    @Excel(name = "负责人", i18nCode = "business.owner", sort = 7)
    private String ownerName;

    /** 代理商 */
    private Long ownerAgent;

    /** 代理商名称 */
    @Transient
    @Excel(name = "所属代理商", i18nCode = "business.ownerAgent", sort = 8)
    private String ownerAgentName;

    /** 驳回原因 */
    private String refuseReason;

    /** 审批人 */
    private Long auditPerson;

    /** 延期备注 */
    private String delayRemark;

    /** 丢单备注 */
    private String loseRemark;

    /** 数据权限字符 */
    private String permissionChar;

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

    /** 关键决策人 */
    private String keyContactPerson;
    /** 联系方式 */
    private String keyContact;
    /** 职位 */
    private String keyJobTitle;
    /** 邮箱 */
    private String keyEmail;

    /** 特殊需求 */
    private String specialRemark;

    @Transient
    private String createByName;

    /** 最后跟进日期 */
    @Transient
    private Date lastFollowTime;

    @Transient
    private Long parentSaleId;

    @Transient
    private String accountNo;

    @Transient
    @Excel(name = "关联客户", i18nCode = "project.relatedCustomer", sort = 14)
    private String accountName;

    /** 最新跟进结果 */
    @Transient
    @Excel(name = "最新跟进结果", i18nCode = "account.followDesc", sort = 15)
    private String followDesc;

    /** 最新跟进时间 */
    @Transient
    @Excel(name = "最新跟进时间", i18nCode = "account.followTime", dateFormat= "yyyy-MM-dd", sort = 16)
    private Date followTime;

    /** 跟进人 */
    @Transient
    @Excel(name = "跟进人", i18nCode = "account.followPerson", sort = 17)
    private String followPerson;

    @Transient
    private Long leadId;

    /** 远程检索key */
    @Transient
    private String query;
    @Transient
    private Long loginId;
    @Transient
    private String language;

    //新增线索list
    List<Long> leadIds;

    List<LeadRes> leadList;
}
