From bc116c55a44bc344e5575b5bdd4c2591bc0475aa Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 17 三月 2026 16:43:36 +0800
Subject: [PATCH] fix: BOM模块的导入、模板下载、新增、编辑修改

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

diff --git a/src/main/java/com/ruoyi/production/controller/ProductBomController.java b/src/main/java/com/ruoyi/production/controller/ProductBomController.java
index b6c9bce..5bfae99 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductBomController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductBomController.java
@@ -3,9 +3,11 @@
 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.common.utils.poi.ExcelUtil;
 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.BomImportDto;
 import com.ruoyi.production.dto.ProductBomDto;
 import com.ruoyi.production.pojo.ProcessRoute;
 import com.ruoyi.production.pojo.ProductBom;
@@ -19,6 +21,7 @@
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -54,7 +57,7 @@
     @GetMapping("/listPage")
     @Log(title = "BOM-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
     @ApiOperation("BOM-鍒嗛〉鏌ヨ")
-    public AjaxResult listPage(Page page, ProductBomDto productBomDto) {
+    public AjaxResult listPage(Page<ProductBom> page, ProductBomDto productBomDto) {
         IPage<ProductBomDto> listPage = productBomService.listPage(page, productBomDto);
         return AjaxResult.success(listPage);
     }
@@ -100,16 +103,26 @@
 
 
     @PostMapping("uploadBom")
+    @PreAuthorize("@ss.hasPermi('product:bom:import')")
     @Log(title = "鏍规嵁Excel瀵煎叆BOM", businessType = BusinessType.IMPORT)
     @ApiOperation("鏍规嵁Excel瀵煎叆BOM")
-    public AjaxResult uploadBom(@RequestParam("file") MultipartFile file) {
-        return productBomService.uploadBom(file);
+    public AjaxResult uploadBom(@RequestParam("file") MultipartFile file, @RequestParam("dictCode") Long dictCode) {
+        return productBomService.uploadBom(file, dictCode);
     }
 
     @PostMapping("exportBom")
-    @Log(title = "瀵煎嚭BOM鏂囦欢", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('product:bom:export')")
     @ApiOperation("瀵煎嚭BOM鏂囦欢")
+    @Log(title = "瀵煎嚭BOM鏂囦欢", businessType = BusinessType.EXPORT)
     public void exportBom(HttpServletResponse response, @RequestParam Integer bomId) {
         productBomService.exportBom(response, bomId);
     }
+
+    @GetMapping("/downloadTemplate")
+    @Log(title = "涓嬭浇BOM瀵煎叆妯℃澘", businessType = BusinessType.EXPORT)
+    @ApiOperation("涓嬭浇BOM瀵煎叆妯℃澘")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil<BomImportDto> excelUtil = new ExcelUtil<>(BomImportDto.class);
+        excelUtil.importTemplateExcel(response, "BOM瀵煎叆妯℃澘");
+    }
 }

--
Gitblit v1.9.3