package jnpf.enums.attendance;

import lombok.Getter;

/**
 * describe
 *
 * @author HuangLinPan
 * @date 2023/12/15
 */
@Getter
public enum BalanceEnum {
    // 1 是 0 否
    BALANCE_FALSE(0, "否"),
    BALANCE_TRUE(1, "是"),

    // 是否审核通过 0.待审核 2.未通过 1.通过,
    APPROVE_STATUS_WAIT(0, "待审核"),
    APPROVE_STATUS_PASS(1, "通过"),
    APPROVE_STATUS_NO_PASS(2, "未通过"),
    APPROVE_STATUS_WITHDRAW(3, "撤回"),
    // userType 使用方式 0: 审批 ,1:排班,
    USER_TYPE_APPROVE(0,"审批"),
    USER_TYPE_SHIFT(1,"排班"),
    // over 是否使用完 0未使用完 1使用完
    APPROVE_NO_OVER(0,"未使用完"),
    APPROVE_OVER(1,"使用完"),
    // 类型 : 1.节日 2.假日 3.加班
    BALANCE_TYPE_JR(1,"节日"),
    BALANCE_TYPE_HOLIDAY(2,"假日"),
    BALANCE_TYPE_WORK(3,"加班"),
    // 是否带薪（1带薪/兑换券 2非带薪/抵扣劵）
    BALANCE_PAID_DH(1,"兑换券"),
    BALANCE_PAID_DK(2,"抵扣劵"),
    // grantWay 发放方式  0.自动发放  1.手动发放
    BALANCE_GRANT_WAY_ZD(0,"自动发放"),
    BALANCE_GRANT_WAY_SD(1,"手动发放"),
    // unit 单位 :  1 :小时 2: 天 3.半天
    BALANCE_UNIT_XH(1,"小时"),
    BALANCE_UNIT_T(2,"天"),
    BALANCE_UNIT_BT(3,"半天"),
    // lock 锁定: 1锁定  2c
    BALANCE_LOCK_SD(1,"锁定"),
    BALANCE_LOCK_YXF(2,"已消费"),
    //审批类型 1.常规补卡审批 2.调整出勤结果审批 3.外勤审批 4.请假审批 5.加班审批 6.借调审批
    APPROVE_CG(1,"常规补卡审批"),
    APPROVE_TZ(2,"调整出勤结果审批"),
    APPROVE_WQ(3,"外勤审批"),
    APPROVE_QJ(4,"请假审批"),
    APPROVE_JB(5,"加班审批"),
    APPROVE_JD(6,"借调审批"),


                ;
    Integer code;
    String msg;

    BalanceEnum(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public static String getMsg(Integer code) {
        BalanceEnum[] values = BalanceEnum.values();
        for (BalanceEnum value : values) {
            if (value.getCode() == code) {
                return value.getMsg();
            }
        }
        return null;
    }

    public static BalanceEnum getEnum(int code) {
        BalanceEnum[] values = BalanceEnum.values();
        for (BalanceEnum value : values) {
            if (value.getCode() == code) {
                return value;
            }
        }
        return null;
    }
}
