diff --git a/src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetailBomTree.java b/src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetailBomTree.java index a708f0c8..aa38521c 100644 --- a/src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetailBomTree.java +++ b/src/main/java/com/xujie/sys/modules/quote/entity/QuoteDetailBomTree.java @@ -69,8 +69,12 @@ public class QuoteDetailBomTree { public void addChildren(List nodes) { for (QuoteDetailBomTree node : nodes) { if (this.id.equals(node.getParentId())) { - this.list.add(node); - node.addChildren(nodes); // 递归调用,添加子节点 + // 检查是否已经添加过该节点(通过id去重) + boolean exists = this.list.stream().anyMatch(n -> n.getId().equals(node.getId())); + if (!exists) { + this.list.add(node); + node.addChildren(nodes); // 递归调用,添加子节点 + } } } }