diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/base/ReadableEnum.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/base/ReadableEnum.java index de164b98c..9e62c3c11 100644 --- a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/base/ReadableEnum.java +++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/base/ReadableEnum.java @@ -33,7 +33,7 @@ package cn.stylefeng.roses.kernel.rule.base; * @author fengshuonan * @date 2022/9/6 11:27 */ -public interface ReadableEnum { +public interface ReadableEnum { /** * 获取枚举中具有标识性的key或者id @@ -55,4 +55,14 @@ public interface ReadableEnum { */ Object getName(); + /** + * 将原始值转化为具体枚举对象 + * + * @param originValue 原始值 + * @return T 具体枚举 + * @author fengshuonan + * @date 2022/9/24 15:17 + */ + T parseToEnum(String originValue); + } diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/SexEnum.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/SexEnum.java index bfabc35e8..be83dac1f 100644 --- a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/SexEnum.java +++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/SexEnum.java @@ -24,6 +24,7 @@ */ package cn.stylefeng.roses.kernel.rule.enums; +import cn.hutool.core.util.ObjectUtil; import cn.stylefeng.roses.kernel.rule.base.ReadableEnum; import com.baomidou.mybatisplus.annotation.EnumValue; import com.fasterxml.jackson.annotation.JsonCreator; @@ -37,7 +38,7 @@ import lombok.Getter; * @date 2020/10/17 10:01 */ @Getter -public enum SexEnum implements ReadableEnum { +public enum SexEnum implements ReadableEnum { /** * 男 @@ -104,4 +105,17 @@ public enum SexEnum implements ReadableEnum { public Object getName() { return this.message; } + + @Override + public SexEnum parseToEnum(String originValue) { + if (ObjectUtil.isEmpty(originValue)) { + return null; + } + for (SexEnum value : SexEnum.values()) { + if (value.code.equals(originValue)) { + return value; + } + } + return null; + } } diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/StatusEnum.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/StatusEnum.java index 2f40c724e..f3412ee8b 100644 --- a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/StatusEnum.java +++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/StatusEnum.java @@ -24,6 +24,8 @@ */ package cn.stylefeng.roses.kernel.rule.enums; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ObjectUtil; import cn.stylefeng.roses.kernel.rule.base.ReadableEnum; import com.baomidou.mybatisplus.annotation.EnumValue; import com.fasterxml.jackson.annotation.JsonCreator; @@ -37,7 +39,7 @@ import lombok.Getter; * @date 2020/10/14 21:31 */ @Getter -public enum StatusEnum implements ReadableEnum { +public enum StatusEnum implements ReadableEnum { /** * 启用 @@ -87,4 +89,17 @@ public enum StatusEnum implements ReadableEnum { public Object getName() { return this.message; } + + @Override + public StatusEnum parseToEnum(String originValue) { + if (ObjectUtil.isEmpty(originValue)) { + return null; + } + for (StatusEnum value : StatusEnum.values()) { + if (value.code.equals(Convert.toInt(originValue))) { + return value; + } + } + return null; + } } diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/YesOrNotEnum.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/YesOrNotEnum.java index 9082cf44b..ca0260ae5 100644 --- a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/YesOrNotEnum.java +++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/enums/YesOrNotEnum.java @@ -24,6 +24,7 @@ */ package cn.stylefeng.roses.kernel.rule.enums; +import cn.hutool.core.util.ObjectUtil; import cn.stylefeng.roses.kernel.rule.base.ReadableEnum; import com.baomidou.mybatisplus.annotation.EnumValue; import com.fasterxml.jackson.annotation.JsonCreator; @@ -37,7 +38,7 @@ import lombok.Getter; * @date 2020/4/13 22:59 */ @Getter -public enum YesOrNotEnum implements ReadableEnum { +public enum YesOrNotEnum implements ReadableEnum { /** * 是 @@ -97,4 +98,17 @@ public enum YesOrNotEnum implements ReadableEnum { return this.message; } + @Override + public YesOrNotEnum parseToEnum(String originValue) { + if (ObjectUtil.isEmpty(originValue)) { + return null; + } + for (YesOrNotEnum value : YesOrNotEnum.values()) { + if (value.code.equals(originValue)) { + return value; + } + } + return null; + } + } diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/enums/OrgApproverTypeEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/enums/OrgApproverTypeEnum.java index 8afdbfd03..cdbba33a7 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/enums/OrgApproverTypeEnum.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/enums/OrgApproverTypeEnum.java @@ -24,6 +24,8 @@ */ package cn.stylefeng.roses.kernel.system.api.enums; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ObjectUtil; import cn.stylefeng.roses.kernel.rule.base.ReadableEnum; import lombok.Getter; @@ -34,7 +36,7 @@ import lombok.Getter; * @date 2022/9/13 23:16 */ @Getter -public enum OrgApproverTypeEnum implements ReadableEnum { +public enum OrgApproverTypeEnum implements ReadableEnum { /** * 负责人 @@ -104,4 +106,17 @@ public enum OrgApproverTypeEnum implements ReadableEnum { public Object getName() { return this.name; } + + @Override + public OrgApproverTypeEnum parseToEnum(String originValue) { + if (ObjectUtil.isEmpty(originValue)) { + return null; + } + for (OrgApproverTypeEnum value : OrgApproverTypeEnum.values()) { + if (value.code.equals(Convert.toInt(originValue))) { + return value; + } + } + return null; + } }