From ed174300eba64fcd158b36bcec550b2fcdcd5c66 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 26 一月 2026 14:59:42 +0800
Subject: [PATCH] feat: BOM的导入导出菜单按钮权限

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

diff --git a/src/main/java/com/ruoyi/production/controller/ProductBomController.java b/src/main/java/com/ruoyi/production/controller/ProductBomController.java
index 3d1a872..e8a9750 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductBomController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductBomController.java
@@ -3,17 +3,25 @@
 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.dto.ProductProcessDto;
-import com.ruoyi.production.pojo.*;
-import com.ruoyi.production.service.*;
+import com.ruoyi.production.pojo.ProcessRoute;
+import com.ruoyi.production.pojo.ProductBom;
+import com.ruoyi.production.pojo.ProductProcessRoute;
+import com.ruoyi.production.pojo.ProductStructure;
+import com.ruoyi.production.service.ProcessRouteService;
+import com.ruoyi.production.service.ProductBomService;
+import com.ruoyi.production.service.ProductProcessRouteService;
+import com.ruoyi.production.service.ProductStructureService;
 import io.swagger.annotations.Api;
 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;
@@ -57,7 +65,7 @@
     @ApiModelProperty("鏂板BOM")
     @PostMapping("/add")
     @Log(title = "鏂板", businessType = BusinessType.INSERT)
-    public AjaxResult add( @RequestBody ProductBom productBom) {
+    public AjaxResult add(@RequestBody ProductBom productBom) {
         return productBomService.add(productBom);
     }
 
@@ -74,14 +82,14 @@
     public AjaxResult batchDelete(@RequestBody List<Integer> ids) {
         List<ProcessRoute> list = processRouteService.list(Wrappers.<ProcessRoute>lambdaQuery().in(ProcessRoute::getBomId, ids));
         List<ProductProcessRoute> list2 = productProcessRouteService.list(Wrappers.<ProductProcessRoute>lambdaQuery().in(ProductProcessRoute::getBomId, ids));
-        if (list.size()>0 || list2.size()>0){
+        if (list.size() > 0 || list2.size() > 0) {
             return AjaxResult.error("璇OM宸茬粡瀛樺湪瀵瑰簲鐨勫伐鑹鸿矾绾�,鏃犳硶杩涜鍒犻櫎");
         }
-        if(CollectionUtils.isEmpty(ids)){
+        if (CollectionUtils.isEmpty(ids)) {
             return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
         }
         //鍒犻櫎bom瀛愯〃
-        productStructureService.remove(Wrappers.<ProductStructure>lambdaQuery().in(ProductStructure::getBomId,ids));
+        productStructureService.remove(Wrappers.<ProductStructure>lambdaQuery().in(ProductStructure::getBomId, ids));
         return AjaxResult.success(productBomService.removeBatchByIds(ids));
     }
 
@@ -94,6 +102,7 @@
     }
 
     @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) {
@@ -101,10 +110,19 @@
     }
 
     @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