package com.srs.teacher.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
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 com.srs.teacher.domain.SysTeacherStuTestMaterials;
import com.srs.teacher.domain.SysTeacherStuNoticeMaterials;


/**
 * 业绩考核-个人填报-学生管理对象 sys_teacher_kpi_filling_stu_mgt
 *
 * @author chc
 * @date 2024-06-05
 */
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel(value = "SysTeacherKpiFillingStuMgt对象" , description = "业绩考核-个人填报-学生管理表")
@TableName("sys_teacher_kpi_filling_stu_mgt")
public class SysTeacherKpiFillingStuMgt 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 = "填报人名称")
    private String fdyName;

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

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

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

    /**
     * 班会材料分数
     */
    @ApiModelProperty("班会材料分数")
    @TableField("class_scoring")
    @Excel(name = "班会材料分数")
    private BigDecimal classScoring;

    /**
     * 班团干部会议材料分数
     */
    @ApiModelProperty("班团干部会议材料分数")
    @TableField("cadre_scoring")
    @Excel(name = "班团干部会议材料分数")
    private BigDecimal cadreScoring;

    /**
     * 学生开展活动材料分数
     */
    @ApiModelProperty("学生开展活动材料分数")
    @TableField("stu_activity_scoring")
    @Excel(name = "学生开展活动材料分数")
    private BigDecimal stuActivityScoring;

    /**
     * 学生谈话分数
     */
    @ApiModelProperty("学生谈话分数")
    @TableField("stu_talk_scoring")
    @Excel(name = "学生谈话分数")
    private BigDecimal stuTalkScoring;

    /**
     * 每周深入学生宿舍材料分数
     */
    @ApiModelProperty("每周深入学生宿舍材料分数")
    @TableField("visit_dormitory_scoring")
    @Excel(name = "每周深入学生宿舍材料分数")
    private BigDecimal visitDormitoryScoring;

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


    /**
     * 教育分数
     */
    @ApiModelProperty("教育分数")
    @TableField("edg_scoring")
    @Excel(name = "教育分数")
    private BigDecimal edgScoring;

    /**
     * 其他任务分数
     */
    @ApiModelProperty("通知分数分数")
    @TableField("notice_scoring")
    @Excel(name = "通知分数分数")
    private BigDecimal noticeScoring;


    /**
     * 团干部会议佐证材料
     */
    @ApiModelProperty(value = "团干部会议佐证材料", hidden = true)
    @Excel(name = "团干部会议佐证材料")
    private List<SysTeacherCadreMeetingMaterials> cadreMeetingMaterialsList;

    /**
     * 班会会议佐证材料
     */
    @ApiModelProperty(value = "班会会议佐证材料", hidden = true)
    @Excel(name = "班会会议佐证材料")
    private List<SysTeacherClassMeetingMaterials> classMeetingMaterialsList;

    /**
     * 班会会议佐证材料
     */
    @ApiModelProperty(value = "学生开展活动佐证材料", hidden = true)
    @Excel(name = "学生开展活动佐证材料")
    private List<SysTeacherStuActivityMaterials> stuActivityMaterialsList;

    /**
     * 与带班学生谈心谈话佐证材料
     */
    @ApiModelProperty(value = "与带班学生谈心谈话佐证材料", hidden = true)
    @Excel(name = "与带班学生谈心谈话佐证材料")
    private List<SysTeacherStuTalkMaterials> stuTalkMaterialsList;

    /**
     * 每周深入学生宿舍佐证材料
     */
    @ApiModelProperty(value = "每周深入学生宿舍佐证材料", hidden = true)
    @Excel(name = "每周深入学生宿舍佐证材料")
    private List<SysTeacherVisitDormitoryMaterials> visitDormitoryMaterialsList;

    /**
     * 职业测评/就业育人佐证材料
     */
    @ApiModelProperty(value = "职业测评/就业育人佐证材料", hidden = true)
    @Excel(name = "职业测评/就业育人佐证材料")
    private List<SysTeacherStuTestMaterials> edgMaterialsList;

    /**
     * 通知任务佐证材料
     */
    @ApiModelProperty(value = "通知任务佐证材料", hidden = true)
    @Excel(name = "通知任务佐证材料")
    private List<SysTeacherStuNoticeMaterials> noticeMaterialsList;
}
