package com.ruoyi.oa.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.entity.SysDept;
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_performance
 *
 * @author cmc
 * @date 2024-09-23
 */
public class CmcPerformance extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 绩效审批id */
    private String performanceId;

    /** 上报人 */
    @Excel(name = "上报人")
    private String reportUserName;
    private Long reporter;

    /** 上报部门 */
    @Excel(name = "上报部门")
    private String deptName;
    private Long reportDept;

    /** 附件 */
//    @Excel(name = "附件")
    private String document;

    /** 上报日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上报日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reportTime;

    /** 分管审核意见 */
    @Excel(name = "分管审核意见")
    private String managerComment;

    /** 分管审核人 */
    @Excel(name = "分管审核人")
    private String managerUserName;
    private Long managerUserId;

    /** 分管审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "分管审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date managerTime;

    /** 总经理审批意见 */
    @Excel(name = "总经理审批意见")
    private String zjlComment;

    /** 总经理审批人 */
    @Excel(name = "总经理审批人")
    private String zjlUserName;
    private Long zjlUserId;

    /** 总经理审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "总经理审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date zjlTime;

    /** 人事管理员 */
    @Excel(name = "人事管理员")
    private Long zhUserId;

    /** 制单日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "制单日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date zhTime;

    private SysUser reportUser;

    private SysUser managerUser;

    private SysUser zjlUser;

    private SysDept dept;

    public void setPerformanceId(String performanceId)
    {
        this.performanceId = performanceId;
    }

    public String getPerformanceId()
    {
        return performanceId;
    }
    public void setReporter(Long reporter)
    {
        this.reporter = reporter;
    }

    public Long getReporter()
    {
        return reporter;
    }
    public void setReportUser(SysUser reportUser)
    {
        this.reportUser = reportUser;
        this.reportUserName = reportUser == null ? "" : reportUser.getNickName();
    }

    public SysUser getReportUser()
    {
        return reportUser;
    }
    public void setReportDept(Long reportDept)
    {
        this.reportDept = reportDept;
    }

    public Long getReportDept()
    {
        return reportDept;
    }
    public void setDept(SysDept dept)
    {
        this.dept = dept;
        this.deptName = dept == null ? "" : dept.getDeptName();
    }

    public SysDept getDept()
    {
        return dept;
    }
    public void setDocument(String document)
    {
        this.document = document;
    }

    public String getDocument()
    {
        return document;
    }
    public void setReportTime(Date reportTime)
    {
        this.reportTime = reportTime;
    }

    public Date getReportTime()
    {
        return reportTime;
    }
    public void setManagerUserId(Long managerUserId)
    {
        this.managerUserId = managerUserId;
    }

    public Long getManagerUserId()
    {
        return managerUserId;
    }
    public void setManagerUser(SysUser managerUser)
    {
        this.managerUser = managerUser;
        this.managerUserName = managerUser == null ? "" : managerUser.getNickName();
    }

    public SysUser getManagerUser()
    {
        return managerUser;
    }
    public void setManagerComment(String managerComment)
    {
        this.managerComment = managerComment;
    }

    public String getManagerComment()
    {
        return managerComment;
    }
    public void setManagerTime(Date managerTime)
    {
        this.managerTime = managerTime;
    }

    public Date getManagerTime()
    {
        return managerTime;
    }
    public void setZjlUserId(Long zjlUserId)
    {
        this.zjlUserId = zjlUserId;
    }

    public Long getZjlUserId()
    {
        return zjlUserId;
    }
    public void setZjlUser(SysUser zjlUser)
    {
        this.zjlUser = zjlUser;
        this.zjlUserName = zjlUser == null ? "" : zjlUser.getNickName();
    }

    public SysUser getZjlUser()
    {
        return zjlUser;
    }
    public void setZjlComment(String zjlComment)
    {
        this.zjlComment = zjlComment;
    }

    public String getZjlComment()
    {
        return zjlComment;
    }
    public void setZjlTime(Date zjlTime)
    {
        this.zjlTime = zjlTime;
    }

    public Date getZjlTime()
    {
        return zjlTime;
    }
    public void setZhUserId(Long zhUserId)
    {
        this.zhUserId = zhUserId;
    }

    public Long getZhUserId()
    {
        return zhUserId;
    }
    public void setZhTime(Date zhTime)
    {
        this.zhTime = zhTime;
    }

    public Date getZhTime()
    {
        return zhTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("performanceId", getPerformanceId())
                .append("reporter", getReporter())
                .append("document", getDocument())
                .append("remark", getRemark())
                .append("reportTime", getReportTime())
                .append("reportDept", getReportDept())
                .append("managerUserId", getManagerUserId())
                .append("managerComment", getManagerComment())
                .append("managerTime", getManagerTime())
                .append("zjlUserId", getZjlUserId())
                .append("zjlComment", getZjlComment())
                .append("zjlTime", getZjlTime())
                .append("zhUserId", getZhUserId())
                .append("zhTime", getZhTime())
                .toString();
    }
}