From f9281b83739ceb938687264dcabd9e2e12acfd56 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 25 三月 2025 15:20:00 +0800
Subject: [PATCH] 修改 # 优化物料分组搜索功能

---
 rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java                                |   20 --------------------
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrGroupServiceImpl.java |   10 +++++++++-
 2 files changed, 9 insertions(+), 21 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 008d82d..6123a36 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
@@ -48,26 +48,6 @@
         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();
         while (iterator.hasNext()) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrGroupServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrGroupServiceImpl.java
index 65b0fe6..eee9eaa 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrGroupServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrGroupServiceImpl.java
@@ -37,7 +37,15 @@
                 List<Long> collect = groups.stream().map(MatnrGroup::getId).collect(Collectors.toList());
                 List<MatnrGroup> list = this.list(new LambdaQueryWrapper<MatnrGroup>().in(MatnrGroup::getId, collect));
                 matnrs.addAll(list);
-                List<MatnrGroup> treeData = Utils.toTreeData(matnrs, 0L, MatnrGroup::getParentId, MatnrGroup::getId, MatnrGroup::setChildren);
+                if (matnrs.isEmpty()) {
+                    return new ArrayList<>();
+                }
+                MatnrGroup one = this.getOne(new LambdaQueryWrapper<MatnrGroup>().eq(MatnrGroup::getParentId, 0));
+                if (Objects.isNull(one)) {
+                    throw new CoolException("椤剁骇鍒嗙粍涓嶅瓨鍦紝璇锋坊鍔犲悗鍐嶆搷浣滐紒锛�");
+                }
+
+                List<MatnrGroup> treeData = Utils.toTreeData(matnrs, one.getId(), MatnrGroup::getParentId, MatnrGroup::getId, MatnrGroup::setChildren);
                 return treeData;
             } else {
                 matnrs = this.list(new LambdaQueryWrapper<MatnrGroup>().orderByAsc(MatnrGroup::getCode));

--
Gitblit v1.9.1