package com.dayou.dto.history;

import lombok.Data;

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

@Data
public class HisAssetsOrder {
    /**
     * 等待入库
     */
    public static final String REPO_WAIT_IN = "WAIT_IN";
    /**
     * 在库
     */
    public static final String REPO_IN = "IN";
    /**
     * 已出库
     */
    public static final String REPO_OUT = "OUT";
    /**
     * 申请终止：待审批
     */
    public static final String APPLY_WAIT = "WAIT_APPLY";
    /**
     * 申请终止：同意终止
     */
    public static final String APPLY_PASS = "PASS";
    /**
     * 申请终止：不同意终止
     */
    public static final String APPLY_DENY = "DENY";

    /**
     * 产品类型
     */
    public static final String PRODUCT_YJS = "价值意见书";
    public static final String PRODUCT_ZXBG = "咨询报告";
    public static final String PRODUCT_BG = "评估报告";
    public static final String PRODUCT_JZH = "意见函";

    /**
     * 客户经理ID
     */
    private String masterId;

    /**
     * 客户经理
     */
    private String masterName;

    /**
     * 是否为指派订单
     */
    private Boolean assign;

    /**
     * 负责部门Id
     */
    private String masterOrgId;

    /**
     * 负责部门
     */
    private String masterOrgName;

    /**
     * 项目编号
     */
    private String code;

    /**
     * 项目名称
     */
    private String name;

    /**
     * 业务类型
     */
    private String businessType;

    /**
     * 客户是否再次委托
     */
    private Boolean repeatOrder;

    /**
     * 业务来源ID
     */
    private String companyId;

    /**
     * 业务来源
     */
    private String companyName;

    /**
     * 委托人
     */
    private String principal;

    /**
     * 委托联系人姓名
     */
    private String principalName;

    /**
     * 委托联系人电话
     */
    private String principalMobile;

    /**
     * 备注
     */
    private String description;

    /**
     * 报告号
     */
    private String reportNO;

    /**
     * 主报告号
     */
    private String mainReportNO;

    /**
     * 报告号
     */
    private String yjsReportNO;

    /**
     * 主报告号
     */
    private String yjsMainReportNO;

    /**
     * 当前节点id
     */
    private String nowNodeId;

    /**
     * 当前节点
     */
    private String nowNodeName;

    /**
     * 当前节点负责人id
     */
    private String nowNodeEmpId;

    /**
     * 当前节点负责人
     */
    private String nowNodeEmpName;

    /**
     * 项目负责人id
     */
    private String managerId;

    /**
     * 项目负责人
     */
    private String managerName;

    /**
     * 项目参与人
     */
    private String members;

    /**
     * 分单人id
     */
    private String orderEmpId;

    /**
     * 分单人
     */
    private String orderEmpName;

    /**
     * 下单时间
     */
    private Date orderTime;

    /**
     * 实勘时间
     */
    private Date surveyDate;

    /**
     * 项目负责人完成定价的时间
     */
    private Date approvePriceTime;

    /**
     * 项目负责人完成勘查定价的时长，从下单时间开始计算,单位：天
     */
    private Double approvePriceDuration;

    /**
     * 是否计算接件数
     */
    private Boolean calculateOrders;

    /**
     * 是否计算报价效率
     */
    private Boolean calculatePriceEfficiency;

    /**
     * 评估总金额
     */
    private Double money;

    /**
     * 评估面积/建筑面积
     */
    private Double area;

    /**
     * 评估单价
     */
    private Double price;

    /**
     * 价值时点
     */
    private Date priceDate;

    /**
     * 特殊情况说明
     */
    private String principalDescription;

    /**
     * 资产持有人
     */
    private String ownerName;

    /**
     * 签字人1id
     */
    private String signEmpId1;

    /**
     * 签字人1
     */
    private String signEmpName1;

    /**
     * 签字人2id
     */
    private String signEmpId2;

    /**
     * 签字人2
     */
    private String signEmpName2;

    /**
     * 折扣比例
     */
    private Double discount;

    /**
     * 应收金额
     */
    private Double needPay;

    /**
     * 应收款的填写时间
     */
    private Date needPayRecordTime;

    /**
     * 标准收费
     */
    private Double standardPrice;

    /**
     * 实收
     */
    private Double realPay;

    /**
     * 实收款ID
     */
    private String incomeId;

    /**
     * 公司代码
     */
    private String companyNO;

    /**
     * 打印份数
     */
    private Integer printTimes;

    /**
     * 是否完成了付款
     */
    private Boolean payed;

    /**
     * 是否需要复审
     */
    private Boolean needApprove2;

    /**
     * 库存状态
     */
    private String repo;

    /**
     * 是否完成
     */
    private Boolean finished;

    /**
     * 申请终止
     */
    private String applyStop;

    /**
     * 申请终止任务Id
     */
    private String applyStopTaskId;

    /**
     * 申请终止的理由
     */
    private String stopReason;

    /**
     * 流程实例id
     */
    private String flowInstanceId;

    /**
     * 进度描述
     */
    private String progress;

    /**
     * 提前出库申请
     */
    private String outRepoApply;

    /**
     * 提前出库申请的理由
     */
    private String outRepoApplyReason;

    /**
     * 出具意见书实际时间
     */
    private Date yjsOutDate;

    /**
     * 出具报告实际时间
     */
    private Date bgOutDate;

    /**
     * 实际出库时间
     */
    private Date outRepoTime;

    /**
     * 意见书入库时间
     */
    private Date yjsInRepoTime;

    /**
     * 意见书出库时间
     */
    private Date yjsOutTime;

    /**
     * 报告入库时间
     */
    private Date bgInTime;

    /**
     * 报告出库时间
     */
    private Date bgOutTime;

    /**
     * 归档时间
     */
    private Date archiveTime;

    /**
     * 从下单到归档的总时长
     */
    private Double archiveDuration;

    /**
     * 提前出库时绑定的流程任务ID
     */
    private String outRepoApplyTaskId;

    /**
     * 是否出具价值意见书
     */
    private Boolean yjs;

    /**
     * 价值意见书打印份数
     */
    private Integer yjsPrintQuantity;

    /**
     * 报告书二审人
     */
    private String bgApprove2EmpId;

    /**
     * 报告书二审人
     */
    private String bgApprove2EmpName;

    /**
     * 报告打印份数
     */
    private Integer bgPrintQuantity;

    /**
     * 当前产品
     */
    private String nowProduct;

    /**
     * 是否出具报告
     */
    private Boolean bg;

    /**
     * 是否出具复评函
     */
    private Boolean fph;

    /**
     * 复评函打印份数
     */
    private Integer fphPrintQuantity;

    /**
     * 报告得分
     */
    private String bgScore;

    /**
     * 抽检重大错误个数
     */
    private Integer cjError1;

    /**
     * 抽检较大错误个数
     */
    private Integer cjError2;

    /**
     * 抽检一般错误个数
     */
    private Integer cjError3;

    /**
     * 抽检扣分原因
     */
    private String cjReason;

    /**
     * 抽检日期
     */
    private Date cjTime;

    /**
     * 抽检人
     */
    private String cjEmpName;

    /**
     * 外部投诉录入人
     */
    private String wbtsEmpName;

    /**
     * 外部投诉重大错误个数
     */
    private Integer wbtsError1;

    /**
     * 外部投诉较大错误个数
     */
    private Integer wbtsError2;

    /**
     * 外部投诉一般错误个数
     */
    private Integer wbtsError3;

    /**
     * 外部投诉态度恶劣个数
     */
    private Integer wbtsError4;

    /**
     * 外部投诉扣分原因
     */
    private String wbtsReason;

    /**
     * 外部投诉录入日期
     */
    private Date wbtsTime;

    /**
     * 内部投诉录入人
     */
    private String nbtsEmpName;

    /**
     * 内部投诉重大错误个数
     */
    private Integer nbtsError1;

    /**
     * 内部投诉较大错误个数
     */
    private Integer nbtsError2;

    /**
     * 内部投诉一般错误个数
     */
    private Integer nbtsError3;

    /**
     * 内部投诉态度恶劣个数
     */
    private Integer nbtsError4;

    /**
     * 内部投诉扣分原因
     */
    private String nbtsReason;

    /**
     * 内部投诉的录入日期
     */
    private Date nbtsTime;

    /**
     * 疑难项目加减分
     */
    private Double difficultScore;

    /**
     * 疑难项目加减分记录日期
     */
    private Date difficultTime;

    /**
     * 疑难项目加减分的原因
     */
    private String difficultReason;

    /**
     * 财务损失金额
     */
    private Double lossMoney;

    /**
     * 财务损失记录时间
     */
    private Date lossRecordTime;

    /**
     * 财务损失记录id
     */
    private String lossRecordEmpId;

    /**
     * 财务损失记录人
     */
    private String lossRecordEmpName;

    /**
     * 财务损失备注
     */
    private String lossMoneyDescription;

    /**
     * 电子二维码
     */
    private String infoQR;

    /**
     * 已开票金额
     */
    private Double ticketMoney;

    /**
     * 报告送达的确认时间
     */
    private Date confirmTime;

    /**
     * 尾款
     */
    private Double balanceMoney;

    /**
     * 是否涉及境外资产
     */
    // 评估对象ID，用于取号时传递过来取小号用
    private List<String> targetIds;

    @NotNull
    private Boolean deleted;

    /**
     * 客户分类
     */
    private String customerType;

    /**
     * 客户ID
     */
    private String customerId;


    private String customerName;

    /**
     * 业务来源
     */
    private String customerId2;


    private String customerName2;

    /**
     * 联系人ID
     */
    private String contactId;


    private String bankContactName;


    private String bankContactMobile;

    /**
     * 联系人所在部门
     */
    private String contactOrg;

    /**
     * 联系人职务
     */
    private String contactDuty;

    /**
     * 终端客户ID
     */
    private String terminalId;

    /**
     * 终端客户名称
     */
    private String terminalName;

    /**
     * 终端客户类型
     */
    private String terminalType;

    /**
     * 终端客户联系人ID
     */
    private String terminalContactId;

    /**
     * 终端客户联系人姓名
     */
    private String terminalContactName;

    /**
     * 终端客户联系人电话
     */
    private String terminalContactMobile;

    /**
     * 贷款性质
     */
    private String loanProperty;

    /**
     * 贷款用途
     */
    private String loanUsage;

    /**
     * 贷款是否到期
     */
    private Boolean loanExpired;

    /**
     * 是否分配产值
     */
    private Boolean cz;

    /**
     * 是否为证券项目
     */
    private Boolean stock;

    /**
     * 是否为重大资产重组项目
     */
    private Boolean importantAsset;

    /**
     * 是否为国有资产
     */
    private Boolean stateOwned;

    /**
     * 是否涉及境外资产
     */
    private Boolean abroadAsset;
}
