package com.chushang.inspection.work.enums;

import cn.hutool.core.convert.Convert;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ReflectUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;

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

/**
 * <h1>巡检结果</h1>
 *
 * <p>农行湖北巡检单</p>
 *
 * @author 单傲
 * @date 2023/1/16 10:21
 */
@Getter
@AllArgsConstructor
public enum InsResult {

    /**
     * 正常营业
     */
    NORMAL(1, "正常营业"),

    /**
     * 商户撤机
     */
    WEANING(2, "商户撤机"),

    /**
     * 商户撤店
     */
    REMOVE(3, "商户撤店"),

    /**
     * 拒绝拜访
     */
    REFUSE(4, "拒绝拜访"),

    /**
     * 巡检失败
     */
    LOSE(5, "巡检失败");

    /**
     * 状态值
     */
    private final Integer val;

    /**
     * 状态名称
     */
    private final String name;

    /**
     * 比较val获取值
     */
    public static Map<String, String> getResultMap() {
        InsResult[] results = InsResult.class.getEnumConstants();
        HashMap<String, String> resultMap = MapUtil.newHashMap(results.length);
        for (InsResult result : results) {
            resultMap.put(Convert.toStr(ReflectUtil.getFieldValue(result, "val")),
                    Convert.toStr(ReflectUtil.getFieldValue(result, "name")));
        }
        return resultMap;
    }
}
