package com.sw.mes.yb.turnstore.controller;


import com.sw.mes.core.response.Result;
import com.sw.mes.core.response.ResultGenerator;
import com.sw.mes.yb.turnstore.dto.EnumDto;
import com.sw.mes.yb.turnstore.statics.EnumValues;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
@Api(description = "周转库枚举常量获取接口")
public class TurnstoreEnumVales {
    @ApiOperation(value = "获取枚举常量所有值,type请见")
    @GetMapping("/turnstore/enumValues")
    public Result<List<EnumDto>> getEnum(String type) {
        List<EnumDto> enums = new ArrayList<>();
        try {
            Class<Enum> onwClass = (Class<Enum>) Class.forName("com.sw.mes.yb.turnstore.statics.EnumValues$" + type);//这里的typeName就是枚举对象的名称,是需要写全路径的,注意小数点别少写了
            Enum[] objs = onwClass.getEnumConstants();
            for (Enum obj : objs) {
                EnumValues.KeyValue nameValue = (EnumValues.KeyValue) obj;
                EnumDto entity = new EnumDto();
                entity.setKey(nameValue.getKey());
                entity.setValue(nameValue.getValue());
                enums.add(entity);
                //enums.add(new EnumDto(nameValue.getKey(), nameValue.getValue()));
            }
        } catch (Exception e) {
            e.printStackTrace();
            return ResultGenerator.fail(e.getMessage());
        }
        return ResultGenerator.success(enums);
    }
}
