From 2a405a17bfc761dd1d3d32f2abc88bfabc81bdf5 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 23 一月 2026 14:31:23 +0800
Subject: [PATCH] fix: 新增的BOM未给初始化数据

---
 src/main/java/com/ruoyi/production/service/impl/ProductBomServiceImpl.java |   45 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 38 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductBomServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductBomServiceImpl.java
index d519593..49eb9d1 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductBomServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductBomServiceImpl.java
@@ -1,19 +1,23 @@
 package com.ruoyi.production.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.pojo.ProductModel;
+import com.ruoyi.basic.service.IProductModelService;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.production.dto.ProductBomDto;
-import com.ruoyi.production.dto.ProductProcessDto;
-import com.ruoyi.production.pojo.ProductBom;
 import com.ruoyi.production.mapper.ProductBomMapper;
-import com.ruoyi.production.pojo.ProductProcess;
+import com.ruoyi.production.mapper.ProductStructureMapper;
+import com.ruoyi.production.pojo.ProductBom;
+import com.ruoyi.production.pojo.ProductStructure;
 import com.ruoyi.production.service.ProductBomService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
 
 /**
  * <p>
@@ -29,12 +33,19 @@
     @Autowired
     private ProductBomMapper productBomMapper;
 
+    @Autowired
+    private IProductModelService productModelService;
+
+    @Autowired
+    private ProductStructureMapper productStructureMapper;
+
     @Override
     public IPage<ProductBomDto> listPage(Page page, ProductBomDto productBomDto) {
-        return productBomMapper.listPage(page,productBomDto);
+        return productBomMapper.listPage(page, productBomDto);
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public AjaxResult add(ProductBom productBom) {
         boolean save = productBomMapper.insert(productBom) > 0;
         if (save) {
@@ -42,6 +53,26 @@
             String no = "BM." + String.format("%05d", productBom.getId());
             productBom.setBomNo(no);
             productBomMapper.updateById(productBom);
+
+            //  鏌ヨ鍑轰骇鍝佹ā鍨嬩俊鎭�
+            if (productBom.getProductModelId() == null) {
+                throw new ServiceException("璇烽�夋嫨浜у搧妯″瀷");
+            }
+
+            ProductModel productModel = productModelService.getById(productBom.getProductModelId());
+            if (productModel == null) {
+                throw new ServiceException("閫夋嫨鐨勪骇鍝佹ā鍨嬩笉瀛樺湪");
+            }
+
+            //  娣诲姞鍒濆鐨勪骇鍝佺粨鏋�
+            ProductStructure productStructure = new ProductStructure();
+            productStructure.setProductModelId(productBom.getProductModelId());
+            productStructure.setUnit(productModel.getUnit());
+            productStructure.setUnitQuantity(BigDecimal.valueOf(0));
+            productStructure.setBomId(Long.valueOf(productBom.getId()));
+
+            productStructureMapper.insert(productStructure);
+
             return AjaxResult.success();
         }
         return AjaxResult.error();

--
Gitblit v1.9.3