From a7501803a3ca43310e57a5dd912e5047919c2e43 Mon Sep 17 00:00:00 2001 From: 彭雪彬 <1724387007@qq.com> Date: Tue, 15 Jul 2025 15:26:55 +0800 Subject: [PATCH] Merge branch 'xin' into pxb --- oying-system/src/main/java/com/oying/modules/pc/common/core/constrant/AuditStatusEnum.java | 86 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 86 insertions(+), 0 deletions(-) diff --git a/oying-system/src/main/java/com/oying/modules/pc/common/core/constrant/AuditStatusEnum.java b/oying-system/src/main/java/com/oying/modules/pc/common/core/constrant/AuditStatusEnum.java new file mode 100644 index 0000000..3463c7b --- /dev/null +++ b/oying-system/src/main/java/com/oying/modules/pc/common/core/constrant/AuditStatusEnum.java @@ -0,0 +1,86 @@ +package com.oying.modules.pc.common.core.constrant; + +import lombok.Getter; + +import java.util.EnumSet; +import java.util.Optional; + +@Getter +public enum AuditStatusEnum { + + DRAFT(1000, "草稿"), + PENDING(1001, "待审核"), + UNDER_REVIEW(1002, "审核中"), + REJECTED(1003, "拒绝"), + APPROVED(1004, "同意"), + CANCELLED(1005, "取消"); + + private final Integer value; + private final String reasonPhrase; + + AuditStatusEnum(Integer value, String reasonPhrase) { + this.value = value; + this.reasonPhrase = reasonPhrase; + } + + public static AuditStatusEnum get(Integer code) { + return getOrDefault(code, null); + } + + public static AuditStatusEnum getOrDefault(Integer code, AuditStatusEnum defaultStatus) { + for (AuditStatusEnum value : values()) { + if (value.value.equals(code)) { + return value; + } + } + return defaultStatus; + } + + public static boolean isApproved(Integer code) { + return Optional.ofNullable(get(code)).map(i -> i.equals(APPROVED)).orElse(false); + } + + public static boolean isCompleted(Integer code) { + return EnumSet.of(REJECTED, APPROVED, CANCELLED).contains(get(code)); + } + + public static AuditStatusEnum get(String name) { + return AuditStatusEnum.valueOf(name); + } + + public static EnumSet<AuditStatusEnum> getNext(AuditStatusEnum status) { + switch (status) { + case DRAFT: + return EnumSet.of(PENDING); + case PENDING: + return EnumSet.of(UNDER_REVIEW, APPROVED, REJECTED, CANCELLED); + case UNDER_REVIEW: + return EnumSet.of(APPROVED, REJECTED); + case APPROVED: + case REJECTED: + case CANCELLED: + default: + return EnumSet.noneOf(AuditStatusEnum.class); + } + } + + public static boolean hasNext(AuditStatusEnum status) { + return !getNext(status).isEmpty(); + } + + public EnumSet<AuditStatusEnum> getNext() { + return getNext(this); + } + + public boolean nextContains(AuditStatusEnum status) { + return getNext().contains(status); + } + + public boolean nextContains(String status) { + return nextContains(get(status)); + } + + public boolean hasNext() { + return hasNext(this); + } +} -- Gitblit v1.9.3