package com.ruoyi.oa.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.entity.SysUser;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 职称评审对象 cmc_title_eval
 * 
 * @author cmc
 * @date 2025-08-18
 */
public class CmcTitleEval extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 职称评审id */
    private String titleEvalId;

    /** 申请人 */
    private Long userId;
    @Excel(name = "申请人")
    private String applyUserName;
    private SysUser applyUser;

    /** 评审年度 */
    @Excel(name = "评审年度")
    private String annual;

    /** 评审单位 */
    @Excel(name = "评审单位")
    private String institude;

    /** 职称类型 */
    @Excel(name = "职称类型")
    private String type;

    /** 职称级别 */
    @Excel(name = "职称级别")
    private String level;

    /** 职称专业名称 */
    @Excel(name = "职称专业名称")
    private String titleProfession;

    /** 评审表（盖章前） */
    @Excel(name = "评审表盖章前")
    private String sheet;

    /** 保密审核意见 */
    @Excel(name = "保密审核意见")
    private String secretOpinion;

    /** 评审表（盖章后） */
    @Excel(name = "评审表盖章后")
    private String sheetStamp;

    /** 其他材料 */
    @Excel(name = "其他材料")
    private String material;

    /** 是否通过 */
    @Excel(name = "是否通过")
    private String isApproved;

    /** 公示红头文件 */
    @Excel(name = "公示红头文件")
    private String publicityFile;

    /** 证书扫描件 */
    @Excel(name = "证书扫描件")
    private String scanFile;

    /** 证书取得时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "证书取得时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date obtainTime;

    /** 申请时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date applyTime;

    /** 职称管理员 */
    private Long titleUserId;
    @Excel(name = "职称管理员")
    private String  titleUserName;
    private SysUser titleUser;

    /** 职称管理员审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "职称管理员审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date titleTime;

    /** 职称管理员审核意见 */
    @Excel(name = "职称管理员审核意见")
    private String titleComment;

    /** 盖章材料上传时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "盖章材料上传时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date materialUploadTime;

    /** 确认人 */
    private Long confirmer;
    @Excel(name = "确认人")
    private String  confirmUserName;
    private SysUser confirmUser;

    /** 确认时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "确认时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date confirmTime;

    /** 确认状态 */
    @Excel(name = "确认状态")
    private String confirmStatus;

    public void setTitleEvalId(String titleEvalId) 
    {
        this.titleEvalId = titleEvalId;
    }

    public String getTitleEvalId() 
    {
        return titleEvalId;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setAnnual(String annual) 
    {
        this.annual = annual;
    }

    public String getAnnual() 
    {
        return annual;
    }
    public void setInstitude(String institude) 
    {
        this.institude = institude;
    }

    public String getInstitude() 
    {
        return institude;
    }
    public void setType(String type) 
    {
        this.type = type;
    }

    public String getType() 
    {
        return type;
    }
    public void setLevel(String level) 
    {
        this.level = level;
    }

    public String getLevel() 
    {
        return level;
    }
    public void setTitleProfession(String titleProfession) 
    {
        this.titleProfession = titleProfession;
    }

    public String getTitleProfession() 
    {
        return titleProfession;
    }
    public void setSheet(String sheet) 
    {
        this.sheet = sheet;
    }

    public String getSheet() 
    {
        return sheet;
    }
    public void setSheetStamp(String sheetStamp) 
    {
        this.sheetStamp = sheetStamp;
    }

    public String getSheetStamp() 
    {
        return sheetStamp;
    }
    public void setMaterial(String material) 
    {
        this.material = material;
    }

    public String getMaterial() 
    {
        return material;
    }
    public void setIsApproved(String isApproved) 
    {
        this.isApproved = isApproved;
    }

    public String getIsApproved() 
    {
        return isApproved;
    }
    public void setPublicityFile(String publicityFile) 
    {
        this.publicityFile = publicityFile;
    }

    public String getPublicityFile() 
    {
        return publicityFile;
    }
    public void setScanFile(String scanFile) 
    {
        this.scanFile = scanFile;
    }

    public String getScanFile() 
    {
        return scanFile;
    }
    public void setObtainTime(Date obtainTime) 
    {
        this.obtainTime = obtainTime;
    }

    public Date getObtainTime() 
    {
        return obtainTime;
    }
    public void setApplyTime(Date applyTime) 
    {
        this.applyTime = applyTime;
    }

    public Date getApplyTime() 
    {
        return applyTime;
    }
    public void setTitleUserId(Long titleUserId) 
    {
        this.titleUserId = titleUserId;
    }

    public Long getTitleUserId() 
    {
        return titleUserId;
    }
    public void setTitleTime(Date titleTime) 
    {
        this.titleTime = titleTime;
    }

    public Date getTitleTime() 
    {
        return titleTime;
    }
    public void setTitleComment(String titleComment) 
    {
        this.titleComment = titleComment;
    }

    public String getTitleComment() 
    {
        return titleComment;
    }
    public void setMaterialUploadTime(Date materialUploadTime) 
    {
        this.materialUploadTime = materialUploadTime;
    }

    public Date getMaterialUploadTime() 
    {
        return materialUploadTime;
    }
    public void setConfirmer(Long confirmer) 
    {
        this.confirmer = confirmer;
    }

    public Long getConfirmer() 
    {
        return confirmer;
    }
    public void setConfirmTime(Date confirmTime) 
    {
        this.confirmTime = confirmTime;
    }

    public Date getConfirmTime() 
    {
        return confirmTime;
    }
    public void setConfirmStatus(String confirmStatus) 
    {
        this.confirmStatus = confirmStatus;
    }

    public String getConfirmStatus() 
    {
        return confirmStatus;
    }
    public void setSecretOpinion(String secretOpinion)
    {
        this.secretOpinion = secretOpinion;
    }

    public String getSecretOpinion()
    {
        return secretOpinion;
    }
    public void setApplyUser(SysUser applyUser)
    {
        this.applyUser = applyUser;
        this.applyUserName = applyUser == null ? "" : applyUser.getNickName();
    }

    public SysUser getApplyUser()
    {
        return applyUser;
    }
    public void setTitleUser(SysUser titleUser)
    {
        this.titleUser = titleUser;
        this.titleUserName = titleUser == null ? "" : titleUser.getNickName();
    }

    public SysUser getTitleUser()
    {
        return titleUser;
    }
    public void setConfirmUser(SysUser confirmUser)
    {
        this.confirmUser = confirmUser;
        this.confirmUserName = confirmUser == null ? "" : confirmUser.getNickName();
    }

    public SysUser getConfirmUser()
    {
        return confirmUser;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("titleEvalId", getTitleEvalId())
            .append("userId", getUserId())
            .append("annual", getAnnual())
            .append("institude", getInstitude())
            .append("type", getType())
            .append("level", getLevel())
            .append("titleProfession", getTitleProfession())
            .append("sheet", getSheet())
            .append("sheetStamp", getSheetStamp())
            .append("material", getMaterial())
            .append("isApproved", getIsApproved())
            .append("publicityFile", getPublicityFile())
            .append("scanFile", getScanFile())
            .append("obtainTime", getObtainTime())
            .append("applyTime", getApplyTime())
            .append("titleUserId", getTitleUserId())
            .append("titleTime", getTitleTime())
            .append("titleComment", getTitleComment())
            .append("materialUploadTime", getMaterialUploadTime())
            .append("confirmer", getConfirmer())
            .append("confirmTime", getConfirmTime())
            .append("confirmStatus", getConfirmStatus())
            .toString();
    }
}
