From 4c8144cc2785cdb8c5529c6c59a8901a33ec06bb Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 24 四月 2026 17:55:00 +0800
Subject: [PATCH] feat:1.生产计划下发 2.订单-工艺路线,bom,工序

---
 src/main/java/com/ruoyi/production/service/impl/ProductionBomStructureServiceImpl.java |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionBomStructureServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionBomStructureServiceImpl.java
index 5340433..00ab057 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionBomStructureServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionBomStructureServiceImpl.java
@@ -1,10 +1,17 @@
 package com.ruoyi.production.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.production.bean.vo.ProductionBomStructureVo;
 import com.ruoyi.production.mapper.ProductionBomStructureMapper;
 import com.ruoyi.production.pojo.ProductionBomStructure;
 import com.ruoyi.production.service.ProductionBomStructureService;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -15,6 +22,36 @@
  * @since 2026-04-21 03:55:52
  */
 @Service
+@RequiredArgsConstructor()
 public class ProductionBomStructureServiceImpl extends ServiceImpl<ProductionBomStructureMapper, ProductionBomStructure> implements ProductionBomStructureService {
 
+    private  final ProductionBomStructureMapper productionBomStructureMapper;
+
+    /**
+     * 鏍规嵁BOM鏌ヨ骞剁粍瑁呯粨鏋勬爲銆�
+     */
+    @Override
+    public List<ProductionBomStructureVo> listByBomId(Long bomId) {
+        List<ProductionBomStructureVo> list = productionBomStructureMapper.listByBomId(bomId);
+        Map<Long, ProductionBomStructureVo> map = new HashMap<>();
+        for (ProductionBomStructureVo node : list) {
+            node.setChildren(new ArrayList<>());
+            map.put(node.getId(), node);
+        }
+
+        List<ProductionBomStructureVo> tree = new ArrayList<>();
+        for (ProductionBomStructureVo node : list) {
+            Long parentId = node.getParentId();
+            if (parentId == null || parentId == 0L) {
+                tree.add(node);
+                continue;
+            }
+            ProductionBomStructureVo parent = map.get(parentId);
+            if (parent != null) {
+                parent.getChildren().add(node);
+            }
+        }
+        return tree;
+    }
+
 }

--
Gitblit v1.9.3