package cn.superdesk.uniorder.common.enums.scheduler.jd;

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

/**
 * @Description: Java类作用描述
 * @Author: linjinyu
 * @CreateDate: 2022/6/13 3:06 下午
 * @UpdateUser: linjinyu
 * @UpdateDate: 2022/6/13 3:06 下午
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public enum ScheduleTaskRunStatusEnum {

    已取消(777, "已取消"), // ---- 目前没在用

    待导入(100, "待导入"), // ---- 文件导入 导入状态:0-导入中;1-导入成功;2-导入失败; process_state process_time
    导入中(102, "待导入"), // ---- 文件导入 导入状态:0-导入中;1-导入成功;2-导入失败; process_state process_time
    已导入(101, "已导入"), // ---- 文件导入 导入状态:0-导入中;1-导入成功;2-导入失败; process_state process_time

    待对账(110, "待对账"), // ---- 订单比对(对账) 对账状态:0-待对账;1-对账完成;10-对账中; accounting_status finish_time 对账结果:0-待对账;1-正常;2-异常; check_state check_time
    对账中(112, "待对账"), // ---- 订单比对(对账) 对账状态:0-待对账;1-对账完成;10-对账中; accounting_status finish_time 对账结果:0-待对账;1-正常;2-异常; check_state check_time
    已对账(111, "已对账"), // ---- 订单比对(对账) 对账状态:0-待对账;1-对账完成;10-对账中; accounting_status finish_time 对账结果:0-待对账;1-正常;2-异常; check_state check_time

    待确认(120, "待确认"), // ---- 确认账单
    确认中(122, "待确认"), // ---- 确认账单
    已确认(121, "已确认"), // ---- 确认账单
    ;

    private Integer key;
    private String  desc;

    ScheduleTaskRunStatusEnum(Integer key, String desc) {
        this.key = key;
        this.desc = desc;
    }

    public Integer getKey() {
        return key;
    }

    public String getDesc() {
        return desc;
    }

    public static String getDesc(Integer key) {
        for (ScheduleTaskRunStatusEnum c : ScheduleTaskRunStatusEnum.values()) {
            if (c.key.equals(key)) {
                return c.getDesc();
            }
        }
        return null;
    }

    private static final Map<Integer, ScheduleTaskRunStatusEnum> LOOKUP = new HashMap<>();

    static {
        for (ScheduleTaskRunStatusEnum s : EnumSet.allOf(ScheduleTaskRunStatusEnum.class)) {
            LOOKUP.put(s.getKey(), s);
        }
    }

    public static ScheduleTaskRunStatusEnum get(Integer key) {
        return LOOKUP.get(key);
    }
}
