From f1208474f771a1c233d7425c8ed13fbaa0d521ac Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期三, 12 三月 2025 09:35:13 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/5.X' into 5.X --- ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java | 79 +++++++++++++++++++++++++++++++++++---- 1 files changed, 71 insertions(+), 8 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java index 0af943a..c1660ee 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java @@ -7,6 +7,10 @@ import org.dromara.common.core.utils.StringUtils; import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; /** * 涓氬姟鐘舵�佹灇涓� @@ -16,30 +20,37 @@ @Getter @AllArgsConstructor public enum BusinessStatusEnum { + /** * 宸叉挙閿� */ CANCEL("cancel", "宸叉挙閿�"), + /** * 鑽夌 */ DRAFT("draft", "鑽夌"), + /** * 寰呭鏍� */ WAITING("waiting", "寰呭鏍�"), + /** * 宸插畬鎴� */ FINISH("finish", "宸插畬鎴�"), + /** * 宸蹭綔搴� */ INVALID("invalid", "宸蹭綔搴�"), + /** * 宸查��鍥� */ BACK("back", "宸查��鍥�"), + /** * 宸茬粓姝� */ @@ -55,20 +66,72 @@ */ private final String desc; + private static final Map<String, BusinessStatusEnum> STATUS_MAP = Arrays.stream(BusinessStatusEnum.values()) + .collect(Collectors.toConcurrentMap(BusinessStatusEnum::getStatus, Function.identity())); + /** - * 鑾峰彇涓氬姟鐘舵�� + * 鏍规嵁鐘舵�佽幏鍙栧搴旂殑 BusinessStatusEnum 鏋氫妇 * - * @param status 鐘舵�� + * @param status 涓氬姟鐘舵�佺爜 + * @return 瀵瑰簲鐨� BusinessStatusEnum 鏋氫妇锛屽鏋滄壘涓嶅埌鍒欒繑鍥� null + */ + public static BusinessStatusEnum getByStatus(String status) { + // 浣跨敤 STATUS_MAP 鑾峰彇瀵瑰簲鐨勬灇涓撅紝鑻ユ壘涓嶅埌鍒欒繑鍥� null + return STATUS_MAP.get(status); + } + + /** + * 鏍规嵁鐘舵�佽幏鍙栧搴旂殑涓氬姟鐘舵�佹弿杩颁俊鎭� + * + * @param status 涓氬姟鐘舵�佺爜 + * @return 杩斿洖涓氬姟鐘舵�佹弿杩帮紝鑻ョ姸鎬佺爜涓虹┖鎴栨湭鎵惧埌瀵瑰簲鐨勬灇涓撅紝杩斿洖绌哄瓧绗︿覆 */ public static String findByStatus(String status) { if (StringUtils.isBlank(status)) { return StrUtil.EMPTY; } - return Arrays.stream(BusinessStatusEnum.values()) - .filter(statusEnum -> statusEnum.getStatus().equals(status)) - .findFirst() - .map(BusinessStatusEnum::getDesc) - .orElse(StrUtil.EMPTY); + BusinessStatusEnum statusEnum = STATUS_MAP.get(status); + return (statusEnum != null) ? statusEnum.getDesc() : StrUtil.EMPTY; + } + + /** + * 鍒ゆ柇鏄惁涓烘寚瀹氱殑鐘舵�佷箣涓�锛氳崏绋裤�佸凡鎾ら攢鎴栧凡閫�鍥� + * + * @param status 瑕佹鏌ョ殑鐘舵�� + * @return 濡傛灉鐘舵�佷负鑽夌銆佸凡鎾ら攢鎴栧凡閫�鍥炰箣涓�锛屽垯杩斿洖 true锛涘惁鍒欒繑鍥� false + */ + public static boolean isDraftOrCancelOrBack(String status) { + return DRAFT.status.equals(status) || CANCEL.status.equals(status) || BACK.status.equals(status); + } + + /** + * 鍒ゆ柇鏄惁涓烘挙閿�锛岄��鍥烇紝浣滃簾锛岀粓姝� + * + * @param status status + * @return 缁撴灉 + */ + public static boolean initialState(String status) { + return CANCEL.status.equals(status) || BACK.status.equals(status) || INVALID.status.equals(status) || TERMINATION.status.equals(status); + } + + /** + * 鑾峰彇杩愯涓殑瀹炰緥鐘舵�佸垪琛� + * + * @return 鍖呭惈杩愯涓疄渚嬬姸鎬佺殑涓嶅彲鍙樺垪琛� + * 锛堝寘鍚� DRAFT銆乄AITING銆丅ACK 鍜� CANCEL 鐘舵�侊級 + */ + public static List<String> runningStatus() { + return Arrays.asList(DRAFT.status, WAITING.status, BACK.status, CANCEL.status); + } + + /** + * 鑾峰彇缁撴潫瀹炰緥鐨勭姸鎬佸垪琛� + * + * @return 鍖呭惈缁撴潫瀹炰緥鐘舵�佺殑涓嶅彲鍙樺垪琛� + * 锛堝寘鍚� FINISH銆両NVALID 鍜� TERMINATION 鐘舵�侊級 + */ + public static List<String> finishStatus() { + return Arrays.asList(FINISH.status, INVALID.status, TERMINATION.status); } /** @@ -148,5 +211,5 @@ throw new ServiceException("娴佺▼鐘舵�佷负绌猴紒"); } } -} +} -- Gitblit v1.9.3