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

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.core.service.dto.BaseDTO;
import com.jeeplus.finance.projectRecords.service.dto.CwProjectRecordsDTO;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * 财务-项目报告归档-项目归档
 */
@Data
public class CwProjectReportArchiveDTO extends BaseDTO {

    @TableField(exist = false)
    private String taskBorrowId;

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

    /**
     * 借用人id
     */
    @TableField(exist = false)
    private String borrowUserId;

    /**
     * 借用流程id
     */
    @TableField(exist = false)
    private String procInsId2;

    public static final String BIZ_CODE = "15";

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

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

    /**
     * 档案名称
     */
//    @Excel(name = "档案名称",width = 25,orderNum = "0")
    private String name;

    /**
     * 被审计单位
     */
    private String auditedUnits;

    /**
     * 报告册数
     */
    @Excel(name = "报告册数",width = 25,orderNum = "5")
    private String reportNum;

    /**
     * 底稿册数
     */
    @Excel(name = "底稿册数",width = 25,orderNum = "6")
    private String papersNum;

    /**
     * 档案年度
     */
    @Excel(name = "档案年度",width = 25,orderNum = "7")
    private String year;

    /**
     * 案卷号
     */
    @Excel(name = "案卷号",width = 25,orderNum = "8")
    private String number;

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

    /**
     * 归档时间
     */
    @Excel(name = "归档时间",exportFormat = "yyyy-MM-dd HH:mm:ss",width = 25,orderNum = "10")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date auditDate;

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

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

    /**
     * 状态
     */
    @Excel(name = "状态",width = 25,orderNum = "16")
    private String status;

    /**
     * 项目信息
     */
    private CwProjectRecordsDTO cwProjectRecordsDTO;

    /**
     * 其他附件
     */
    private List<WorkAttachmentArchiveDto> WorkAttachmentDtoList;

    /**
     * 审计报告
     */
    private List<CwProjectReportArchiveReportDTO> cwProjectReportArchiveReportDTOList;

    /**
     * 被审计单位名称
     */
    @Excel(name = "被审计单位",width = 25,orderNum = "4")
    private String auditedUnitsName;

    /**
     * 归档时间区间
     */
    private String[] auditDates;

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

    /**
     * 报告文号
     */
    @Excel(name = "报告文号",width = 25,orderNum = "2")
    private String reportNo;

    /**
     * 档案号
     */
    @Excel(name = "档案号",width = 25,orderNum = "0")
    private String fileNumber;

    /**
     * 项目名称
     */
    @Excel(name = "项目名称",width = 25,orderNum = "1")
    private String projectName;

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


    /**
     * 项目经理
     */
    @Excel(name = "项目经理",width = 25,orderNum = "3")
    private String projectMasterName;

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

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

    private Date createDate;

    /**
     * 报告id
     */
    private String reportId;

    /**
     * 审计意见
     */
    private String reportRemarks;

    /**
     * 报告日期
     */
    @Excel(name = "报告日期",exportFormat = "yyyy-MM-dd HH:mm:ss",width = 25,orderNum = "9")
    private Date reportDate;

    /**
     * 报告主办人
     */
    private String reportCreateName;

    /**
     * 签字注师1
     */
    private String signatureAnnotator1Name;

    /**
     * 签字注师2
     */
    private String signatureAnnotator2Name;

    /**
     * 归档状态
     */
    @Excel(name = "归档状态",width = 25,orderNum = "11")
    private String archiveSta;

    /**
     * 报告到归档时间差（天数）
     */
    private Integer archiveDay;

    /**
     * 报告时间区间
     */
    private String[] reportDates;

    /**
     * 罚款金额
     */
    @Excel(name = "罚款金额",width = 25,orderNum = "13")
    private String fineMoney;

    /**
     * 超期天数
     */
    private String overDueDay;

    /**
     * 逾期天数（天数）
     */
    @Excel(name = "超期天数",width = 25,orderNum = "12")
    private String overdueDay;

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


    /**
     * 审计收费
     */
    private String auditMoney;

    /**
     * 关联的报告号
     */
    private String connectReport;
    /**
     * 关联的报告号id
     */
    private String connectReportId;


    /**
     * 报告复核流程id
     */
    private String cprrProcInsId;

    /**
     * 报告复核流程id
     */
    private String cprrProcDefId;

    /**
     * 流程发起人姓名
     */
    private String userName;


    private static final long serialVersionUID = 1L;

    public String getTaskBorrowId() {
        return taskBorrowId;
    }

    public void setTaskBorrowId(String taskBorrowId) {
        this.taskBorrowId = taskBorrowId;
    }

    public String getProcInsId2() {
        return procInsId2;
    }

    public void setProcInsId2(String procInsId2) {
        this.procInsId2 = procInsId2;
    }

    public String getBorrowType() {
        return borrowType;
    }

    public void setBorrowType(String borrowType) {
        this.borrowType = borrowType;
    }

    public String getBorrowUserId() {
        return borrowUserId;
    }

    public void setBorrowUserId(String borrowUserId) {
        this.borrowUserId = borrowUserId;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getProjectId() {
        return projectId;
    }

    public void setProjectId(String projectId) {
        this.projectId = projectId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuditedUnits() {
        return auditedUnits;
    }

    public void setAuditedUnits(String auditedUnits) {
        this.auditedUnits = auditedUnits;
    }

    public String getReportNum() {
        return reportNum;
    }

    public void setReportNum(String reportNum) {
        this.reportNum = reportNum;
    }

    public String getPapersNum() {
        return papersNum;
    }

    public void setPapersNum(String papersNum) {
        this.papersNum = papersNum;
    }

    public String getYear() {
        return year;
    }

    public void setYear(String year) {
        this.year = year;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getIsNumber() {
        return isNumber;
    }

    public void setIsNumber(String isNumber) {
        this.isNumber = isNumber;
    }

    public Date getAuditDate() {
        return auditDate;
    }

    public void setAuditDate(Date auditDate) {
        this.auditDate = auditDate;
    }

    @Override
    public String getProcInsId() {
        return procInsId;
    }

    @Override
    public void setProcInsId(String procInsId) {
        this.procInsId = procInsId;
    }

    @Override
    public String getProcessDefinitionId() {
        return processDefinitionId;
    }

    @Override
    public void setProcessDefinitionId(String processDefinitionId) {
        this.processDefinitionId = processDefinitionId;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public CwProjectRecordsDTO getCwProjectRecordsDTO() {
        return cwProjectRecordsDTO;
    }

    public void setCwProjectRecordsDTO(CwProjectRecordsDTO cwProjectRecordsDTO) {
        this.cwProjectRecordsDTO = cwProjectRecordsDTO;
    }

    public List<WorkAttachmentArchiveDto> getWorkAttachmentDtoList() {
        return WorkAttachmentDtoList;
    }

    public void setWorkAttachmentDtoList(List<WorkAttachmentArchiveDto> workAttachmentDtoList) {
        WorkAttachmentDtoList = workAttachmentDtoList;
    }

    public List<CwProjectReportArchiveReportDTO> getCwProjectReportArchiveReportDTOList() {
        return cwProjectReportArchiveReportDTOList;
    }

    public void setCwProjectReportArchiveReportDTOList(List<CwProjectReportArchiveReportDTO> cwProjectReportArchiveReportDTOList) {
        this.cwProjectReportArchiveReportDTOList = cwProjectReportArchiveReportDTOList;
    }

    public String getAuditedUnitsName() {
        return auditedUnitsName;
    }

    public void setAuditedUnitsName(String auditedUnitsName) {
        this.auditedUnitsName = auditedUnitsName;
    }

    public String[] getAuditDates() {
        return auditDates;
    }

    public void setAuditDates(String[] auditDates) {
        this.auditDates = auditDates;
    }

    public String[] getCreateDates() {
        return createDates;
    }

    public void setCreateDates(String[] createDates) {
        this.createDates = createDates;
    }

    public String getReportNo() {
        return reportNo;
    }

    public void setReportNo(String reportNo) {
        this.reportNo = reportNo;
    }

    public String getFileNumber() {
        return fileNumber;
    }

    public void setFileNumber(String fileNumber) {
        this.fileNumber = fileNumber;
    }

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getProjectMasterName() {
        return projectMasterName;
    }

    public void setProjectMasterName(String projectMasterName) {
        this.projectMasterName = projectMasterName;
    }

    public String getCreateName() {
        return createName;
    }

    public void setCreateName(String createName) {
        this.createName = createName;
    }

    public String getCreateDateT() {
        return createDateT;
    }

    public void setCreateDateT(String createDateT) {
        this.createDateT = createDateT;
    }

    public String getReportId() {
        return reportId;
    }

    public void setReportId(String reportId) {
        this.reportId = reportId;
    }

    public String getReportRemarks() {
        return reportRemarks;
    }

    public void setReportRemarks(String reportRemarks) {
        this.reportRemarks = reportRemarks;
    }

    public Date getReportDate() {
        return reportDate;
    }

    public void setReportDate(Date reportDate) {
        this.reportDate = reportDate;
    }

    public String getReportCreateName() {
        return reportCreateName;
    }

    public void setReportCreateName(String reportCreateName) {
        this.reportCreateName = reportCreateName;
    }

    public String getSignatureAnnotator1Name() {
        return signatureAnnotator1Name;
    }

    public void setSignatureAnnotator1Name(String signatureAnnotator1Name) {
        this.signatureAnnotator1Name = signatureAnnotator1Name;
    }

    public String getSignatureAnnotator2Name() {
        return signatureAnnotator2Name;
    }

    public void setSignatureAnnotator2Name(String signatureAnnotator2Name) {
        this.signatureAnnotator2Name = signatureAnnotator2Name;
    }

    public String getArchiveSta() {
        return archiveSta;
    }

    public void setArchiveSta(String archiveSta) {
        this.archiveSta = archiveSta;
    }

    public Integer getArchiveDay() {
        return archiveDay;
    }

    public void setArchiveDay(Integer archiveDay) {
        this.archiveDay = archiveDay;
    }

    public String[] getReportDates() {
        return reportDates;
    }

    public void setReportDates(String[] reportDates) {
        this.reportDates = reportDates;
    }

    public String getFineMoney() {
        return fineMoney;
    }

    public void setFineMoney(String fineMoney) {
        this.fineMoney = fineMoney;
    }

    public String getOverDueDay() {
        return overDueDay;
    }

    public void setOverDueDay(String overDueDay) {
        this.overDueDay = overDueDay;
    }

    public String getOverdueDay() {
        return overdueDay;
    }

    public void setOverdueDay(String overdueDay) {
        this.overdueDay = overdueDay;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public void setAuditUserIds(List<String> auditUserIds) {
        this.auditUserIds = auditUserIds;
    }

    public List<String> getAuditUserIds() {
        return auditUserIds;
    }

    public String getCprrProcInsId() {
        return cprrProcInsId;
    }

    public void setCprrProcInsId(String cprrProcInsId) {
        this.cprrProcInsId = cprrProcInsId;
    }

    public String getCprrProcDefId() {
        return cprrProcDefId;
    }

    public void setCprrProcDefId(String cprrProcDefId) {
        this.cprrProcDefId = cprrProcDefId;
    }

    public String getConnectReport() {
        return connectReport;
    }

    public void setConnectReport(String connectReport) {
        this.connectReport = connectReport;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }
}
