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_assess
 * 
 * @author cmc
 * @date 2024-01-09
 */
public class CmcAssess extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 总考核表id */
    private String assessId;

    /** 用户id */
    @Excel(name = "被考核人")
    private String userName;
    private Long userId;

    /** 项目id */
    private String projectId;
    @Excel(name = "项目编号")
    private String projectNumber;
    @Excel(name = "项目名称")
    private String projectName;

    /** 考核时间（月份） */
    @JsonFormat(pattern = "yyyy-MM")
    @Excel(name = "考核时间", dateFormat = "yyyy-MM")
    private Date assessTime;

    /** 部门考核等级（不合格、合格、良好、优秀） */
    @Excel(name = "部门考核等级", readConverterExp = "0=不合格,1=合格,2=良好,3=优秀")
    private String deptAssessment;

    /** 考核类型 */
    @Excel(name = "考核类型", readConverterExp = "0=生产部门考核,1=经营发展部考核,2=综合事务部考核,3=技术质量与安全部考核,4=财务部考核")
    private String assessType;

    /** 部门考核意见 */
    @Excel(name = "部门考核意见")
    private String deptAdvice;

    /** 部门考核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "部门考核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date deptTime;

    /** 部门考核负责人 */
    @Excel(name = "部门考核负责人")
    private String deptUserName;
    private Long deptAssesser;

    /** 分管考核等级（不合格、合格、良好、优秀） */
    @Excel(name = "分管考核等级", readConverterExp = "0=不合格,1=合格,2=良好,3=优秀")
    private String managerAssessment;

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

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

    /** 分管考核负责人 */
    @Excel(name = "分管考核负责人")
    private String managerUserName;
    private Long managerAssesser;

    /** 自述 */
    @Excel(name = "自述")
    private String selfAssess;

    /** 考核填报时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "考核填报时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date fillTime;

    /** 其他工作 */
    @Excel(name = "其他工作")
    private String otherWork;

    private SysUser user;

    private SysUser deptUser;

    private SysUser managerUser;

    private CmcProject project;

    public void setAssessId(String assessId)
    {
        this.assessId = assessId;
    }

    public String getAssessId()
    {
        return assessId;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setProjectId(String projectId)
    {
        this.projectId = projectId;
    }

    public String getProjectId()
    {
        return projectId;
    }
    public void setProject(CmcProject project)
    {
        this.project = project;
        this.projectNumber = project == null ? "" : project.getProjectNumber();
        this.projectName = project == null ? "" : project.getProjectName();
    }

    public CmcProject getProject()
    {
        return project;
    }
    public void setAssessTime(Date assessTime)
    {
        this.assessTime = assessTime;
    }

    public Date getAssessTime()
    {
        return assessTime;
    }
    public void setDeptAssessment(String deptAssessment)
    {
        this.deptAssessment = deptAssessment;
    }

    public String getDeptAssessment()
    {
        return deptAssessment;
    }
    public void setDeptAdvice(String deptAdvice)
    {
        this.deptAdvice = deptAdvice;
    }

    public String getDeptAdvice()
    {
        return deptAdvice;
    }
    public void setDeptTime(Date deptTime)
    {
        this.deptTime = deptTime;
    }

    public Date getDeptTime()
    {
        return deptTime;
    }
    public void setDeptAssesser(Long deptAssesser)
    {
        this.deptAssesser = deptAssesser;
    }

    public Long getDeptAssesser()
    {
        return deptAssesser;
    }
    public void setManagerAssessment(String managerAssessment)
    {
        this.managerAssessment = managerAssessment;
    }

    public String getManagerAssessment()
    {
        return managerAssessment;
    }
    public void setManagerAdvice(String managerAdvice)
    {
        this.managerAdvice = managerAdvice;
    }

    public String getManagerAdvice()
    {
        return managerAdvice;
    }
    public void setManagerTime(Date managerTime)
    {
        this.managerTime = managerTime;
    }

    public Date getManagerTime()
    {
        return managerTime;
    }
    public void setManagerAssesser(Long managerAssesser)
    {
        this.managerAssesser = managerAssesser;
    }

    public Long getManagerAssesser()
    {
        return managerAssesser;
    }
    public void setSelfAssess(String selfAssess)
    {
        this.selfAssess = selfAssess;
    }

    public String getSelfAssess()
    {
        return selfAssess;
    }
    public void setFillTime(Date fillTime)
    {
        this.fillTime = fillTime;
    }

    public Date getFillTime()
    {
        return fillTime;
    }
    public void setOtherWork(String otherWork)
    {
        this.otherWork = otherWork;
    }

    public String getOtherWork()
    {
        return otherWork;
    }
    public void setAssessType(String assessType)
    {
        this.assessType = assessType;
    }

    public String getAssessType()
    {
        return assessType;
    }
    public void setDeptUser(SysUser deptUser)
    {
        this.deptUser = deptUser;
        this.deptUserName = deptUser == null ? "" : deptUser.getNickName();
    }

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

    public SysUser getManagerUser()
    {
        return managerUser;
    }
    public void setUser(SysUser user)
    {
        this.user = user;
        this.userName = user == null ? "" : user.getNickName();
    }

    public SysUser getUser()
    {
        return user;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("assessId", getAssessId())
                .append("userId", getUserId())
                .append("projectId", getProjectId())
                .append("assessTime", getAssessTime())
                .append("deptAssessment", getDeptAssessment())
                .append("deptAdvice", getDeptAdvice())
                .append("deptTime", getDeptTime())
                .append("deptAssesser", getDeptAssesser())
                .append("managerAssessment", getManagerAssessment())
                .append("managerAdvice", getManagerAdvice())
                .append("managerTime", getManagerTime())
                .append("managerAssesser", getManagerAssesser())
                .append("selfAssess", getSelfAssess())
                .append("fillTime", getFillTime())
                .append("otherWork", getOtherWork())
                .toString();
    }
}