package com.jeeplus.assess.workContract.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.core.domain.BaseEntity;
import com.jeeplus.core.query.Query;
import lombok.Data;

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

@Data
@TableName("work_contract_info")
public class WorkContractInfo extends BaseEntity {

    /**
     * 客户id
     */
    private String clientId;

    /**
     * 客户名称
     */
    @Query(tableColumn = "a.client_name")
    private String clientName;

    /**
     * 合同编号
     */
    @Query(tableColumn = "a.no")
    private String no;

    /**
     * 合同名称
     */
    @Query(tableColumn = "a.name")
    private String name;

    /**
     * 签订日期
     */
    @Query(tableColumn = "a.contract_date")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date contractDate;

    /**
     * 合同生效日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date effectiveDate;

    /**
     * 合同终止日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date closingDate;

    /**
     * 合同类型
     */
    private String contractType;

    /**
     * 合同金额类别
     */
    private String contractAmountType;

    /**
     * 合同金额
     */
    @Query(tableColumn = "a.contract_amount")
    private String contractAmount;

    /**
     * 对方合同编号
     */
    private String contractOpposite;

    /**
     * 收费标准
     */
    private String contractFee;

    private String fees;

    /**
     * 描述
     */
    private String describes;

    /**
     * 合同特别条款
     */
    private String contractSpecial;

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

    /**
     * 归档人
     */
    private String filedBy;

    /**
     * 归档日期
     */
    private String filedDate;

    /**
     * 案卷号
     */
    private String filedNo;

    /**
     * 确认案卷号
     */
    private String confirmFiledNo;

    /**
     * 说明
     */
    private String filedRemarks;

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

    private String processDefinitionId;

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

    /**
     * 作废状态
     */
    @TableField(exist = false)
    private String cancelStatus;
    /**
     * 类型（作废，恢复）
     */
    @TableField(exist = false)
    private String cancelType;


    /**
     * 作废/恢复原因
     */
    @TableField(exist = false)
    private String reason;

    /**
     * 作废流程id
     */
    @TableField(exist = false)
    private String procInsIdCancel;

    @TableField(exist = false)
    private String processDefinitionIdCancel;

    /**
     * 作废数据id
     */
    @TableField(exist = false)
    private String cancelId;

    /**
     * 作废流程任务id
     */
    @TableField(exist = false)
    private String taskIdCancel;

    /**
     * 作废流程审核人
     */
    @TableField(exist = false)
    private  List<String> auditUserIdsCancel;

    /**
     * 归档状态
     */
    @Query(tableColumn = "d.filed_type")
    private String filedType;

    /**
     * 借用状态
     */
    private String borrowType;

    @TableField(exist = false)
    private String[] contractDates;

    @TableField(exist = false)
    private String[] contractAmounts;

    @TableField(exist = false)
    private String taskId;

    @TableField(exist = false)
    private String taskFiledId;

    @TableField(exist = false)
    private String taskBorrowId;

    @TableField(exist = false)
    private String createId;

    @TableField(exist = false)
    private String contractFileId;

    @TableField(exist = false)
    private String statusList;

    /**
     * 数据审核人  合同登记
     */
    @TableField(exist = false)
    private List<String> auditUserIds;
    /**
     * 数据审核人  合同归档
     */
    @TableField(exist = false)
    private List<String> auditUserIdsFiled;


    /**
     * 合同关联的报告号
     */
    @TableField(exist = false)
    private List<String> reportNoList;


    /**
     * 合同关联的报告号
     */
    @TableField(exist = false)
    private String reportNo;

    /**
     * 合同关联的报告号
     */
    @TableField(exist = false)
    private String reportNos;

}
