From 20bf9973fc80831edd76eef68684c2390b2ad867 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 13 三月 2026 10:03:28 +0800
Subject: [PATCH] fix: 产品规格增加物料编号、(规格 + 编号)的筛选

---
 src/main/java/com/ruoyi/production/dto/ProductMaterialSkuDto.java                  |    3 +
 src/main/java/com/ruoyi/production/service/impl/ProductMaterialSkuServiceImpl.java |   53 +++++++++++++++-----------
 src/main/java/com/ruoyi/production/service/ProductMaterialSkuService.java          |    3 +
 src/main/java/com/ruoyi/production/controller/ProductMaterialSkuController.java    |    5 +-
 4 files changed, 39 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/controller/ProductMaterialSkuController.java b/src/main/java/com/ruoyi/production/controller/ProductMaterialSkuController.java
index 5d6c8ba..170cefe 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductMaterialSkuController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductMaterialSkuController.java
@@ -1,5 +1,6 @@
 package com.ruoyi.production.controller;
 
+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;
@@ -37,8 +38,8 @@
     @GetMapping("/list")
     @ApiOperation("鐗╂枡瑙勬牸鏁版嵁闆嗗悎")
     @Log(title = "鐗╂枡瑙勬牸鏁版嵁闆嗗悎", businessType = BusinessType.OTHER)
-    public AjaxResult productMaterialSkuList(@RequestParam("materialId") Long materialId) {
-        List<ProductMaterialSkuDto> list = productMaterialSkuService.productMaterialSkuList(materialId);
+    public AjaxResult productMaterialSkuList(Page<ProductMaterialSku> page, ProductMaterialSkuDto dto) {
+        Page<ProductMaterialSkuDto> list = productMaterialSkuService.productMaterialSkuList(page, dto);
         return AjaxResult.success(list);
     }
 
diff --git a/src/main/java/com/ruoyi/production/dto/ProductMaterialSkuDto.java b/src/main/java/com/ruoyi/production/dto/ProductMaterialSkuDto.java
index 749e53b..da6da70 100644
--- a/src/main/java/com/ruoyi/production/dto/ProductMaterialSkuDto.java
+++ b/src/main/java/com/ruoyi/production/dto/ProductMaterialSkuDto.java
@@ -23,6 +23,9 @@
     @ApiModelProperty("鐗╂枡鍚嶇О")
     private String materialName;
 
+    @ApiModelProperty("鐗╂枡缂栫爜")
+    private String materialCode;
+
     @ApiModelProperty("鍗曚綅")
     private String baseUnit;
 
diff --git a/src/main/java/com/ruoyi/production/service/ProductMaterialSkuService.java b/src/main/java/com/ruoyi/production/service/ProductMaterialSkuService.java
index 1665678..104f17d 100644
--- a/src/main/java/com/ruoyi/production/service/ProductMaterialSkuService.java
+++ b/src/main/java/com/ruoyi/production/service/ProductMaterialSkuService.java
@@ -1,5 +1,6 @@
 package com.ruoyi.production.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.production.dto.ProductMaterialSkuDto;
 import com.ruoyi.production.pojo.ProductMaterialSku;
@@ -17,7 +18,7 @@
  * @since 2026/03/12 10:04
  */
 public interface ProductMaterialSkuService extends IService<ProductMaterialSku> {
-    List<ProductMaterialSkuDto> productMaterialSkuList(Long materialId);
+    Page<ProductMaterialSkuDto> productMaterialSkuList(Page<ProductMaterialSku> page, ProductMaterialSkuDto dto);
 
     void addProductMaterialSku(ProductMaterialSku productMaterialSku);
 
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductMaterialSkuServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductMaterialSkuServiceImpl.java
index b319f53..e29b78c 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductMaterialSkuServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductMaterialSkuServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ruoyi.production.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.StringUtils;
@@ -49,37 +50,45 @@
      * 鏌ヨ鐗╂枡瑙勬牸鍒楄〃
      */
     @Override
-    public List<ProductMaterialSkuDto> productMaterialSkuList(Long materialId) {
-
-        if (materialId == null) {
-            return Collections.emptyList();
+    public Page<ProductMaterialSkuDto> productMaterialSkuList(Page<ProductMaterialSku> page, ProductMaterialSkuDto dto) {
+        if (dto == null || dto.getMaterialId() == null) {
+            return new Page<>();
         }
-
         LambdaQueryWrapper<ProductMaterialSku> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(ProductMaterialSku::getMaterialId, materialId)
+        queryWrapper.eq(ProductMaterialSku::getMaterialId, dto.getMaterialId())
+                .like(StringUtils.isNotBlank(dto.getSpecification()),
+                        ProductMaterialSku::getSpecification, dto.getSpecification())
+                .like(StringUtils.isNotBlank(dto.getMaterialCode()),
+                        ProductMaterialSku::getMaterialCode, dto.getMaterialCode())
                 .orderByAsc(ProductMaterialSku::getId);
-        List<ProductMaterialSku> skuList = this.list(queryWrapper);
-        if (skuList == null || skuList.isEmpty()) {
-            return Collections.emptyList();
-        }
-        // 鏌ヨ鐗╂枡淇℃伅
-        ProductMaterial material = productMaterialMapper.selectById(materialId);
 
+        Page<ProductMaterialSku> skuPage = this.page(page, queryWrapper);
+        List<ProductMaterialSku> skuList = skuPage.getRecords();
+        if (skuList == null || skuList.isEmpty()) {
+            return new Page<>();
+        }
+
+        ProductMaterial material = productMaterialMapper.selectById(dto.getMaterialId());
         String materialName = material != null ? material.getMaterialName() : null;
         String baseUnit = material != null ? material.getBaseUnit() : null;
         List<ProductMaterialSkuDto> result = new ArrayList<>(skuList.size());
         for (ProductMaterialSku sku : skuList) {
-            ProductMaterialSkuDto dto = new ProductMaterialSkuDto();
-            dto.setMaterialId(materialId);
-            dto.setMaterialName(materialName);
-            dto.setBaseUnit(baseUnit);
-            dto.setSkuId(sku.getId());
-            dto.setSpecification(sku.getSpecification());
-            dto.setSupplyType(sku.getSupplyType());
-            result.add(dto);
+            ProductMaterialSkuDto productMaterialSkuDto = new ProductMaterialSkuDto();
+            productMaterialSkuDto.setMaterialId(dto.getMaterialId());
+            productMaterialSkuDto.setMaterialName(materialName);
+            productMaterialSkuDto.setMaterialCode(sku.getMaterialCode());
+            productMaterialSkuDto.setBaseUnit(baseUnit);
+            productMaterialSkuDto.setSkuId(sku.getId());
+            productMaterialSkuDto.setSpecification(sku.getSpecification());
+            productMaterialSkuDto.setSupplyType(sku.getSupplyType());
+            result.add(productMaterialSkuDto);
         }
-
-        return result;
+        Page<ProductMaterialSkuDto> dtoPage = new Page<>();
+        dtoPage.setCurrent(skuPage.getCurrent());
+        dtoPage.setSize(skuPage.getSize());
+        dtoPage.setTotal(skuPage.getTotal());
+        dtoPage.setRecords(result);
+        return dtoPage;
     }
 
     /**

--
Gitblit v1.9.3