package com.jeeplus.business.project.service.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.business.project.domain.JyProjectMembers;
import com.jeeplus.business.workClientInfo.domain.JyWorkClientLinkman;
import com.jeeplus.core.domain.BaseEntity;
import com.jeeplus.sys.domain.WorkAttachmentInfo;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
public class JyProjectDTO extends BaseEntity implements Serializable {
    //项目编号（字典值）
    public static final String BIZ_CODE = "36";


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

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

    /**
     * 合同id
     */
    private String contractId;



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

    /**
     * 一审状态
     */
    private String firstInstanceStatus;

    /**
     * 二审状态
     */
    private String secondInstanceStatus;

    /**
     * 三审状态
     */
    private String thirdInstanceStatus;

    /**
     * 报告签发
     */
    private String reportIssuance;

    /**
     * 外审
     */
    private String outIssuance;

    /**
     * 报批签发
     */
    private String reportSubmit;

    /**
     * 归档状态
     */
    private String reviewStatus;

    /**
     * 合同情况(1:有合同  0:无合同)
     */
    private String contractStatus;

    /**
     * 项目所在地
     */
    private String projectPlace;

    /**
     * 建设地点
     */
    private String buildPlace;

    /**
     * 工程概况
     */
    private String projectOverview;

    /**
     * 特殊要求
     */
    private String special;


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

    /**
     * 关联合同下的项目排序
     */
    private String contractProjectNo;

    /**
     * 合同名称
     */
    private String contractName;

    /**
     * 委托方
     */
    private String client;

    /**
     * 委托方名称
     */
    private String clientName;

    /**
     * 项目负责人
     */
    private String projectLeader;
    /**
     * 创建时间
     */
    @TableField(exist = false)
    private String[] createDates;

    /**
     * 创建人id
     */
    @TableField(exist = false)
    private String createBy;

    /**
     * 项目登记  taskId
     */
    @TableField(exist = false)
    private String taskId;

    /**
     * 数据审核人  项目登记
     */
    @TableField(exist = false)
    private List<String> auditUserIds;

    /**
     * 委托方联系人
     */
    private List<JyWorkClientLinkman> clientList;
    /**
     * 附件
     */
    private List<WorkAttachmentInfo> files;

    /**
     * 项目组成员
     */
    private List<JyProjectMembersDTO> projectMembers;

    /**
     * 合同参数
     */
    @TableField(exist = false)
    private String contractAmount;
    @TableField(exist = false)
    private String contractType;
    @TableField(exist = false)
    private String contractTypeFirst;
    @TableField(exist = false)
    private String contractTypeFirstValue;

    @TableField(exist = false)
    private String place;
    @TableField(exist = false)
    private String leader;

    private String primaryLinkman;

    /**
     * 一级校审id
     */
    @TableField(exist = false)
    private String auditId1;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date  audit1UpdateTime;

    /**
     * 二级校审id
     */
    @TableField(exist = false)
    private String auditId2;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date  audit2UpdateTime;

    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date  audit3UpdateTime;

    /**
     * 三级校审id
     */
    @TableField(exist = false)
    private String auditId3;

    /**
     * 一级校审流程id
     */
    @TableField(exist = false)
    private String procInsId1;

    /**
     * 二级校审流程id
     */
    @TableField(exist = false)
    private String procInsId2;

    /**
     * 三级校审流程id
     */
    @TableField(exist = false)
    private String procInsId3;

    /**
     * 一级校审  taskId
     */
    @TableField(exist = false)
    private String taskIdAudit1;

    /**
     * 二级校审  taskId
     */
    @TableField(exist = false)
    private String taskIdAudit2;

    /**
     * 三级校审  taskId
     */
    @TableField(exist = false)
    private String taskIdAudit3;

    /**
     * 数据审核人  一级校审
     */
    @TableField(exist = false)
    private String auditUserIds1;

    /**
     * 数据审核人  二级校审
     */
    @TableField(exist = false)
    private String auditUserIds2;

    /**
     * 数据审核人  三级校审
     */
    @TableField(exist = false)
    private String auditUserIds3;

    /**
     * 审批部门
     */
    private String auditOffice;

    /**
     * 报批签发
     */
    @TableField(exist = false)
    private String reportsSubmitId;
    @TableField(exist = false)
    private String ReportsSubmit;
    @TableField(exist = false)
    private String procInsIdReports;
    @TableField(exist = false)
    private String taskIdReports;

    private String reportsStatus;

    //报批时间
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date  reportsTime;

    //报告时间
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date  reportTime;
    //报告状态
    private String reportStatus;

    /**
     * 环评资质状态
     */
    private String eiaStatus;

    /**
     * 外审时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date outTime;
    private String outInstance;


    /**
     * 项目进度及完成时间
     */
    private String process;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date processTime;

    private String officeName;


    /**
     * 归档
     */
    @TableField(exist = false)
    private String archiveId;
    @TableField(exist = false)
    private String procInsIdArchive;
    @TableField(exist = false)
    private String taskIdArchive;
    /**
     * 归档时间
     */
    @TableField(exist = false)
    private Date archiveTime;


    /**
     * 环评资质
     */
    @TableField(exist = false)
    private String eiaId;
    @TableField(exist = false)
    private String procInsIdEia;
    @TableField(exist = false)
    private String procInsReportIssuance;
    @TableField(exist = false)
    private String taskIdEia;

    /**
     * 用印id
     */
    @TableField(exist = false)
    private String sealId;

    /**
     * 外审信息
     */
    @TableField(exist = false)
    private String outInstanceId;
    @TableField(exist = false)
    private String procInsIdOut;
    @TableField(exist = false)
    private String taskIdOut;



}
