package com.jeeplus.finance.projectReport.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.query.Query;
import com.jeeplus.core.query.QueryType;
import com.jeeplus.core.service.dto.BaseDTO;
import com.jeeplus.sys.domain.WorkAttachmentInfo;
import com.jeeplus.sys.service.dto.OfficeDTO;
import com.jeeplus.sys.service.dto.UserDTO;
import lombok.Data;

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

/**
 * 报告基础信息表
 * @author: 徐滕
 * @version: 2022-11-10 15:02
 */
@Data
public class CwProjectReportDTO extends BaseDTO {
    private static final long serialVersionUID = 1L;

    //项目编号（字典值）
    public static final String BIZ_CODE = "13";

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

    /**
     * 报告编号
     */
    private String projectReportNumber;

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

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

    /**
     * 签章类型
     * 1：公章
     * 2：公章+执业章
     */
    private String signatureType;

    /**
     * 签字注师1
     */
    @Excel(name = "签字注册会计师1",width = 25)
    private String signatureAnnotator1;

    /**
     * 签字注师2
     */
    @Excel(name = "签字注册会计师2",width = 25)
    private String signatureAnnotator2;

    /**
     * 签章合同id
     * 用于查询签章合同以及相关信息
     */
    private String signatureContractId;

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

    private String processDefinitionId;

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

    /**
     * 报告数据列表
     */
    private List<CwProjectReportDataDTO> projectReportDataDTOList;

    /**
     * 报告实际制作人
     */
    private String realCreate;

    /**
     * 审计收费（元）
     */
    @Excel(name = "审计收费（万元）", width = 25)
    private String auditFees;

    /**
     * 项目规模
     */
    @Excel(name = "项目规模", width = 25)
    private String projectMoney;

    /**
     * 被服务单位名称
     */
    @TableField(exist = false)
    private String servedUnitName;

    /**
     * 报告日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField(exist = false)
    private Date reportDate;

    /**
     * 报告类型
     */
    @TableField(exist = false)
    private String reportType;

    /**
     * 意见类型
     */
    @TableField(exist = false)
    private String opinionType;

    /**
     * 盖章状态
     */
    @TableField(exist = false)
    private String sealType;

    /**
     * 附件信息
     */
    @TableField(exist = false)
    List<ProjectReportWorkAttachmentDTO> cwFileInfoList;

    /**
     * 附件信息2
     */
    @TableField(exist = false)
    List<WorkAttachmentInfo> cwFileInfoList2;

    /**
     * 被服务单位id
     */
    @TableField(exist = false)
    private String servedUnitId;

    /**
     * 报告流水号
     */
    @TableField(exist = false)
    private String reportNumber;
    /**
     * 报告文号
     */
    @TableField(exist = false)
    @Excel(name = "报告文号")
    private String reportNo;

    /**
     * 所属部门
     */
    @TableField(exist = false)
    private String officeName;

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

    /**
     *审计业务类型
     */
    private String auditBusinessType;

    /**
     *公司注册地址
     */
    private String registerAddress;

    /**
     *业务所在地
     */
    private String businessLocation;

    /**
     *是否数据证券业务
     */
    private String securityBusiness;

    /**
     * 签字注师1名称
     */
    @TableField(exist = false)
    private String signatureAnnotator1Name;

    /**
     * 签字注师2名称
     */
    @TableField(exist = false)
    private String signatureAnnotator2Name;

    /**
     * 所属行业
     */
    private String industry;

    /**
     * 业务对象
     */
    private String businessObjects;
}
