package jnpf.enums.attendance;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author huanglinpan
 * @Date 2024/8/9 13:36
 * @Version 1.0 （版本号）
 */
public enum UserSettingEnum {

    // 上班极速打卡设置
    ATTENDANCE_SETTING_START_SPEED_CHECK(UserSettingEnum.START_SPEED_CHECK, "上班极速打卡"),
    // 下班极速打卡设置
    ATTENDANCE_SETTING_END_SPEED_CHECK(UserSettingEnum.END_SPEED_CHECK, "下班极速打卡"),
    // 考勤消息接收设置
    ATTENDANCE_SETTING_MESSAGE_RECEIVE(UserSettingEnum.MESSAGE_RECEIVE, "考勤消息接收"),
    // 人脸录入
    ATTENDANCE_SETTING_FACE(UserSettingEnum.FACE, "人脸录入"),

    // 考勤打卡提醒设置
    ATTENDANCE_SETTING_CHECKIN_REMINDER(UserSettingEnum.CHECKIN_REMINDER, "考勤打卡提醒"),
    // 上班提前提醒设置
    ATTENDANCE_SETTING_PRE_WORK_REMINDER(UserSettingEnum.PRE_WORK_REMINDER, "上班提前提醒"),
    // 上班缺卡提醒设置
    ATTENDANCE_SETTING_MISSING_CHECKIN_REMINDER(UserSettingEnum.MISSING_CHECKIN_REMINDER, "上班缺卡提醒"),
    // 下班打卡提醒设置
    ATTENDANCE_SETTING_END_WORK_REMINDER(UserSettingEnum.END_WORK_REMINDER, "下班打卡提醒"),
    // 下班缺卡提醒设置
    ATTENDANCE_SETTING_MISSING_END_WORK_REMINDER(UserSettingEnum.MISSING_END_WORK_REMINDER, "下班缺卡提醒"),
    // 班次旷工提醒设置
    ATTENDANCE_SETTING_CLASS_ABSENCE_REMINDER(UserSettingEnum.CLASS_ABSENCE_REMINDER, "班次旷工提醒"),
    // 极速打卡成功提醒设置
    ATTENDANCE_SETTING_SPEED_CHECK_SUCCESS_REMINDER(UserSettingEnum.SPEED_CHECK_SUCCESS_REMINDER, "极速打卡成功提醒"),
    // 考勤结算提醒设置
    ATTENDANCE_SETTING_ATTENDANCE_SETTLEMENT_REMINDER(UserSettingEnum.ATTENDANCE_SETTLEMENT_REMINDER, "考勤结算提醒"),
    // 日报设置
    ATTENDANCE_SETTING_DAILY_REPORT(UserSettingEnum.DAILY_REPORT, "日报"),
    // 个人月报设置
    ATTENDANCE_SETTING_PERSONAL_MONTHLY_REPORT(UserSettingEnum.PERSONAL_MONTHLY_REPORT, "个人月报"),
    // 考勤组锁定/解锁通知设置
    ATTENDANCE_SETTING_ATTENDANCE_GROUP_LOCK_UNLOCK_NOTICE(UserSettingEnum.ATTENDANCE_GROUP_LOCK_UNLOCK_NOTICE, "考勤组锁定/解锁通知"),
    // 考勤组变动提醒设置
    ATTENDANCE_SETTING_ATTENDANCE_GROUP_CHANGE_REMINDER(UserSettingEnum.ATTENDANCE_GROUP_CHANGE_REMINDER, "考勤组变动提醒"),
    // 考勤组入离组提醒设置
    ATTENDANCE_SETTING_ATTENDANCE_GROUP_JOIN_LEAVE_REMINDER(UserSettingEnum.ATTENDANCE_GROUP_JOIN_LEAVE_REMINDER, "考勤组入离组提醒"),
    // 考勤组规则变动提醒设置
    ATTENDANCE_SETTING_ATTENDANCE_GROUP_RULE_CHANGE_REMINDER(UserSettingEnum.ATTENDANCE_GROUP_RULE_CHANGE_REMINDER, "考勤组规则变动提醒"),
    // 其他提醒设置
    ATTENDANCE_SETTING_OTHER_REMINDERS(UserSettingEnum.OTHER_REMINDERS, "其他提醒"),
    // 班次变动提醒设置
    ATTENDANCE_SETTING_CLASS_CHANGE_REMINDER(UserSettingEnum.CLASS_CHANGE_REMINDER, "班次变动提醒"),
    // 出勤结果变更提醒设置
    ATTENDANCE_SETTING_ATTENDANCE_RESULT_CHANGE_REMINDER(UserSettingEnum.ATTENDANCE_RESULT_CHANGE_REMINDER, "出勤结果变更提醒"),
    ATTENDANCE_SETTING_MEMBER_SETTING(UserSettingEnum.MEMBER_SETTING, "成员设置"),
    ATTENDANCE_SETTING_ATTENDANCE_GROUP_DAILY_REPORT_SEND(UserSettingEnum.ATTENDANCE_GROUP_DAILY_REPORT_SEND, "考勤组成员日报是否发送"),
    ATTENDANCE_SETTING_ATTENDANCE_GROUP_MONTHLY_REPORT_SEND(UserSettingEnum.ATTENDANCE_GROUP_MONTHLY_REPORT_SEND, "考勤组成员月报是否发送"),
    ATTENDANCE_SETTING_ATTENDANCE_GROUP_NO_CHECKIN_REMIND_ADMIN(UserSettingEnum.ATTENDANCE_GROUP_NO_CHECKIN_REMIND_ADMIN, "考勤组成员未打卡提醒管理员"),
    ATTENDANCE_SETTING_ADMIN_SETTING(UserSettingEnum.ADMIN_SETTING, "管理员设置"),
    ATTENDANCE_SETTING_ATTENDANCE_TEAM_MONTHLY_REPORT_SEND(UserSettingEnum.ATTENDANCE_TEAM_MONTHLY_REPORT_SEND, "考勤组团队月报是否发送"),
    ATTENDANCE_SETTING_UN_SCHEDULED_REMIND_ADMIN(UserSettingEnum.UN_SCHEDULED_REMIND_ADMIN, "未排班提醒管理员"),

    ;

    /** 上班极速打卡 */
    public static final String START_SPEED_CHECK = "sbjsdk";
    /** 下班极速打卡 */
    public static final String END_SPEED_CHECK = "xbjsdk";

    /** 人脸录入 */
    public static final String FACE = "rllr";
    /** 考勤消息接收 */
    public static final String MESSAGE_RECEIVE = "kqxxjs";
    /** 考勤打卡提醒 */
    public static final String CHECKIN_REMINDER = "kqdktx";
    /** 上班提前提醒 */
    public static final String PRE_WORK_REMINDER = "sbtqtx";
    /** 上班缺卡提醒 */
    public static final String MISSING_CHECKIN_REMINDER = "sbqktx";
    /** 下班打卡提醒 */
    public static final String END_WORK_REMINDER = "xbdktx";
    /** 下班缺卡提醒 */
    public static final String MISSING_END_WORK_REMINDER = "xbqktx";
    /** 班次旷工提醒 */
    public static final String CLASS_ABSENCE_REMINDER = "bcqqtx";
    /** 极速打卡成功提醒 */
    public static final String SPEED_CHECK_SUCCESS_REMINDER = "jsdkcgtx";
    /** 考勤结算提醒 */
    public static final String ATTENDANCE_SETTLEMENT_REMINDER = "kqjstx";
    /** 日报 */
    public static final String DAILY_REPORT = "rb";
    /** 个人月报 */
    public static final String PERSONAL_MONTHLY_REPORT = "gryb";
    /** 考勤组锁定/解锁通知 */
    public static final String ATTENDANCE_GROUP_LOCK_UNLOCK_NOTICE = "kqzsdjstz";
    /** 考勤组变动提醒 */
    public static final String ATTENDANCE_GROUP_CHANGE_REMINDER = "kqzbdtx";
    /** 考勤组入离组提醒 */
    public static final String ATTENDANCE_GROUP_JOIN_LEAVE_REMINDER = "kqzrlztx";
    /** 考勤组规则变动提醒 */
    public static final String ATTENDANCE_GROUP_RULE_CHANGE_REMINDER = "kqzgzbdtx";
    /** 其他提醒 */
    public static final String OTHER_REMINDERS = "qttx";
    /** 班次变动提醒 */
    public static final String CLASS_CHANGE_REMINDER = "bcbdtx";
    /** 出勤结果变更提醒 */
    public static final String ATTENDANCE_RESULT_CHANGE_REMINDER = "cqjgbgtx";
    //成员设置
    public static final String MEMBER_SETTING = "cysz";
    //考勤组成员日报是否发送
    public static final String ATTENDANCE_GROUP_DAILY_REPORT_SEND = "kqzcyrbsffs";
    //考勤组成员月报是否发送
    public static final String ATTENDANCE_GROUP_MONTHLY_REPORT_SEND = "kqzcyybsffs";
    //考勤组成员未打卡提醒管理员
    public static final String ATTENDANCE_GROUP_NO_CHECKIN_REMIND_ADMIN = "kqzcywdktxgly";
    //管理员设置
    public static final String ADMIN_SETTING = "glysz";
    //考勤组团队月报是否发送
    public static final String ATTENDANCE_TEAM_MONTHLY_REPORT_SEND = "kqztdybsffs";
    //未排班提醒管理员
    public static final String UN_SCHEDULED_REMIND_ADMIN = "wpbtxgly";

    public static String getByCode(String code) {
        UserSettingEnum[] values = values();
        for (UserSettingEnum value : values) {
            if (code.equals(value.code)) {
                return value.msg;
            }
        }
        return null;
    }

    String code;
    String msg;

    UserSettingEnum(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    public String getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
