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/common/utils/EnumUtil.java | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 106 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/common/utils/EnumUtil.java b/src/main/java/com/ruoyi/common/utils/EnumUtil.java
new file mode 100644
index 0000000..931fd1c
--- /dev/null
+++ b/src/main/java/com/ruoyi/common/utils/EnumUtil.java
@@ -0,0 +1,106 @@
+package com.ruoyi.common.utils;
+
+
+import com.ruoyi.common.enums.BaseEnum;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 閫氱敤鏋氫妇宸ュ叿绫�
+ * 閫傜敤浜庢墍鏈夊疄鐜� BaseEnum 鎺ュ彛鐨勬灇涓�
+ *
+ * @author Bu
+ */
+public class EnumUtil {
+
+ /**
+ * 鏍规嵁 code 鑾峰彇鏋氫妇瀹炰緥
+ */
+ public static <E extends Enum<E> & BaseEnum> E fromCode(Class<E> enumClass, int code) {
+ for (E e : enumClass.getEnumConstants()) {
+ if (Integer.parseInt(String.valueOf(e.getCode())) == code) {
+ return e;
+ }
+ }
+ throw new IllegalArgumentException("鏈煡鐨� code: " + code + " 瀵逛簬鏋氫妇 " + enumClass.getSimpleName());
+ }
+
+ public static <E extends Enum<E> & BaseEnum> E fromCodeHasNull(Class<E> enumClass, int code) {
+ for (E e : enumClass.getEnumConstants()) {
+ if (Integer.parseInt(String.valueOf(e.getCode())) == code) {
+ return e;
+ }
+ }
+ return null;
+ }
+
+ public static <E extends Enum<E> & BaseEnum> E fromCodeHasDefault(Class<E> enumClass, int code,E defaultE) {
+ for (E e : enumClass.getEnumConstants()) {
+ if (Integer.parseInt(String.valueOf(e.getCode())) == code) {
+ return e;
+ }
+ }
+ return defaultE;
+ }
+
+
+
+ /**
+ * 鏍规嵁 value 鑾峰彇鏋氫妇瀹炰緥
+ */
+ public static <E extends Enum<E> & BaseEnum> E fromValue(Class<E> enumClass, String value) {
+ for (E e : enumClass.getEnumConstants()) {
+ if (Objects.equals(e.getValue(), value)) {
+ return e;
+ }
+ }
+ throw new IllegalArgumentException("鏈煡鐨� value: " + value + " 瀵逛簬鏋氫妇 " + enumClass.getSimpleName());
+ }
+
+ /**
+ * 鑾峰彇鎵�鏈夋灇涓鹃」鍒楄〃
+ */
+ public static <E extends Enum<E> & BaseEnum> List<E> listAll(Class<E> enumClass) {
+ return Arrays.asList(enumClass.getEnumConstants());
+ }
+
+ /**
+ * 杞负 List<Map>锛堥�傚悎杩斿洖缁欏墠绔級
+ * 鏍煎紡: [{ "code": 1, "value": "缁炵嚎" }, ...]
+ */
+ public static <E extends Enum<E> & BaseEnum> List<Map<String, Object>> toList(Class<E> enumClass) {
+ return Arrays.stream(enumClass.getEnumConstants())
+ .map(e -> {
+ Map<String, Object> map = new HashMap<>();
+ map.put("key", e.getCode().toString());
+ map.put("value", e.getValue());
+ return map;
+ })
+ .collect(Collectors.toList());
+ }
+
+// /**
+// * 杞负 Map<Integer, String>
+// * 鏍煎紡: { 1: "缁炵嚎", 0: "鎷変笣" }
+// */
+// public static <E extends Enum<E> & BaseEnum> Map<Integer, String> toMap(Class<E> enumClass) {
+// return Arrays.stream(enumClass.getEnumConstants())
+// .collect(Collectors.toMap((BaseEnum::getCode, BaseEnum::getValue));
+// }
+//
+//
+// public static void main(String[] args) {
+// // 鉁� 1. 鏍规嵁 code 鑾峰彇鏋氫妇
+// StockRecordTypeEnum status = EnumUtil.fromCode(StockRecordTypeEnum.class, 1);
+// System.out.println(status.getValue()); // 缁炵嚎
+//
+// // 鉁� 2. 杞垚 list (閫傚悎鍓嶇)
+// System.out.println(EnumUtil.toList(StockRecordTypeEnum.class));
+// // 杈撳嚭: [{code=1, value=缁炵嚎}, {code=0, value=鎷変笣}]
+//
+// // 鉁� 3. 杞垚 map
+// System.out.println(EnumUtil.toMap(StockRecordTypeEnum.class));
+// // 杈撳嚭: {1=缁炵嚎, 0=鎷変笣}
+// }
+}
\ No newline at end of file
--
Gitblit v1.9.3