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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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


/**
 * 勤工助学薪资填报对象 qgzx_money
 *
 * @author srs
 * @date 2024-06-11
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel(value = "QgzxMoney对象", description = "勤工助学薪资填报")
@TableName("qgzx_money")
public class QgzxMoney {

    //此枚举用于 勤工助学 月薪结算 审核状态字典   qgzx_apply_status
    public enum applyStatusDict {
        Save("0"), //保存
        Submit("1"), //已提交待审核
        Dept("2"), //部门审核通过
        High("3"), //资助办审核通过
        Final("6"), //学工审核通过
        Reject("10"), //拒绝
        Return("11"), //驳回
        Replay("14"); //已重新提交
        private final String value;

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

        public String getValue() {
            return value;
        }
    }


    private static final long serialVersionUID = 1L;

    @TableField(exist = false)
    public Long deptId;

    @Excel(name = "序号")
    @TableField(exist = false)
    public int rankNum;

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

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

    @Excel(name = "学号")
    @TableField(exist = false)
    public String stuNo;

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

    @Excel(name = "身份证号",width = 20)
    @TableField(exist = false)
    public String idCard;

    @Excel(name = "学院")
    @TableField(exist = false)
    public String stuDept;


//    @Excel(name = "年级")
    @TableField(exist = false)
    public String gradeName;

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



    @Excel(name = "固定岗位（A/B）")
    @TableField(exist = false)
    public String postType;

    @Excel(name = "困难类型")
    @TableField(exist = false)
    public String familyCondition;


    @Excel(name = "工作内容")
    @TableField(exist = false)
    public String workNeed;

    @Excel(name = "工作时间")
    @TableField(exist = false)
    public String totalTimeExport;


    /**
     * 总工作时长
     */
    @ApiModelProperty("总工作时长")
    @TableField("total_time")
//    @Excel(name = "总工作时长")
    public BigDecimal totalTime;

    @Excel(name = "总薪资")
    @TableField(exist = false)
    public BigDecimal totalMoney;


    @Excel(name = "银行卡号",width = 20)
    @TableField(exist = false)
    public String bankCard;

    // 薪资
    @ApiModelProperty("薪资")
//    @Excel(name = "薪资")
    public BigDecimal money;


    /**
     * 审核备注
     */
    @ApiModelProperty("审核备注")
    @TableField("audit_remark")
    public String auditRemark;


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

    /**
     * 学生岗位id
     */
    @ApiModelProperty("学生岗位id")
    @TableField("stu_post_id")
    public Long stuPostId;


    /**
     * 申请人签章
     */
    @ApiModelProperty("申请人签章")
    @TableField("apply_sign")
    public String applySign;

    /**
     * 申请人工号
     */
    @ApiModelProperty("申请人工号")
    @TableField("apply_no")
    public String applyNo;

    /**
     * 申请时间
     */
    @ApiModelProperty("申请时间")
    @TableField("apply_time")
    @JsonFormat(pattern = "yyyy-MM-dd")
    public Date applyTime;

    /**
     * 审核状态
     */
    @ApiModelProperty("审核状态，字典：qgzx_apply_status")
    @TableField("apply_status")
    public String applyStatus;

    /**
     * 部门领导签章
     */
    @ApiModelProperty("部门领导签章")
    @TableField("dept_sign")
    public String deptSign;

    /**
     * 部门领导意见
     */
    @ApiModelProperty("部门领导意见")
    @TableField("dept_cmt")
    public String deptCmt;

    /**
     * 部门领导工号
     */
    @ApiModelProperty("部门领导工号")
    @TableField("dept_no")
    public String deptNo;

    /**
     * 资助办领导工号
     */
    @ApiModelProperty("资助办领导工号")
    @TableField("high_no")
    public String highNo;

    /**
     * 资助办领导意见
     */
    @ApiModelProperty("资助办领导意见")
    @TableField("high_cmt")
    public String highCmt;

    /**
     * 资助办领导签章
     */
    @ApiModelProperty("资助办领导签章")
    @TableField("high_sign")
    public String highSign;

    /**
     * 学工处领导工号
     */
    @ApiModelProperty("学工处领导工号")
    @TableField("final_no")
    public String finalNo;

    /**
     * 学工处领导意见
     */
    @ApiModelProperty("学工处领导意见")
    @TableField("final_cmt")
    public String finalCmt;

    /**
     * 学工处领导签章
     */
    @ApiModelProperty("学工处领导签章")
    @TableField("final_sign")
    public String finalSign;


    //@Excel(name = "审核状态")
    @TableField(exist = false)
    public String applyStatusEx;


    @ApiModelProperty("部门领导审核时间")
    @TableField("dept_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date deptTime;


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

    @ApiModelProperty("学工处领导审核时间")
    @TableField("final_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date finalTime;

    @TableField(exist = false)
    public String deptNoName;
    @TableField(exist = false)
    public String highName;
    @TableField(exist = false)
    public String finalName;

    @TableField(exist = false)
    public int workdayCount; //工作日天数

    @TableField(exist = false)
    public Long postId;


}
