package com.testor.module.train.project.model.enums;

import java.util.Arrays;

/**
 * packageName com.testor.module.train.project.model
 *
 * @author 你的名字
 * @version JDK 8
 * @enumName CanTypeEnum (此处以class为例)
 * @date 2024/9/6
 * @description TODO
 */
public enum VisitTypeEnum {

    P_M("3", "危险作业人员"),
    A_M("4", "一般从业人员"),
    B_M("5", "相关方人员"),
    C_M("6", "新员工及转岗人员"),
    D_M("entry_exam", "一把手"),
    R_M("skill_exam", "安全管理人员");
    private String value;
    private String name;

    VisitTypeEnum(String value, String name) {
        this.value = value;
        this.name = name;
    }

    public String getValue() {
        return value;
    }

    public String getName() {
        return name;
    }

    /*public static String getName(String value) {
        for (VisitTypeEnum bean : VisitTypeEnum.values()) {
            if (bean.getValue().equals(value)) {
                return bean.getName();
            }
        }
        return value;
    }*/

    public static String getName(String value) {
        if (org.apache.commons.lang3.StringUtils.isBlank(value)) {
            return value;
        }

        // 如果包含逗号，处理多值
        if (value.contains(",")) {
            return Arrays.stream(value.split(","))
                    .map(String::trim)
                    .filter(org.apache.commons.lang3.StringUtils::isNotBlank)
                    .map(VisitTypeEnum::getSingleName)
                    .collect(java.util.stream.Collectors.joining(","));
        }

        // 单个值
        return getSingleName(value);
    }

    private static String getSingleName(String value) {
        for (VisitTypeEnum enumItem : VisitTypeEnum.values()) {
            if (enumItem.getValue().equals(value.trim())) {
                return enumItem.getName();
            }
        }
        return value; // 找不到则返回原值
    }
}
