VehicleDataSyncStatusEnum.java 1.58 KB
package com.bsth.entity.schedule.datasync;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import org.springframework.util.StringUtils;

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

/**
 * 车辆数据同步状态enum。
 */
public enum VehicleDataSyncStatusEnum {

    PREPARE("同步准备"),
    PREPARE_FAIL("同步准备失败"),
    SYNCING("同步中"),
    END("同步结束");

    /** 字典描述(对应数据库的字典) */
    private String dicDesc;

    @JsonCreator
    VehicleDataSyncStatusEnum(String dicDesc) {
        this.dicDesc = dicDesc;
    }

    @JsonValue
    public String getDicDesc() {
        return dicDesc;
    }

    public void setDicDesc(String dicDesc) {
        this.dicDesc = dicDesc;
    }

    @Override
    public String toString() {
        return dicDesc;
    }

    public static Map<String, VehicleDataSyncStatusEnum> enumMap =
            new HashMap<String, VehicleDataSyncStatusEnum>() {{
                put("同步准备", PREPARE);
                put("同步准备失败", PREPARE_FAIL);
                put("同步中", SYNCING);
                put("同步结束", END);
            }};

    public static VehicleDataSyncStatusEnum fromDicDesc(String dicDesc) {
        if (StringUtils.isEmpty(dicDesc)) {
            throw new RuntimeException("车辆数据同步状态描述不能为空!");
        } else if (enumMap.get(dicDesc) == null) {
            throw new RuntimeException("车辆数据同步状态未定义:" + dicDesc);
        }
        return enumMap.get(dicDesc);
    }
}