From 2a4e36d26b4e64fc165c33919b225640489bc8cb Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 03 二月 2026 15:29:38 +0800
Subject: [PATCH] yys  基础数据产品维护增加下载模板接口

---
 src/main/java/com/ruoyi/basic/controller/ProductController.java |   75 ++++++++++++++++++++++++++++++++++++-
 1 files changed, 73 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ruoyi/basic/controller/ProductController.java b/src/main/java/com/ruoyi/basic/controller/ProductController.java
index d042cb6..83b2f73 100644
--- a/src/main/java/com/ruoyi/basic/controller/ProductController.java
+++ b/src/main/java/com/ruoyi/basic/controller/ProductController.java
@@ -1,19 +1,36 @@
 package com.ruoyi.basic.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.basic.dto.ProductDto;
 import com.ruoyi.basic.dto.ProductModelDto;
+import com.ruoyi.basic.dto.ProductModelImportDto;
 import com.ruoyi.basic.dto.ProductTreeDto;
+import com.ruoyi.basic.pojo.Customer;
 import com.ruoyi.basic.pojo.ProductModel;
 import com.ruoyi.basic.service.IProductModelService;
 import com.ruoyi.basic.service.IProductService;
+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.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.framework.web.domain.R;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import com.ruoyi.sales.service.ISalesLedgerProductService;
+import com.ruoyi.sales.service.ISalesLedgerService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @RestController
 @AllArgsConstructor
@@ -23,8 +40,8 @@
     private IProductService productService;
 
     private IProductModelService productModelService;
-
-
+    @Autowired
+    private ISalesLedgerProductService salesLedgerProductService;
     /**
      * 鏌ヨ浜у搧
      */
@@ -68,6 +85,13 @@
         if (ids == null || ids.length == 0) {
             return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
         }
+        // 妫�鏌ユ槸鍚︽湁閿�鍞晢鍝佽褰曞叧鑱旇浜у搧
+        LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(SalesLedgerProduct::getProductId, ids);
+        List<SalesLedgerProduct> salesLedgerProductList = salesLedgerProductService.list(queryWrapper);
+        if (salesLedgerProductList.size() > 0) {
+            return AjaxResult.error("璇ヤ骇鍝佸瓨鍦ㄩ攢鍞�/閲囪喘璁板綍锛屼笉鑳藉垹闄�");
+        }
         return toAjax(productService.delProductByIds(ids));
     }
 
@@ -80,6 +104,53 @@
         if (ids == null || ids.length == 0) {
             return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
         }
+        // 妫�鏌ユ槸鍚︽湁閿�鍞晢鍝佽褰曞叧鑱旇浜у搧瑙勬牸鍨嬪彿
+        LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(SalesLedgerProduct::getProductModelId, ids);
+        List<SalesLedgerProduct> salesLedgerProductList = salesLedgerProductService.list(queryWrapper);
+        if (salesLedgerProductList.size() > 0) {
+            return AjaxResult.error("璇ヤ骇鍝佽鏍煎瀷鍙峰瓨鍦ㄩ攢鍞�/閲囪喘璁板綍锛屼笉鑳藉垹闄�");
+        }
         return toAjax(productModelService.delProductModel(ids));
     }
+
+    /**
+     * 鏍规嵁id鏌ヨ浜у搧瑙勬牸鍒嗛〉鏌ヨ
+     */
+    @GetMapping("/modelListPage")
+    public IPage<ProductModel> selectModelListPage(Page page, ProductDto productDto) {
+        return productModelService.modelListPage(page, productDto);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ鎵�鏈変骇鍝佸瀷鍙�")
+    @GetMapping("/pageModel")
+    public IPage<ProductModel> listPageProductModel(Page<ProductModel> page, ProductModel productModel) {
+        return productService.listPageProductModel(page, productModel);
+    }
+
+    /**
+     * 瀵煎叆浜у搧
+     */
+    @Log(title = "瀵煎叆浜у搧",businessType = BusinessType.IMPORT)
+    @PostMapping("import")
+    public AjaxResult importProduct(MultipartFile file) {
+        return AjaxResult.success(productModelService.importProduct(file));
+    }
+
+    /**
+     * 涓嬭浇妯℃澘
+     * @return
+     */
+    @PostMapping("/downloadTemplate")
+    public void downloadTemplate(HttpServletResponse response) {
+        ExcelUtil<ProductModelImportDto> util = new ExcelUtil<ProductModelImportDto>(ProductModelImportDto.class);
+        util.importTemplateExcel(response, "浜у搧瑙勬牸妯℃澘");
+    }
+
+    @GetMapping("listProduct")
+    public R listProduct() {
+        List<HashMap<String, Object>> list = productModelService.listProduct();
+        return R.ok(list);
+    }
+
 }

--
Gitblit v1.9.3