From dee56ed8d52f1d8ee1f89b369561c49e9b3b7c2d Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 23 一月 2026 17:56:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New

---
 src/main/java/com/ruoyi/basic/utils/EnumUtils.java |   45 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 45 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/basic/utils/EnumUtils.java b/src/main/java/com/ruoyi/basic/utils/EnumUtils.java
new file mode 100644
index 0000000..5103ac5
--- /dev/null
+++ b/src/main/java/com/ruoyi/basic/utils/EnumUtils.java
@@ -0,0 +1,45 @@
+package com.ruoyi.basic.utils;
+
+import com.ruoyi.basic.dto.SelectOptionDTO;
+import com.ruoyi.common.enums.BaseEnum;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class EnumUtils {
+    public static List<SelectOptionDTO<?>> getOptions(String className) {
+        try {
+            Class<?> clazz = Class.forName(className);
+            return getOptionsByClass(clazz);
+        } catch (ClassNotFoundException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private static List<SelectOptionDTO<?>> getOptionsByClass(Class<?> clazz) {
+        if (!clazz.isEnum()) {
+            throw new RuntimeException("涓嶆槸鏋氫妇锛�" + clazz.getName());
+        }
+        if (!BaseEnum.class.isAssignableFrom(clazz)) {
+            throw new RuntimeException("鏈疄鐜� BaseEnum锛�" + clazz.getName());
+        }
+        return (List<SelectOptionDTO<?>>) getOptionsInternal((Class) clazz);
+    }
+
+    private static <T> List<SelectOptionDTO<T>> getOptionsInternal(
+            Class<? extends BaseEnum<T>> clazz) {
+
+        Enum<?>[] enums = (Enum<?>[]) clazz.getEnumConstants();
+        List<SelectOptionDTO<T>> list = new ArrayList<>();
+
+        for (Enum<?> e : enums) {
+            BaseEnum<T> option = (BaseEnum<T>) e;
+            list.add(new SelectOptionDTO<>(
+                    option.getCode(),
+                    option.getValue()
+            ));
+        }
+        return list;
+    }
+}

--
Gitblit v1.9.3