PiLotTypeEnum.java

package com.mycim.valueobject.consts;

import com.mycim.framework.utils.lang.collections.MapUtils;

import java.util.*;

/**
 * @author songpy
 * @version 1.0.0
 * @date 2021/8/18
 **/
public enum PiLotTypeEnum {
    /**
     * Idle Time Type
     */
    IDLETIME(1, "byIdleTime"),
    /**
     * PM Type
     */
    PM(2, "byPM"),
    /**
     * Count Type
     */
    COUNT(3, "byCount"),
    /**
     * Recipe Group Change Type
     */
    RECIPEGROUPCHANGE(4, "byRC");

    private String desc;

    private Integer priority;

    PiLotTypeEnum(int priority, String desc) {
        this.desc = desc;
        this.priority = priority;
    }

    public static List<Map<String, String>> toMapList() {
        List<Map<String, String>> list = new ArrayList<>();
        for (PiLotTypeEnum element : PiLotTypeEnum.values()) {
            Map<String, String> map = new HashMap<>();
            map.put("key", element.toString());
            map.put("value", element.getDesc());
            map.put("priority", element.getPriority().toString());
            list.add(map);
        }

        Collections.sort(list, new Comparator<Map<String, String>>() {
            @Override
            public int compare(Map<String, String> o1, Map<String, String> o2) {
                int o1Seq = MapUtils.getIntValue(o1, "priority");
                int o2Seq = MapUtils.getIntValue(o2, "priority");

                return o1Seq - o2Seq;
            }
        });
        return list;
    }

    public String getDesc() {
        return desc;
    }

    public Integer getPriority() {
        return priority;
    }
}