package com.fjhx.enums;

import lombok.Getter;

import java.util.HashMap;

/**
 * 流程节点类型枚举
 */
@Getter
public enum ProcessNodeTypeEnum {

    START(1), // 开始节点
    EXAMINED(2), // 审核（可以进行通过/不通过操作，通过后流程向下一节点流转，不通过则退回上一节点）
    APPROVAL(3), // 审批（可以进行同意/驳回操作，同意后向下一节点流转，驳回则以驳回状态结束本流程）
    HANDLE(4), // 办理（仅支持完成办理操作，操作后向下一节点流转）
    BRANCH(5), // 分支
    END(99) // 结束节点
    ;

    private final Integer type;

    private static final HashMap<Integer, ProcessNodeTypeEnum> map = new HashMap<>();

    ProcessNodeTypeEnum(Integer type) {
        this.type = type;
    }

    static {
        for (ProcessNodeTypeEnum value : ProcessNodeTypeEnum.values()) {
            map.put(value.getType(), value);
        }
    }

    /**
     * 根据type值获取枚举
     */
    public static ProcessNodeTypeEnum get(Integer type) {
        return map.get(type);
    }

}
