From ef2e7cae1910cab2e8397e57fddc167d63f02c75 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 02 七月 2026 15:44:16 +0800
Subject: [PATCH] feat: 新增原料、半成品、成品数据接口

---
 src/main/java/com/ruoyi/basic/controller/ProductController.java |   50 ++++++++++++++++++++++++++++++++------------------
 1 files changed, 32 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/ruoyi/basic/controller/ProductController.java b/src/main/java/com/ruoyi/basic/controller/ProductController.java
index 5109662..8e010d8 100644
--- a/src/main/java/com/ruoyi/basic/controller/ProductController.java
+++ b/src/main/java/com/ruoyi/basic/controller/ProductController.java
@@ -15,7 +15,7 @@
 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.R;
+import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.sales.pojo.SalesLedgerProduct;
 import com.ruoyi.sales.service.ISalesLedgerProductService;
 import io.swagger.v3.oas.annotations.Operation;
@@ -55,9 +55,8 @@
      */
     @Log(title = "浜у搧", businessType = BusinessType.INSERT)
     @PostMapping("/addOrEditProduct")
-    public R<?> addOrEditProduct(@RequestBody ProductDto productDto) {
-        productService.addOrEditProduct(productDto);
-        return R.ok();
+    public AjaxResult addOrEditProduct(@RequestBody ProductDto productDto) {
+        return toAjax(productService.addOrEditProduct(productDto));
     }
 
     /**
@@ -65,9 +64,8 @@
      */
     @Log(title = "浜у搧瑙勬牸鍨嬪彿", businessType = BusinessType.INSERT)
     @PostMapping("/addOrEditProductModel")
-    public R<?> addOrEditProductModel(@RequestBody ProductModelDto productModelDto) {
-        productModelService.addOrEditProductModel(productModelDto);
-        return R.ok();
+    public AjaxResult addOrEditProductModel(@RequestBody ProductModelDto productModelDto) {
+        return toAjax(productModelService.addOrEditProductModel(productModelDto));
     }
 
     /**
@@ -75,19 +73,18 @@
      */
     @Log(title = "浜у搧", businessType = BusinessType.DELETE)
     @DeleteMapping("/delProduct")
-    public R<?> remove(@RequestBody Long[] ids) {
+    public AjaxResult remove(@RequestBody Long[] ids) {
         if (ids == null || ids.length == 0) {
-            return R.fail("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+            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 R.fail("璇ヤ骇鍝佸瓨鍦ㄩ攢鍞�/閲囪喘璁板綍锛屼笉鑳藉垹闄�");
+            return AjaxResult.error("璇ヤ骇鍝佸瓨鍦ㄩ攢鍞�/閲囪喘璁板綍锛屼笉鑳藉垹闄�");
         }
-        productService.delProductByIds(ids);
-        return R.ok();
+        return toAjax(productService.delProductByIds(ids));
     }
 
     /**
@@ -95,19 +92,18 @@
      */
     @Log(title = "浜у搧瑙勬牸鍨嬪彿", businessType = BusinessType.DELETE)
     @DeleteMapping("/delProductModel")
-    public R<?> delProductModel(@RequestBody Long[] ids) {
+    public AjaxResult delProductModel(@RequestBody Long[] ids) {
         if (ids == null || ids.length == 0) {
-            return R.fail("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+            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 R.fail("璇ヤ骇鍝佽鏍煎瀷鍙峰瓨鍦ㄩ攢鍞�/閲囪喘璁板綍锛屼笉鑳藉垹闄�");
+            return AjaxResult.error("璇ヤ骇鍝佽鏍煎瀷鍙峰瓨鍦ㄩ攢鍞�/閲囪喘璁板綍锛屼笉鑳藉垹闄�");
         }
-        productModelService.delProductModel(ids);
-        return R.ok();
+        return toAjax(productModelService.delProductModel(ids));
     }
 
     /**
@@ -124,12 +120,30 @@
         return productService.listPageProductModel(page, productModel);
     }
 
+    @Operation(summary = "鍒嗛〉鏌ヨ鍘熸枡")
+    @GetMapping("/pageModel/material")
+    public IPage<ProductModelVo> listPageMaterial(Page<ProductModelVo> page, ProductModel productModel) {
+        return productService.listPageProductModelByType(page, productModel, 278L);
+    }
+
+    @Operation(summary = "鍒嗛〉鏌ヨ鍗婃垚鍝�")
+    @GetMapping("/pageModel/semiFinished")
+    public IPage<ProductModelVo> listPageSemiFinished(Page<ProductModelVo> page, ProductModel productModel) {
+        return productService.listPageProductModelByType(page, productModel, 277L);
+    }
+
+    @Operation(summary = "鍒嗛〉鏌ヨ鎴愬搧")
+    @GetMapping("/pageModel/finished")
+    public IPage<ProductModelVo> listPageFinished(Page<ProductModelVo> page, ProductModel productModel) {
+        return productService.listPageProductModelByType(page, productModel, 276L);
+    }
+
     /**
      * 瀵煎叆浜у搧
      */
     @PostMapping("/import")
     @Log(title = "瀵煎叆浜у搧", businessType = BusinessType.IMPORT)
-    public R<?> importProductModel(@RequestParam("file") MultipartFile file, Integer productId) {
+    public AjaxResult importProductModel(@RequestParam("file") MultipartFile file, Integer productId) {
         return productModelService.importProductModel(file, productId);
     }
 

--
Gitblit v1.9.3