From d06ef3f44d6dc19dae223ab420165369ea13cc16 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期三, 20 五月 2026 16:29:35 +0800
Subject: [PATCH] Merge branch 'dev_New_pro' of http://114.132.189.42:9002/r/product-inventory-management-after into dev_New_pro
---
src/main/java/com/ruoyi/basic/controller/ProductController.java | 79 ++++++++++++++++++++++++++++++++-------
1 files changed, 65 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/controller/ProductController.java b/src/main/java/com/ruoyi/basic/controller/ProductController.java
index 1909c08..5109662 100644
--- a/src/main/java/com/ruoyi/basic/controller/ProductController.java
+++ b/src/main/java/com/ruoyi/basic/controller/ProductController.java
@@ -1,20 +1,29 @@
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.ProductModelExportDto;
import com.ruoyi.basic.dto.ProductTreeDto;
import com.ruoyi.basic.pojo.ProductModel;
import com.ruoyi.basic.service.IProductModelService;
import com.ruoyi.basic.service.IProductService;
+import com.ruoyi.basic.vo.ProductModelVo;
+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 io.swagger.v3.oas.annotations.Operation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import jakarta.servlet.http.HttpServletResponse;
import java.util.List;
@RestController
@@ -23,10 +32,8 @@
public class ProductController extends BaseController {
private IProductService productService;
-
private IProductModelService productModelService;
-
-
+ private ISalesLedgerProductService salesLedgerProductService;
/**
* 鏌ヨ浜у搧
*/
@@ -48,8 +55,9 @@
*/
@Log(title = "浜у搧", businessType = BusinessType.INSERT)
@PostMapping("/addOrEditProduct")
- public AjaxResult addOrEditProduct(@RequestBody ProductDto productDto) {
- return toAjax(productService.addOrEditProduct(productDto));
+ public R<?> addOrEditProduct(@RequestBody ProductDto productDto) {
+ productService.addOrEditProduct(productDto);
+ return R.ok();
}
/**
@@ -57,8 +65,9 @@
*/
@Log(title = "浜у搧瑙勬牸鍨嬪彿", businessType = BusinessType.INSERT)
@PostMapping("/addOrEditProductModel")
- public AjaxResult addOrEditProductModel(@RequestBody ProductModelDto productModelDto) {
- return toAjax(productModelService.addOrEditProductModel(productModelDto));
+ public R<?> addOrEditProductModel(@RequestBody ProductModelDto productModelDto) {
+ productModelService.addOrEditProductModel(productModelDto);
+ return R.ok();
}
/**
@@ -66,11 +75,19 @@
*/
@Log(title = "浜у搧", businessType = BusinessType.DELETE)
@DeleteMapping("/delProduct")
- public AjaxResult remove(@RequestBody Long[] ids) {
+ public R<?> remove(@RequestBody Long[] ids) {
if (ids == null || ids.length == 0) {
- return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+ return R.fail("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
}
- return toAjax(productService.delProductByIds(ids));
+ // 妫�鏌ユ槸鍚︽湁閿�鍞晢鍝佽褰曞叧鑱旇浜у搧
+ LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.in(SalesLedgerProduct::getProductId, ids);
+ List<SalesLedgerProduct> salesLedgerProductList = salesLedgerProductService.list(queryWrapper);
+ if (salesLedgerProductList.size() > 0) {
+ return R.fail("璇ヤ骇鍝佸瓨鍦ㄩ攢鍞�/閲囪喘璁板綍锛屼笉鑳藉垹闄�");
+ }
+ productService.delProductByIds(ids);
+ return R.ok();
}
/**
@@ -78,11 +95,19 @@
*/
@Log(title = "浜у搧瑙勬牸鍨嬪彿", businessType = BusinessType.DELETE)
@DeleteMapping("/delProductModel")
- public AjaxResult delProductModel(@RequestBody Long[] ids) {
+ public R<?> delProductModel(@RequestBody Long[] ids) {
if (ids == null || ids.length == 0) {
- return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+ return R.fail("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
}
- return toAjax(productModelService.delProductModel(ids));
+ // 妫�鏌ユ槸鍚︽湁閿�鍞晢鍝佽褰曞叧鑱旇浜у搧瑙勬牸鍨嬪彿
+ LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.in(SalesLedgerProduct::getProductModelId, ids);
+ List<SalesLedgerProduct> salesLedgerProductList = salesLedgerProductService.list(queryWrapper);
+ if (salesLedgerProductList.size() > 0) {
+ return R.fail("璇ヤ骇鍝佽鏍煎瀷鍙峰瓨鍦ㄩ攢鍞�/閲囪喘璁板綍锛屼笉鑳藉垹闄�");
+ }
+ productModelService.delProductModel(ids);
+ return R.ok();
}
/**
@@ -92,4 +117,30 @@
public IPage<ProductModel> selectModelListPage(Page page, ProductDto productDto) {
return productModelService.modelListPage(page, productDto);
}
+
+ @Operation(summary = "鍒嗛〉鏌ヨ鎵�鏈変骇鍝佸瀷鍙�")
+ @GetMapping("/pageModel")
+ public IPage<ProductModelVo> listPageProductModel(Page<ProductModelVo> page, ProductModel productModel) {
+ return productService.listPageProductModel(page, productModel);
+ }
+
+ /**
+ * 瀵煎叆浜у搧
+ */
+ @PostMapping("/import")
+ @Log(title = "瀵煎叆浜у搧", businessType = BusinessType.IMPORT)
+ public R<?> importProductModel(@RequestParam("file") MultipartFile file, Integer productId) {
+ return productModelService.importProductModel(file, productId);
+ }
+
+ /**
+ * 浜у搧瀵煎叆妯℃澘
+ */
+ @GetMapping("/export")
+ @Operation(summary = "浜у搧瀵煎叆妯℃澘")
+ @Log(title = "浜у搧瀵煎叆妯℃澘", businessType = BusinessType.EXPORT)
+ public void importProduct(HttpServletResponse response) {
+ ExcelUtil<ProductModelExportDto> excelUtil = new ExcelUtil<>(ProductModelExportDto.class);
+ excelUtil.importTemplateExcel(response, "浜у搧瑙勬牸瀵煎叆妯℃澘");
+ }
}
--
Gitblit v1.9.3