package com.jeeplus.test.cw.projectReport.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.core.domain.BaseEntity;
import com.jeeplus.core.query.Query;
import com.jeeplus.test.cw.projectReport.service.dto.ProjectReportWorkAttachmentDTO;
import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
import lombok.Data;

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

/**
 * @author: 徐滕
 * @version: 2022-11-11 14:01
 */
@Data
@TableName("cw_project_report")
public class CwProjectReport extends BaseEntity {

    /**
     * 报告主办人
     */
    @TableField(exist = false)
    private String reportSponsor;

    private String id;

    @TableField(exist = false)
    private String projectInfoId;

    @TableField(exist = false)
    private String createName;

    private static final long serialVersionUID = 1L;

    //单据编号（字典值）
    public static final String BIZ_CODE = "13";
    /**
     * 备注信息
     */
    private String remarks;

    /**
     * 单据编号
     */
    private String documentNo;
    /**
     * 项目名称
     */
    @Query(tableColumn = "b.project_name")
    @TableField(exist = false)
    private String projectName;
    /**
     * 项目编号
     */
    @Query(tableColumn = "b.project_number")
    @TableField(exist = false)
    private String projectNumber;
    /**
     * 项目id
     */
    private String projectId;
    /**
     * 报告所属部门
     */
    private String officeId;
    /**
     * 项目经理
     */
    @Query(tableColumn = "e.name")
    @TableField(exist = false)
    private String projectMasterName;
    /**
     * 签字注师1
     */
    private String signatureAnnotator1;
    /**
     * 签字注师2
     */
    private String signatureAnnotator2;
    /**
     * 盖章类型
     */
    private String signatureType;

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

    private String processDefinitionId;

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

    //新建行数据
//    @TableField(exist = false)
//    List<CwProjectInfoData> cwProjectInfoList;

    //新建行数据
    @TableField(exist = false)
    CwProjectInfoData projectInfoData;

    @TableField(exist = false)
    private String departmentName; //部门名称

    @TableField(exist = false)
    private String userName; //用户名

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

    /**
     * 签章合同id
     */
    private String signatureContractId;

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

    /**
     * 审计收费（元）
     */
    private String auditFees;

    /**
     * 被服务单位名称
     */
    @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<WorkAttachmentDto> cwFileInfoList2;

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

    /**
     * 报告流水号
     */
    @TableField(exist = false)
    private String reportNumber;
    /**
     * 报告文号
     */
    @TableField(exist = false)
    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;
}
