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招聘申请对象 cmc_recruit
 *
 * @author cmc
 * @date 2025-10-16
 */
public class CmcRecruit extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 员工招聘id */
    private String recruitId;

    /** 申请人 */
    private Long applier;
    @Excel(name = "申请人")
    private String applierUserName;
    private SysUser applierUser;

    /** 申请部门 */
    private Long applyDept;
    @Excel(name = "申请部门")
    private String deptName;
    private SysDept dept;

    /** 项目id */
    private String projectId;
    @Excel(name = "项目编号")
    private String projectNumber;
    @Excel(name = "项目名称")
    private String projectName;
    @Excel(name = "承担部门")
    private String undertakingDept;
    private CmcProject project;

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

    /** 岗位名称 */
    @Excel(name = "岗位名称")
    private String postName;

    /** 岗位人数 */
    @Excel(name = "岗位人数")
    private Long postNumber;

    /** 岗位职责 */
    @Excel(name = "岗位职责")
    private String duty;

    /** 任职资格 */
    @Excel(name = "任职资格")
    private String qualification;

    /** 薪酬待遇 */
    @Excel(name = "薪酬待遇")
    private String wage;

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

    /** 部门负责人 */
    private Long deptUserId;
    @Excel(name = "部门负责人")
    private String deptUserName;
    private SysUser deptUser;

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

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

    /** 分管领导 */
    private Long managerUserId;
    @Excel(name = "分管领导")
    private String managerUserName;
    private SysUser managerUser;

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

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

    /** 总经理 */
    private Long zjlUserId;
    @Excel(name = "总经理")
    private String zjlUserName;
    private SysUser zjlUser;

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

    public void setRecruitId(String recruitId)
    {
        this.recruitId = recruitId;
    }

    public String getRecruitId()
    {
        return recruitId;
    }
    public void setApplier(Long applier)
    {
        this.applier = applier;
    }

    public Long getApplier()
    {
        return applier;
    }
    public void setApplyDept(Long applyDept)
    {
        this.applyDept = applyDept;
    }

    public Long getApplyDept()
    {
        return applyDept;
    }
    public void setProjectId(String projectId)
    {
        this.projectId = projectId;
    }

    public String getProjectId()
    {
        return projectId;
    }
    public void setApplyDate(Date applyDate)
    {
        this.applyDate = applyDate;
    }

    public Date getApplyDate()
    {
        return applyDate;
    }
    public void setPostName(String postName)
    {
        this.postName = postName;
    }

    public String getPostName()
    {
        return postName;
    }
    public void setPostNumber(Long postNumber)
    {
        this.postNumber = postNumber;
    }

    public Long getPostNumber()
    {
        return postNumber;
    }
    public void setDuty(String duty)
    {
        this.duty = duty;
    }

    public String getDuty()
    {
        return duty;
    }
    public void setQualification(String qualification)
    {
        this.qualification = qualification;
    }

    public String getQualification()
    {
        return qualification;
    }
    public void setWage(String wage)
    {
        this.wage = wage;
    }

    public String getWage()
    {
        return wage;
    }
    public void setDeptComment(String deptComment)
    {
        this.deptComment = deptComment;
    }

    public String getDeptComment()
    {
        return deptComment;
    }
    public void setDeptUserId(Long deptUserId)
    {
        this.deptUserId = deptUserId;
    }

    public Long getDeptUserId()
    {
        return deptUserId;
    }
    public void setDeptTime(Date deptTime)
    {
        this.deptTime = deptTime;
    }

    public Date getDeptTime()
    {
        return deptTime;
    }
    public void setManagerComment(String managerComment)
    {
        this.managerComment = managerComment;
    }

    public String getManagerComment()
    {
        return managerComment;
    }
    public void setManagerUserId(Long managerUserId)
    {
        this.managerUserId = managerUserId;
    }

    public Long getManagerUserId()
    {
        return managerUserId;
    }
    public void setManagerTime(Date managerTime)
    {
        this.managerTime = managerTime;
    }

    public Date getManagerTime()
    {
        return managerTime;
    }
    public void setZjlComment(String zjlComment)
    {
        this.zjlComment = zjlComment;
    }

    public String getZjlComment()
    {
        return zjlComment;
    }
    public void setZjlUserId(Long zjlUserId)
    {
        this.zjlUserId = zjlUserId;
    }

    public Long getZjlUserId()
    {
        return zjlUserId;
    }
    public void setZjlTime(Date zjlTime)
    {
        this.zjlTime = zjlTime;
    }

    public Date getZjlTime()
    {
        return zjlTime;
    }
    public void setDept(SysDept dept)
    {
        this.dept = dept;
        this.deptName = dept == null ? "" : dept.getDeptName();
    }

    public SysDept getDept()
    {
        return dept;
    }
    public void setApplierUser(SysUser applierUser)
    {
        this.applierUser = applierUser;
        this.applierUserName = applierUser == null ? "" : applierUser.getNickName();
    }

    public SysUser getApplierUser()
    {
        return applierUser;
    }
    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 setZjlUser(SysUser zjlUser)
    {
        this.zjlUser = zjlUser;
        this.zjlUserName = zjlUser == null ? "" : zjlUser.getNickName();
    }

    public SysUser getZjlUser()
    {
        return zjlUser;
    }
    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;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("recruitId", getRecruitId())
                .append("applier", getApplier())
                .append("applyDept", getApplyDept())
                .append("projectId", getProjectId())
                .append("applyDate", getApplyDate())
                .append("postName", getPostName())
                .append("postNumber", getPostNumber())
                .append("duty", getDuty())
                .append("qualification", getQualification())
                .append("wage", getWage())
                .append("deptComment", getDeptComment())
                .append("deptUserId", getDeptUserId())
                .append("deptTime", getDeptTime())
                .append("managerComment", getManagerComment())
                .append("managerUserId", getManagerUserId())
                .append("managerTime", getManagerTime())
                .append("zjlComment", getZjlComment())
                .append("zjlUserId", getZjlUserId())
                .append("zjlTime", getZjlTime())
                .toString();
    }
}
