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_train_approval
 * 
 * @author cmc
 * @date 2025-03-04
 */
public class CmcTrainApproval extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 参培id */
    private String participateId;

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

    /** 上报人部门 */
    private Long deptId;
    @Excel(name = "上报人部门")
    private String deptName;
    private SysDept dept;

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

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

    /** 培训名称 */
    @Excel(name = "培训名称")
    private String trainName;

    /** 主要内容 */
    @Excel(name = "主要内容")
    private String content;

    /** 佐证附件 */
    private String document;

    /** 时长 */
    @Excel(name = "时长")
    private Double hours;

    /** 部门审核人 */
    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 deptComment;

    public void setParticipateId(String participateId) 
    {
        this.participateId = participateId;
    }

    public String getParticipateId() 
    {
        return participateId;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setReportTime(Date reportTime) 
    {
        this.reportTime = reportTime;
    }

    public Date getReportTime() 
    {
        return reportTime;
    }
    public void setTrainTime(Date trainTime)
    {
        this.trainTime = trainTime;
    }

    public Date getTrainTime()
    {
        return trainTime;
    }
    public void setTrainName(String trainName) 
    {
        this.trainName = trainName;
    }
    public String getTrainName() 
    {
        return trainName;
    }

    public void setContent(String content) 
    {
        this.content = content;
    }
    public String getContent() 
    {
        return content;
    }

    public void setHours(Double hours) 
    {
        this.hours = hours;
    }
    public Double getHours()
    {
        return hours;
    }

    public void setDocument(String document){this.document = document;}
    public String getDocument(){return document;}

    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 setDeptComment(String deptComment) 
    {
        this.deptComment = deptComment;
    }

    public String getDeptComment() 
    {
        return deptComment;
    }
    public void setReportUser(SysUser reportUser)
    {
        this.reportUser = reportUser;
        this.reportUserName = reportUser == null ? "" : reportUser.getNickName();
    }

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

    public SysUser getDeptUser()
    {
        return deptUser;
    }
    public void setDept(SysDept dept)
    {
        this.dept = dept;
        this.deptName = dept == null ? "" : dept.getDeptName();
    }

    public SysDept getDept()
    {
        return dept;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("participateId", getParticipateId())
            .append("userId", getUserId())
            .append("reportTime", getReportTime())
            .append("trainTime", getTrainTime())
            .append("trainName", getTrainName())
            .append("content", getContent())
            .append("hours", getHours())
            .append("deptUserId", getDeptUserId())
            .append("deptTime", getDeptTime())
            .append("deptComment", getDeptComment())
            .toString();
    }
}
