package com.srs.teacher.domain;

import com.srs.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import com.srs.common.core.domain.BaseEntity;

import javax.validation.constraints.NotNull;
import java.util.List;

import com.srs.teacher.domain.SysTeacherKpiFillingBonusPoints;
import com.srs.teacher.domain.SysTeacherKpiFillingGraduationGuidance;


/**
 * 业绩考核-个人填报对象 sys_teacher_kpi_filling
 *
 * @author chc
 * @date 2024-06-06
 */
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel(value = "SysTeacherKpiFilling对象", description = "业绩考核-个人填报")
@TableName("sys_teacher_kpi_filling")
public class SysTeacherKpiFilling extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 填报信息id
     */
    @ApiModelProperty("填报信息id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 填报人名称
     */
    @ApiModelProperty(value = "填报人名称", required = true)
    @TableField("fdy_name")
    @Excel(name = "填报人名称")
    @NotNull(message = "填报人名称不能为空")
    private String fdyName;

    /**
     * 填报年份
     */
    @ApiModelProperty(value = "填报年份", required = true)
    @TableField("filling_year")
    @Excel(name = "填报年份")
    @NotNull(message = "填报年份不能为空")
    private String fillingYear;

    /**
     * 填报月份
     */
    @ApiModelProperty(value = "填报月份", required = true)
    @TableField("filling_month")
    @Excel(name = "填报月份")
    @NotNull(message = "填报月份不能为空")
    private String fillingMonth;

    /**
     * 完成情况
     */
    @ApiModelProperty("完成情况")
    @TableField("completion_status")
    @Excel(name = "完成情况")
    private String completionStatus;

    /**
     * 提交状态
     */
    @ApiModelProperty("提交状态")
    @TableField("commit_status")
    @Excel(name = "提交状态")
    private Long commitStatus;

    /**
     * 审核状态
     */
    @ApiModelProperty("审核状态")
    @TableField("audit_status")
    @Excel(name = "审核状态")
    private Long auditStatus;

    /**
     * 学院
     */
    @ApiModelProperty(value = "学院", required = true)
    @TableField("departmentName")
    @Excel(name = "学院")
    @NotNull(message = "学院不能为空")
    private String departmentName;

    /**
     * 自评分数
     */
    @ApiModelProperty("自评分数")
    @TableField("self_scoring")
    @Excel(name = "自评分数")
    private String selfScoring;

    /**
     * 最终评级
     */
    @ApiModelProperty("最终评级")
    @TableField("final_rating")
    @Excel(name = "最终评级")
    private String finalRating;

    /**
     * 角色审核状态1学务办 2党总支书记 3科室 4学工处长
     */
    @ApiModelProperty("角色审核状态1学务办 2党总支书记 3科室 4学工处长")
    @TableField("role_audit")
    @Excel(name = "角色审核状态1学务办")
    private Long roleAudit;

    /**
     * 学务意见
     */
    @ApiModelProperty("学务意见")
    @TableField("xw_opinion")
    @Excel(name = "学务意见")
    private String xwOpinion;

    /**
     * 党总支书记意见
     */
    @ApiModelProperty("党总支书记意见")
    @TableField("dzzsj_opinion")
    @Excel(name = "党总支书记意见")
    private String dzzsjOpinion;

    /**
     * 科室意见
     */
    @ApiModelProperty("科室意见")
    @TableField("ks_opinion")
    @Excel(name = "科室意见")
    private String ksOpinion;

    /**
     * 学工处长意见
     */
    @ApiModelProperty("学工处长意见")
    @TableField("xgcz_opinion")
    @Excel(name = "学工处长意见")
    private String xgczOpinion;

    /**
     * 1学务办
     */
    @ApiModelProperty("1学务办 2党总支书记 3科室 4学工处长 5结束")
    @TableField("audit_progress")
    @Excel(name = "1学务办 2党总支书记 3科室 4学工处长 5结束")
    private Long auditProgress;

    /**
     * 辅导员工号
     */
    @ApiModelProperty("辅导员工号")
    @TableField("job_number")
    @Excel(name = "辅导员工号")
    private String jobNumber;

    /**
     * 班级类型 graduate-毕业班 ungraduate-非毕业班
     */
    @ApiModelProperty("班级类型 graduate-毕业班 ungraduate-非毕业班")
    @TableField("class_type")
    @Excel(name = "班级类型")
    private String classType;

    /**
     * 个人填报-学生管理
     */
    @ApiModelProperty(value = "个人填报-学生管理", hidden = true)
    @Excel(name = "个人填报-学生管理")
    private List<SysTeacherKpiFillingStuMgt> kpiFillingStuMgtList;

    /**
     * 个人填报-业务工作
     */
    @ApiModelProperty(value = "个人填报-业务工作", hidden = true)
    @Excel(name = "个人填报-业务工作")
    private List<SysTeacherKpiFillingBusinessWork> kpiFillingBusinessWorksList;

    /**
     * 个人填报-考勤管理
     */
    @ApiModelProperty(value = "个人填报-考勤管理", hidden = true)
    @Excel(name = "个人填报-考勤管理")
    private List<SysTeacherKpiFillingAMgt> kpiFillingAMgtList;

    /**
     * 个人填报-负面清单
     */
    @ApiModelProperty(value = "个人填报-负面清单", hidden = true)
    @Excel(name = "个人填报-负面清单")
    private List<SysTeacherKpiFillingNegativeList> kpiFillingNegativeLists;

    /**
     * 个人填报-超工作量奖励绩效
     */
    @ApiModelProperty(value = "个人填报-超工作量奖励绩效", hidden = true)
    @Excel(name = "个人填报-超工作量奖励绩效")
    private List<SysTeacherKpiFillingRewardsKpi> kpiFillingRewardsKpiList;

    /**
     * 个人填报-处理学生突发事件
     */
    @ApiModelProperty(value = "个人填报-处理学生突发事件", hidden = true)
    @Excel(name = "个人填报-处理学生突发事件")
    private List<SysTeacherKpiFillingStuEmergency> kpiFillingStuEmergencyList;

    /**
     * 个人填报-加分项
     */
    @ApiModelProperty(value = "个人填报-加分项", hidden = true)
    @Excel(name = "个人填报-加分项")
    private List<SysTeacherKpiFillingBonusPoints> kpiFillingBonusPointsList;

    /**
     * 个人填报-就业指导工作
     */
    @ApiModelProperty(value = "个人填报-就业指导工作", hidden = true)
    @Excel(name = "个人填报-就业指导工作")
    private List<SysTeacherKpiFillingGraduationGuidance> kpiFillingGraduationGuidanceList;
}
