From c46191d359fb8dcf9ea875d16200eff4fa8cad79 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 25 三月 2025 13:39:35 +0800
Subject: [PATCH] #新增 1. 新增库区批量修改接口 2. 物料分组删除上级编码必传判断

---
 rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java |   39 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 39 insertions(+), 0 deletions(-)

diff --git a/rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java b/rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java
index 06a5b0b..008d82d 100644
--- a/rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java
+++ b/rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java
@@ -6,6 +6,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Optional;
+import java.util.concurrent.ThreadLocalRandom;
 import java.util.function.BiConsumer;
 import java.util.function.Function;
 import java.util.Map;
@@ -46,6 +47,26 @@
         }
         return result;
     }
+
+    public static <T, R> List<T> getAllTree(List<T> data, R parentId, Function<? super T, ? extends R> parentIdMapper, Function<? super T, ? extends R> idMapper, BiConsumer<T, List<T>> consumer) {
+        List<T> result = new ArrayList<>();
+        for (T datum : data) {
+            R dParentId = parentIdMapper.apply(datum);
+            R dId = idMapper.apply(datum);
+            if (dParentId.equals(dId)) {
+                List<T> children = toTreeData(data, dId, parentIdMapper, idMapper, consumer);
+                if (!children.isEmpty()) {
+                    consumer.accept(datum, children);
+                }
+                result.add(datum);
+            }
+            if (dParentId.equals(dId)) {
+                continue;
+            }
+        }
+        return result;
+    }
+
 
     public static <T> void treeRemove(List<T> list, String condition, Function<? super T, ? extends String> fetcher, Function<T, List<T>> childrenGetter) {
         Iterator<T> iterator = list.iterator();
@@ -304,4 +325,22 @@
         return processed;
     }
 
+    public static String randomNumbers(int length) {
+        String baseString = "0123456789";
+
+        if (length < 1) {
+            length = 1;
+        }
+
+        StringBuilder sb = new StringBuilder(length);
+        int baseLength = baseString.length();
+
+        for(int i = 0; i < length; ++i) {
+            int number = ThreadLocalRandom.current().nextInt(baseLength);
+            sb.append(baseString.charAt(number));
+        }
+
+        return sb.toString();
+    }
+
 }

--
Gitblit v1.9.1