package com.ruoyi.project.training.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 培训计划对象 t_training
 *
 * @author ruoyi
 * @date 2020-12-02
 */
public class TTraining extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 唯一标识ID */
    private Long id;

    /** 装置名称 */
    private String plantCode;

    /** 培训年月 */
    @Excel(name = "年份")
    private String year;

    /** 培训课程 */
    @Excel(name = "培训课程", width = 40)
    private String course;

    /** 培训分类 */
    @Excel(name = "培训类型", dictType = "TRAINING_TYPE")
    private String trainingType;

    private Long trainingTypeCount;

    /** 培训内容 */
    @Excel(name = "培训内容")
    private String content;

    /** 课程代码 */
    @Excel(name = "课程代码")
    private String courseid;

    /** 是否完成 */
    @Excel(name = "是否完成", dictType = "YES_NO_EN")
    private Long isfinish;

    /** 培训周期 */
    @Excel(name = "培训周期")
    private String period;

    /** 课时 */
    @Excel(name = "课时")
    private String duration;

    /** 培训人 */
    @Excel(name = "培训人")
    private String trainer;

    /** 部门 */
    @Excel(name = "部门")
    private String unit;

    /** 培训岗位 */
    @Excel(name = "培训岗位", dictType = "TRAINING_POSITION")
    private String position;
    private int positionNum;

    /** 指定岗位 */
    @Excel(name = "指定岗位")
    private String designatedPosition;

    /** 指定人员 */
    @Excel(name = "指定人员")
    private String designatedStaff;

    /** 培训开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
    @Excel(name = "培训开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date courseStartdate;

    /** 培训结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
    @Excel(name = "培训结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date courseEnddate;

    /** 确认人 */
    private String confirmor;

    /** 删除状态 */
    private Long delFlag;

    /** 创建人 */
    private String createrCode;

    /** 创建时间 */
    private Date createdate;

    /** 修改人 */
    private String updaterCode;

    /** 修改时间 */
    private Date updatedate;

    /** 部门编号 */
    private Long deptId;

    /** 部门名称 */
    @Excel(name = "部门名称")
    private String deptName;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;

    /** 查询开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
    private Date startDate;

    /** 查询结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd" , timezone = "GMT+8")
    private Date endDate;

    /** 未参会人员名单 */
    private String nonParticipants;

    /** 未参培情况 */
    private Integer isNon;

    /** 图片地址 */
    private String picUrl;

    /** 装置级培训ID */
    private Long regularId;

    private int haveTraining;

    private int mustTraining;

    private List<TTrainingNon> tTrainingNons;

    public Long getTrainingTypeCount() {
        return trainingTypeCount;
    }

    public void setTrainingTypeCount(Long trainingTypeCount) {
        this.trainingTypeCount = trainingTypeCount;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setPlantCode(String plantCode)
    {
        this.plantCode = plantCode;
    }

    public String getPlantCode()
    {
        return plantCode;
    }
    public void setCourse(String course)
    {
        this.course = course;
    }

    public String getCourse()
    {
        return course;
    }
    public void setCourseid(String courseid)
    {
        this.courseid = courseid;
    }

    public String getCourseid()
    {
        return courseid;
    }
    public void setPeriod(String period)
    {
        this.period = period;
    }

    public String getPeriod()
    {
        return period;
    }
    public void setDuration(String duration)
    {
        this.duration = duration;
    }

    public String getDuration()
    {
        return duration;
    }
    public void setTrainer(String trainer)
    {
        this.trainer = trainer;
    }

    public String getTrainer()
    {
        return trainer;
    }
    public void setPosition(String position)
    {
        this.position = position;
    }

    public String getPosition()
    {
        return position;
    }
    public int getPositionNum() { return positionNum; }

    public void setPositionNum(int positionNum) { this.positionNum = positionNum; }
    public void setDesignatedPosition(String designatedPosition) { this.designatedPosition = designatedPosition; }

    public String getDesignatedPosition() { return designatedPosition; }
    public void setDesignatedStaff(String designatedStaff) { this.designatedStaff = designatedStaff; }

    public String getDesignatedStaff() { return designatedStaff; }
    public void setYear(String year)
    {
        this.year = year;
    }

    public String getYear()
    {
        return year;
    }
    public void setDelFlag(Long delFlag)
    {
        this.delFlag = delFlag;
    }

    public Long getDelFlag()
    {
        return delFlag;
    }
    public void setCreaterCode(String createrCode)
    {
        this.createrCode = createrCode;
    }

    public String getCreaterCode()
    {
        return createrCode;
    }
    public void setCreatedate(Date createdate)
    {
        this.createdate = createdate;
    }

    public Date getCreatedate()
    {
        return createdate;
    }
    public void setUpdaterCode(String updaterCode)
    {
        this.updaterCode = updaterCode;
    }

    public String getUpdaterCode()
    {
        return updaterCode;
    }
    public void setUpdatedate(Date updatedate)
    {
        this.updatedate = updatedate;
    }

    public Date getUpdatedate()
    {
        return updatedate;
    }
    public void setRemarks(String remarks)
    {
        this.remarks = remarks;
    }

    public String getRemarks()
    {
        return remarks;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setDeptName(String deptName)
    {
        this.deptName = deptName;
    }

    public String getDeptName()
    {
        return deptName;
    }
    public void setStartDate(Date startDate) { this.startDate = startDate; }

    public Date getStartDate() { return startDate; }
    public void setEndDate(Date endDate) { this.endDate = endDate; }

    public Date getEndDate() { return endDate; }
    public void setCourseStartdate(Date courseStartdate) { this.courseStartdate = courseStartdate; }

    public Date getCourseStartdate() { return courseStartdate; }
    public void setCourseEnddate(Date courseEnddate) { this.courseEnddate = courseEnddate; }

    public Date getCourseEnddate() { return courseEnddate; }
    public void setIsfinish(Long isfinish) { this.isfinish = isfinish; }

    public Long getIsfinish() { return isfinish; }
    public void setConfirmor(String confirmor) { this.confirmor = confirmor; }

    public String getConfirmor() { return confirmor; }
    public String getNonParticipants() { return nonParticipants; }

    public void setNonParticipants(String nonParticipants) { this.nonParticipants = nonParticipants; }

    public String getContent() {
        return content;
    }

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

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getTrainingType() {
        return trainingType;
    }

    public void setTrainingType(String trainingType) {
        this.trainingType = trainingType;
    }

    public String getPicUrl() {
        return picUrl;
    }

    public void setPicUrl(String picUrl) {
        this.picUrl = picUrl;
    }
    public void setRegularId(Long regularId)
    {
        this.regularId = regularId;
    }

    public Long getRegularId()
    {
        return regularId;
    }
    public int getHaveTraining() { return haveTraining; }

    public void setHaveTraining(int haveTraining) { this.haveTraining = haveTraining; }
    public int getMustTraining() { return mustTraining; }

    public void setMustTraining(int mustTraining) { this.mustTraining = mustTraining; }
    public List<TTrainingNon> gettTrainingNons() { return tTrainingNons; }

    public void settTrainingNons(List<TTrainingNon> tTrainingNons) { this.tTrainingNons = tTrainingNons; }

    public Integer getIsNon() {
        return isNon;
    }

    public void setIsNon(Integer isNon) {
        this.isNon = isNon;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("plantCode", getPlantCode())
            .append("course", getCourse())
            .append("courseid", getCourseid())
            .append("period", getPeriod())
            .append("duration", getDuration())
            .append("trainer", getTrainer())
            .append("position", getPosition())
            .append("designatedPosition", getDesignatedPosition())
            .append("designatedStaff", getDesignatedStaff())
            .append("year", getYear())
            .append("courseStartdate", getCourseStartdate())
            .append("courseEnddate", getCourseEnddate())
            .append("isfinish", getIsfinish())
            .append("confirmor", getConfirmor())
            .append("delFlag", getDelFlag())
            .append("createrCode", getCreaterCode())
            .append("createdate", getCreatedate())
            .append("updaterCode", getUpdaterCode())
            .append("updatedate", getUpdatedate())
            .append("remarks", getRemarks())
            .append("deptId", getDeptId())
            .append("deptName", getDeptName())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("nonParticipants", getNonParticipants())
            .toString();
    }
}
