From 973677d7792dbe440bd032ff4cc138458c89b06e Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期四, 15 一月 2026 17:00:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtwy' into jtwy

---
 src/main/java/com/ruoyi/production/controller/ProductBomController.java |   87 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 87 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/controller/ProductBomController.java b/src/main/java/com/ruoyi/production/controller/ProductBomController.java
new file mode 100644
index 0000000..b8d9416
--- /dev/null
+++ b/src/main/java/com/ruoyi/production/controller/ProductBomController.java
@@ -0,0 +1,87 @@
+package com.ruoyi.production.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.production.dto.ProductBomDto;
+import com.ruoyi.production.dto.ProductProcessDto;
+import com.ruoyi.production.pojo.ProcessRoute;
+import com.ruoyi.production.pojo.ProductBom;
+import com.ruoyi.production.pojo.ProductProcess;
+import com.ruoyi.production.service.ProcessRouteService;
+import com.ruoyi.production.service.ProductBomService;
+import com.ruoyi.production.service.ProductProcessService;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ * BOM涓昏〃 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2026-01-15 09:59:27
+ */
+@RestController
+@RequestMapping("/productBom")
+public class ProductBomController {
+
+    @Autowired
+    private ProductBomService productBomService;
+
+    @Autowired
+    private ProcessRouteService processRouteService;
+
+    @GetMapping("/listPage")
+    @Log(title = "BOM-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
+    @ApiOperation("BOM-鍒嗛〉鏌ヨ")
+    public AjaxResult listPage(Page page, ProductBomDto productBomDto) {
+        IPage<ProductBomDto> listPage = productBomService.listPage(page, productBomDto);
+        return AjaxResult.success(listPage);
+    }
+
+    @ApiModelProperty("鏂板BOM")
+    @PostMapping("/add")
+    @Log(title = "鏂板", businessType = BusinessType.INSERT)
+    public AjaxResult add( @RequestBody ProductBom productBom) {
+        return productBomService.add(productBom);
+    }
+
+    @ApiOperation("鏇存柊BOM")
+    @Log(title = "淇敼", businessType = BusinessType.UPDATE)
+    @PutMapping("/update")
+    public AjaxResult update(@RequestBody ProductBom productBom) {
+        return AjaxResult.success(productBomService.updateById(productBom));
+    }
+
+    @ApiOperation("鍒犻櫎BOM")
+    @DeleteMapping("/batchDelete")
+    @Log(title = "鍒犻櫎", businessType = BusinessType.DELETE)
+    public AjaxResult batchDelete(@RequestBody List<Integer> ids) {
+        List<ProcessRoute> list = processRouteService.list(Wrappers.<ProcessRoute>lambdaQuery().in(ProcessRoute::getBomId, ids));
+        if (list.size()>0){
+            return AjaxResult.error("璇OM宸茬粡瀛樺湪瀵瑰簲鐨勫伐鑹鸿矾绾�,鏃犳硶杩涜鍒犻櫎");
+        }
+        if(CollectionUtils.isEmpty(ids)){
+            return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+        }
+        return AjaxResult.success(productBomService.removeBatchByIds(ids));
+    }
+
+    @GetMapping("/getByModel")
+    @Log(title = "BOM-鏍规嵁閫夋嫨鐨勮鏍煎瀷鍙穒d鏌ヨ瀛樺湪鐨刡om", businessType = BusinessType.OTHER)
+    @ApiOperation("BOM-鏍规嵁閫夋嫨鐨勮鏍煎瀷鍙穒d鏌ヨ瀛樺湪鐨刡om")
+    public AjaxResult getByModel(Long productModelId) {
+        List<ProductBom> productBoms = productBomService.list(Wrappers.<ProductBom>lambdaQuery().eq(ProductBom::getProductModelId, productModelId));
+        return AjaxResult.success(productBoms);
+    }
+
+}

--
Gitblit v1.9.3