package com.jeeplus.finance.workClientInfo.service.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.core.domain.BaseEntity;
import com.jeeplus.core.service.dto.BaseDTO;
import com.jeeplus.sys.domain.WorkAttachmentInfo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * 财务-客户信息管理-客户基本信息
 * @TableName cw_work_client_base
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class CwWorkClientBaseDTO extends BaseDTO {

    public static final String BIZ_CODE = "11";

    /**
     * 客户分类表id
     */
    private String clientId;

    /**
     * 备注信息
     */
    private String remarks;

    /**
     * 客户编号
     */
    @Excel(name = "客户编号",width = 25,orderNum = "1")
    private String no;

    /**
     * 客户名称
     */
    @Excel(name = "客户名称",width = 30,orderNum = "0")
    private String name;

    /**
     * 客户简称
     */
    private String abbreviation;

    /**
     * 英文名称
     */
    @Excel(name = "英文名称",width = 25,orderNum = "4")
    private String englishName;

    /**
     * 客户类型
     */
    @Excel(name = "客户类型",width = 25,orderNum = "2")
    private String type;

    /**
     * 统一社会信用代码
     */
    @Excel(name = "统一社会信用代码",width = 25,orderNum = "3")
    private String uscCode;

    /**
     * 特殊客户类型
     */
    private String scType;

    /**
     * 管理级次分类
     */
    private String manageLevelType;

    /**
     * 上一级公司
     */
    private String oneUpCompany;

    /**
     * 上一级公司名称
     */
    private String oneUpCompanyName;

    /**
     * 公司级次
     */
    private String companyLevel;

    /**
     * 经营范围
     */
    private String businessScope;

    /**
     * 主要职责
     */
    private String keyResponsibilities;

    /**
     * 所属行业
     */
    @Excel(name = "所属行业",width = 25,orderNum = "5")
    private String industry;

    /**
     * 企业隶属关系划分
     */
    @Excel(name = "企业隶属关系划分",width = 25,orderNum = "7")
    private String affiliation;

    /**
     * 按组织类型分类
     */
    private String organizationType;

    /**
     * 客户报备类型
     */
//    @Excel(name = "客户报备类型",width = 25,orderNum = "10")
    private String reportType;

    /**
     * 上级部门
     */
    private String oneUpOffice;

    /**
     * 登记证书号码
     */
    private String registrationCert;

    /**
     * 批准机构
     */
    private String approvingBodies;

    /**
     * 所属部门
     */
    private String officeId;

    /**
     * 流程id
     */
    private String procInsId;

    /**
     * 流程信息
     */
    private String processDefinitionId;

    /**
     * 状态
     */
    @Excel(name = "修改申请状态",width = 25,orderNum = "14")
    private String status;

    /**
     * 审核通过时间
     */
    private Date agreeDate;

    /**
     * 审核人
     */
    private String agreeUserId;

    /**
     * 客户类型
     */
    private CwWorkClientTypeDTO cwWorkClientTypeDTO;

    /**
     * 开票信息
     */
    private List<CwWorkClientBillingDTO> cwWorkClientBillingDTOList;

    /**
     * 联系人信息
     */
    private List<CwWorkClientContactDTO> cwWorkClientContactDTOList;

    /**
     * 附件
     */
    private List<WorkAttachmentInfo> workAttachmentDtoList;

    /**
     * 创建时间
     */
    private String[] createDates;

    /**
     * 项目id
     */
    private String projectId;

    /**
     * 是否上市
     */
    @Excel(name = "是否上市",width = 25,orderNum = "6")
    private String isListed;

    /**
     * 按所有制性质分类
     */
    @Excel(name = "按所有制性质分类",width = 25,orderNum = "8")
    private String ownershipType;

    /**
     * 按最终地位分类
     */
    @Excel(name = "按最终地位分类",width = 25,orderNum = "9")
    private String finalStatusType;

    /**
     * 创建人
     */
    @Excel(name = "创建人",width = 25,orderNum = "11")
    private String createName;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间",exportFormat = "yyyy-MM-dd HH:mm:ss",width = 25,orderNum = "12")
    private Date createDateT;

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

    /**
     * 联系电话
     */
    private String mobile;

    /**
     * 是否有社会统一信用代码
     */
    private String isUscCode;

    /**
     * 管理级次分类名称
     */
    private String manageLevelTypeName;

    /**
     * 按组织类型分类名称
     */
    private String organizationTypeName;

    /**
     * 修改申请临时表id
     */
    private String updateRequestId;

    /**
     * 拥有人id
     */
    private String updateUser;

    /**
     * 拥有人姓名
     */
    @Excel(name = "拥有人",width = 25,orderNum = "13")
    private String updateUserName;

    /**
     * 当前修改申请人id
     */
    private String requestUserId;

    /**
     * 值为 “1”，则查询客户status为 0 或 5 的数据
     */
    private String isTrue;

    /**
     * 数据审核人
     */
    private List<String> auditUserIds;

    private static final long serialVersionUID = 1L;
}
