From ec377d3d2c54f51a795427649ae9447b57c062fd Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 26 一月 2026 13:44:34 +0800
Subject: [PATCH] feat: 库存管理的冻结与解冻物料批次功能

---
 src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java |   44 ++++++++++++++++++++++++++++++++++----------
 1 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
index 3ee9ca7..b66253f 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ruoyi.procurementrecord.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -781,7 +782,8 @@
                     .updateTime(LocalDateTime.now())
                     .updateUser(loginUser.getUserId())
                     .createBy(procurementDto.getNickName())
-                    .productModelId(detail.getProductModelId());
+                    .productModelId(detail.getProductModelId())
+                    .qualityInspectId(ObjectUtils.isNotNull(procurementDto.getQualityInspectId())?procurementDto.getQualityInspectId():0L);
             this.save(procurementRecordBuilder.build());
             // 鍏ュ簱鎴愬姛鍑忔帀閲囪喘鏁伴噺
 //            LambdaQueryWrapper<SalesLedgerProduct> salesLedgerProductLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -881,16 +883,10 @@
         }
         return procurementPageDtoCopyIPage;
     }
+
     @Override
-    public IPage<ProductModel> listPageProductionStock(Page page) {
-        ProductModel productModel = new ProductModel();
-        IPage<ProductModel> iPage = productModelMapper.listPageProductModel(page, productModel);
-        iPage.getRecords().forEach(item -> {
-            item.setInboundNum(stockUtils.getStockQuantity(item.getId()).get("inboundNum"));
-            item.setOutboundNum(stockUtils.getStockQuantity(item.getId()).get("outboundNum"));
-            item.setStockQuantity(stockUtils.getStockQuantity(item.getId()).get("stockQuantity"));
-        });
-        return iPage;
+    public IPage<ProductModel> listPageProductionStock(Page page, ProcurementPageDto dto) {
+        return productModelMapper.listPageProductionStock(page, dto);
     }
 
     @Override
@@ -935,4 +931,32 @@
         return procurementPageDtoIPage;
     }
 
+    @Override
+    public boolean frozenQuality(List<Integer> frozenIds) {
+        if (frozenIds == null || frozenIds.isEmpty()) {
+            return true;
+        }
+
+        LambdaUpdateWrapper<ProcurementRecordStorage> storageLambdaUpdateWrapper = new LambdaUpdateWrapper<ProcurementRecordStorage>()
+                .set(ProcurementRecordStorage::getIsFrozen, true)
+                .in(ProcurementRecordStorage::getId, frozenIds)
+                .eq(ProcurementRecordStorage::getIsFrozen, false);
+
+        return update(storageLambdaUpdateWrapper);
+    }
+
+    @Override
+    public boolean thawQuality(List<Integer> thawIds) {
+        if (thawIds == null || thawIds.isEmpty()) {
+            return true;
+        }
+
+        LambdaUpdateWrapper<ProcurementRecordStorage> storageLambdaUpdateWrapper = new LambdaUpdateWrapper<ProcurementRecordStorage>()
+                .set(ProcurementRecordStorage::getIsFrozen, false)
+                .in(ProcurementRecordStorage::getId, thawIds)
+                .eq(ProcurementRecordStorage::getIsFrozen, true);
+
+        return update(storageLambdaUpdateWrapper);
+    }
+
 }

--
Gitblit v1.9.3