package com.jeeplus.finance.projectRecords.domain;

import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jeeplus.core.domain.BaseEntity;
import com.jeeplus.core.query.Query;
import com.jeeplus.core.query.QueryType;
import com.jeeplus.sys.service.dto.OfficeDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * sys_user_project
 * @author 
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("project_records")
public class Project extends BaseEntity {

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

    /**
     * 客户名称
     */
    @Query
    private String customerName;

    /**
     * 年份
     */
    @Query
    private String year;

    /**
     * 项目名称
     */
    @Query
    private String projectName;

    /**
     * 评估目的
     */
    private String evaluationObjective;

    /**
     * 项目类型
     */
    private String projectType;

    /**
     * 评估基准日
     */
    private Date evaluationBaseDate;

    /**
     * 评估报告日
     */
    private Date evaluationReportDate;

    /**
     * 协议号
     */
    @Query
    private String protocolNum;

    /**
     * 文号
     */
    @Query
    private String documentNum;

    /**
     * 项目负责人
     */
    @Query
    private String projectHead;
    private String projectHeadId;

    /**
     * 废旧物资评估(万元)
     */
    private String waystEvaluation;

    /**
     * 固定资产评估(万元)
     */
    private String fixedAssetsEvaluation;

    /**
     * 净资产评估
     */
    private String netAssetsEvaluation;

    /**
     * 租金评估(万/年)
     */
    private String rentEvaluation;

    /**
     * 司法鉴定
     */
    private String forensics;

    /**
     * 报告收费(元)
     */
    private String reportCharges;

    /**
     * 当前处理人
     */
    private String currentDisposePerson;

    /**
     * 是否开票
     */
    private String isInvoice;

    /**
     * 开票日期
     */
    private Date invoiceDate;

    /**
     * 预估/实际收费(元）
     */
    private String actualCharges;

    /**
     * 合同是否存档
     */
    private String isContractArchive;

    /**
     * 底稿是否完好
     */
    private String isPapersIntact;

    /**
     * 底稿是否归档
     */
    private String isPapersArchive;

    /**
     * 报销外勤天数
     */
    private String opsAmount;

    /**
     * 外勤是否已经报销
     */
    private String isOpsReimbursement;

    /**
     * 已报销金额
     */
    private String reimbursementAmount;

    /**
     * 未报销金额
     */
    private String unreimbursedAmount;

    /**
     * 报销单号
     */
    private String reimbursementNum;

    /**
     * 报销日期
     */
    private Date reimbursementDate;

    /**
     * 签字评估师1
     */
    private String evaluationPersonOne;

    /**
     * 签字评估师2
     */
    private String evaluationPersonTwo;

    /**
     * 项目状态
     */
    private String status;

    /**
     * 评估报告日message
     */
    private String assessReportMessage;

    /**
     * 评估基准日message
     */
    private String assessBaseMessage;

    /**
     * 开票日期message
     */
    private String invoiceMessage;

    /**
     * 是否已经报销提成
     */
    private String isCommissionReimbursement;

    /**
     * 1、评估项目 2、咨询项目
     */
    @Query(type = QueryType.EQ)
    private String itemType;

    /**
     * 文件上传状态（0未完成1已完成）
     */
    @Query
    private String fileUploadType;

    private static final long serialVersionUID = 1L;

    /**
     * 归属公司
     * tableColumn 数据库中sql查询使用到的值
     * javaField 实体类中对应的字段
     */
    @Query(type = QueryType.EQ, tableColumn = "su.company_id", javaField = "companyDTO.id")
    private OfficeDTO companyDTO;

    /**
     * 归属部门
     */
    @Query(type = QueryType.EQ, tableColumn = "su.office.id", javaField = "officeDTO.id")
    private OfficeDTO officeDTO;

    private Boolean permissionFlag; //登陆人修改权限
}