diff --git a/opsli-base-support/opsli-common/src/main/java/org/opsli/common/thread/factory/NameableThreadFactory.java b/opsli-base-support/opsli-common/src/main/java/org/opsli/common/thread/factory/NameableThreadFactory.java deleted file mode 100644 index 84c6b161..00000000 --- a/opsli-base-support/opsli-common/src/main/java/org/opsli/common/thread/factory/NameableThreadFactory.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Copyright 2020 OPSLI 快速开发平台 https://www.opsli.com - *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - *
- * http://www.apache.org/licenses/LICENSE-2.0 - *
- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package org.opsli.common.thread.factory; - -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.atomic.AtomicInteger; - -/** - * Created Date by 2019/12/26 0026. - * 自定义线程池工厂 - * @author Parker - */ -public class NameableThreadFactory implements ThreadFactory{ - - private final AtomicInteger poolNumber = new AtomicInteger(1); - - private final ThreadGroup threadGroup; - - private final AtomicInteger threadNumber = new AtomicInteger(1); - - public final String namePrefix; - - public NameableThreadFactory(String name){ - SecurityManager s = System.getSecurityManager(); - threadGroup = (s != null) ? s.getThreadGroup() : - Thread.currentThread().getThreadGroup(); - if (null==name || "".equals(name.trim())){ - name = "pool"; - } - namePrefix = name +"-"+ - poolNumber.getAndIncrement() + - "-thread-"; - } - - @Override - public Thread newThread(Runnable r) { - Thread t = new Thread(threadGroup, r, - namePrefix + threadNumber.getAndIncrement(), - 0); - if (t.isDaemon()){ - t.setDaemon(false); - } - if (t.getPriority() != Thread.NORM_PRIORITY){ - t.setPriority(Thread.NORM_PRIORITY); - } - return t; - } -} diff --git a/opsli-base-support/opsli-core/src/main/java/org/opsli/core/utils/TreeBuildUtil.java b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/utils/TreeBuildUtil.java new file mode 100644 index 00000000..8e9b6c09 --- /dev/null +++ b/opsli-base-support/opsli-core/src/main/java/org/opsli/core/utils/TreeBuildUtil.java @@ -0,0 +1,146 @@ +/** + * Copyright 2020 OPSLI 快速开发平台 https://www.opsli.com + *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + *
+ * http://www.apache.org/licenses/LICENSE-2.0 + *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.opsli.core.utils;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.ListUtil;
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.lang.tree.Tree;
+import cn.hutool.core.lang.tree.TreeNodeConfig;
+import cn.hutool.core.lang.tree.TreeUtil;
+import cn.hutool.core.util.ObjectUtil;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 树状结构工具类
+ *
+ * 注:排序只支持 int 类型
+ *
+ * @author Parker
+
+ * @date 2017-05-20 14:41
+ */
+public enum TreeBuildUtil {
+
+ /** 实例 */
+ INSTANCE;
+
+ /** 默认父节点ID */
+ public static final String DEF_PARENT_ID = "0";
+
+ /** 默认排除字段 */
+ private static final List