package com.srs.workstudy.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.srs.common.annotation.Excel;
import com.srs.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

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


/**
 * 学生岗位对象 qgzx_stu_post
 *
 * @author srs
 * @date 2024-06-06
 */
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel(value = "QgzxStuPost对象", description = "学生岗位")
@TableName("qgzx_stu_post")
public class QgzxStuPost extends BaseEntity {

    //此枚举用于 勤工助学学生岗位审核状态 字典   qgzx_stu_post_status 学生->辅导员->指导老师->资助办
    public enum applyStatusDict {
        Save("0"), //保存
        Submit("1"), //已提交待审核
        Zdls("2"), //指导老师审核通过
        Fdy("3"), //辅导员审核通过
        Zzb("4"), //资助办审核通过
        Reject("10"), //拒绝
        Return("11"), //驳回
        Replay("14"); //已重新提交
        private final String value;

        applyStatusDict(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }
    }

    /**
     * 驳回理由
     */
    @TableField("return_msg")
    public String returnMsg;


    private static final long serialVersionUID = 1L;

    @ApiModelProperty("#")
    @TableId(value = "id", type = IdType.AUTO)
    public Long id;


    @Excel(name = "岗位名称")
    @TableField(exist = false)
    public String postName;

    @Excel(name = "指导老师")
    @TableField(exist = false)
    public String zdlsName;

    @Excel(name = "指导老师联系电话")
    @TableField(exist = false)
    public String zdlsPhone;

    @Excel(name = "负责人")
    @TableField(exist = false)
    public String fzrName;

    @Excel(name = "岗位类型")
    @TableField(exist = false)
    public String postType;


    @Excel(name = "岗位部门")
    @TableField(exist = false)
    public String deptName;


    @Excel(name = "学生姓名")
    @TableField(exist = false)
    public String stuName;


    @Excel(name = "班级")
    @TableField(exist = false)
    public String className;




    @Excel(name = "学生性别")
    @TableField(exist = false)
    public String gender;

    @ApiModelProperty("审核人类型：0-辅导员；1-指导老师；2-资助办领导")
    @TableField(exist = false)
    public String auditType;

    /**
     * 勤工助学岗位id
     */
    @ApiModelProperty("勤工助学岗位id")
    @TableField("post_id")
    public Long postId;

    /**
     * 学号
     */
    @ApiModelProperty("学号")
    @TableField("stu_no")
    @Excel(name = "学号")
    public String stuNo;

    /**
     * 课余时间
     */
    @ApiModelProperty("课余时间")
    @TableField("can_time")
    @Excel(name = "课余时间")
    public BigDecimal canTime;

    /**
     * 曾获得资助
     */
    @ApiModelProperty("曾获得资助")
    @TableField("help_his")
    @Excel(name = "曾获得资助")
    public String helpHis;

    /**
     * 家庭经济情况
     */
    @ApiModelProperty("家庭经济情况")
    @TableField("family_condition")
    @Excel(name = "家庭经济情况")
    public String familyCondition;

    /**
     * 银行卡号
     */
    @ApiModelProperty("银行卡号")
    @TableField("bank_card")
    @Excel(name = "银行卡号")
    public String bankCard;

    /**
     * 身份证号
     */
    @ApiModelProperty("身份证号")
    @TableField("id_card")
    @Excel(name = "身份证号")
    public String idCard;

    /**
     * 开户行
     */
    @ApiModelProperty("开户行")
    @TableField("bank_addr")
    @Excel(name = "开户行")
    public String bankAddr;

    /**
     * 联系电话
     */
    @ApiModelProperty("联系电话")
    @TableField("stu_phone")
    @Excel(name = "联系电话")
    public String stuPhone;

    /**
     * 宿舍
     */
    @ApiModelProperty("宿舍")
    @TableField("stu_dorm")
    @Excel(name = "宿舍")
    public String stuDorm;

    /**
     * 宿舍
     */
    @ApiModelProperty("所属学院")
    @TableField("stu_dept")
    @Excel(name = "学生学院")
    public String stuDept;

    /**
     * 家庭地址
     */
    @ApiModelProperty("家庭地址")
    @TableField("family_addr")
    @Excel(name = "家庭地址")
    public String familyAddr;

    /**
     * 申请附件
     */
    @ApiModelProperty("申请附件")
    @TableField("apply_material")
    @Excel(name = "申请附件")
    public String applyMaterial;

    /**
     * 申请原因
     */
    @ApiModelProperty("申请原因")
    @TableField("apply_reason")
    @Excel(name = "申请原因")
    public String applyReason;

    /**
     * 申请人签字
     */
    @ApiModelProperty("申请人签字")
    @TableField("apply_sign")
    @Excel(name = "申请人签字")
    public String applySign;

    /**
     * 申请状态
     */
    @ApiModelProperty("申请状态：字典-qgzx_stu_post_status")
    @TableField("apply_status")
    @Excel(name = "申请状态")
    public String applyStatus;

    /**
     * 是否在岗
     */
    @ApiModelProperty("是否在岗")
    @TableField("work_status")
    @Excel(name = "是否在岗")
    public String workStatus;

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

    /**
     * 辅导员签章
     */
    @ApiModelProperty("辅导员签章")
    @TableField("fdy_sign")
    @Excel(name = "辅导员签章")
    private String fdySign;

    /**
     * 辅导员意见
     */
    @ApiModelProperty("辅导员意见")
    @TableField("fdy_cmt")
    @Excel(name = "辅导员意见")
    private String fdyCmt;

    /**
     * 指导老师工号
     */
    @ApiModelProperty("指导老师工号")
    @TableField("zdls_no")
    @Excel(name = "指导老师工号")
    private String zdlsNo;

    /**
     * 指导老师签章
     */
    @ApiModelProperty("指导老师签章")
    @TableField("zdls_sign")
    @Excel(name = "指导老师签章")
    private String zdlsSign;

    /**
     * 指导老师意见
     */
    @ApiModelProperty("指导老师意见")
    @TableField("zdls_cmt")
    @Excel(name = "指导老师意见")
    private String zdlsCmt;

    /**
     * 资助办领导工号
     */
    @ApiModelProperty("资助办领导工号")
    @TableField("zzb_no")
    @Excel(name = "资助办领导工号")
    private String zzbNo;

    /**
     * 资助办领导签章
     */
    @ApiModelProperty("资助办领导签章")
    @TableField("zzb_sign")
    @Excel(name = "资助办领导签章")
    private String zzbSign;

    /**
     * 资助办领导意见
     */
    @ApiModelProperty("资助办领导意见")
    @TableField("zzb_cmt")
    @Excel(name = "资助办领导意见")
    private String zzbCmt;

    /**
     * 删除标志（0代表存在
     */
    @ApiModelProperty("删除标志（0代表存在")
    @TableField("del_flag")
    public String delFlag;

    /**
     * 状态
     */
    @ApiModelProperty("状态")
    @TableField("status")
    @Excel(name = "状态")
    public String status;


    @ApiModelProperty("申请时间")
    @TableField("apply_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    public Date applyTime;

    @ApiModelProperty("辅导员审核时间")
    @TableField("fdy_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date fdyTime;

    @ApiModelProperty("指导老师审核时间")
    @TableField("zdls_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date zdlsTime;


    @ApiModelProperty("资助办审核时间")
    @TableField("zzb_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date zzbTime;

    @TableField(exist = false)
    public String fdyName;


    @TableField(exist = false)
    public String zzbName;

    @TableField(exist = false)
    public BigDecimal totalTime;

    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    public Date manyApplyTime;

    @TableField(exist = false)
    public Long[] ids;
}
