diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/util/SortUtils.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/util/SortUtils.java
new file mode 100644
index 000000000..8ed129c94
--- /dev/null
+++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/util/SortUtils.java
@@ -0,0 +1,44 @@
+package cn.stylefeng.roses.kernel.rule.util;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.stylefeng.roses.kernel.rule.util.sort.GetSortKey;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * 排序工具类
+ *
+ * 一般用来弥补数据库排序功能不足的情况
+ *
+ * @author fengshuonan
+ * @since 2023/8/3 14:43
+ */
+public class SortUtils {
+
+ /**
+ * 对list进行排序,以keys数组传的顺序为准
+ *
+ * @author fengshuonan
+ * @since 2023/8/3 14:44
+ */
+ public static List sortListByObjectKey(List originList, List> keys) {
+
+ if (ObjectUtil.isEmpty(originList) || ObjectUtil.isEmpty(keys)) {
+ return originList;
+ }
+
+ List newSortList = new LinkedList<>();
+ for (Object key : keys) {
+ for (T listItem : originList) {
+ Object sortKey = listItem.getSortKey();
+ if (ObjectUtil.equal(key, sortKey)) {
+ newSortList.add(listItem);
+ }
+ }
+ }
+
+ return newSortList;
+ }
+
+}
diff --git a/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/util/sort/GetSortKey.java b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/util/sort/GetSortKey.java
new file mode 100644
index 000000000..d1e3621a9
--- /dev/null
+++ b/kernel-a-rule/src/main/java/cn/stylefeng/roses/kernel/rule/util/sort/GetSortKey.java
@@ -0,0 +1,19 @@
+package cn.stylefeng.roses.kernel.rule.util.sort;
+
+/**
+ * 获取排序的key
+ *
+ * @author fengshuonan
+ * @since 2023/8/3 14:42
+ */
+public interface GetSortKey {
+
+ /**
+ * 获取对象中被排序的Key
+ *
+ * @author fengshuonan
+ * @since 2023/8/3 14:42
+ */
+ Object getSortKey();
+
+}