package com.ruoyi.project.business.enums;


import com.ruoyi.common.exception.ServiceErrorException;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @author jubs
 */

@AllArgsConstructor
@Getter
public enum JEPFuncEnum {

    /**
     * 合计方法
     */
    SUM_FUNC("SUM_FUNC", "SUM"),
    /**
     * if 函数
     */
    IF_FUNC("IF_FUNC", "IF"),
    /**
     * 四舍五入
     */
    ROUND_FUNC("ROUND_FUNC", "ROUND"),
    /**
     * 查询函数
     */
    FIND_FUNC("FIND_FUNC", "FIND"),
    /**
     * 最大值函数
     */
    MAX_FUNC("MAX_FUNC", "MAX"),
    /**
     * 最小值函数
     */
    MIN_FUNC("MIN_FUNC", "MIN"),
    /**
     * IFS 函数
     */
    IFS_FUNC("IFS_FUNC", "IFS"),
    /**
     * 上取整函数
     */
    CEIL_FUNC("CEIL_FUNC", "ROUNDUP"),
    /**
     * 下取整函数
     */
    FLOOR_FUNC("FLOOR_FUNC", "ROUNDDOWN"),
    /**
     * 字符串判空函数
     */
    IS_EMPTY_FUNC("IS_EMPTY_FUNC", "ISEMPTY"),
    /**
     * 字符串完全匹配函数
     * */
    INCLUDE_FUNC("INCLUDE_FUNC", "INCLUDE")
    ;


    private String funcKey;
    private String funcValue;

    public static JEPFuncEnum fromByValue(String value) {
        for (JEPFuncEnum auditFlowEnum : values()) {
            if (auditFlowEnum.getFuncValue().equals(value)) {
                return auditFlowEnum;
            }
        }
        throw new ServiceErrorException("非法的函数类型");
    }

    public static JEPFuncEnum fromByKey(String key) {
        for (JEPFuncEnum auditFlowEnum : values()) {
            if (auditFlowEnum.getFuncKey().equals(key)) {
                return auditFlowEnum;
            }
        }
        throw new ServiceErrorException("非法的函数类型");
    }

}
