From d6388d041cc58b9f2be3ddcddfb6042e7af094f7 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期一, 11 五月 2026 10:11:00 +0800
Subject: [PATCH] fix(stock): 修复库存盘点计划中的出入库记录类型错误
---
src/main/java/com/ruoyi/stock/service/StockInventoryService.java | 5 ++++-
src/main/java/com/ruoyi/stock/mapper/StockInventoryMapper.java | 2 ++
src/main/java/com/ruoyi/stock/service/impl/StockInventoryCheckPlanServiceImpl.java | 13 +++++++------
src/main/resources/mapper/stock/StockInventoryMapper.xml | 11 +++++++++++
src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java | 2 +-
src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java | 12 +++++++++---
6 files changed, 34 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
index 5ae608e..41877a6 100644
--- a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -123,7 +123,7 @@
stockInventoryDto.setQualitity(quantity);
stockInventoryDto.setProductModelId(productModelId);
stockInventoryDto.setBatchNo(batchNo);
- return stockInventoryService.subtractStockInventory(stockInventoryDto);
+ return stockInventoryService.addStockOutRecordOnly(stockInventoryDto);
}
//涓嶅悎鏍煎簱瀛樺垹闄�
diff --git a/src/main/java/com/ruoyi/stock/mapper/StockInventoryMapper.java b/src/main/java/com/ruoyi/stock/mapper/StockInventoryMapper.java
index c5827e2..912dae1 100644
--- a/src/main/java/com/ruoyi/stock/mapper/StockInventoryMapper.java
+++ b/src/main/java/com/ruoyi/stock/mapper/StockInventoryMapper.java
@@ -60,4 +60,6 @@
List<StockInventoryDto> selectStockInvenrory(Long productModelId);
IPage<StockInventoryDto> pagestockInventoryNoQua(Page page, @Param("ew") StockInventoryDto stockInventoryDto);
+
+ int updateLocked(@Param("productModelId") Long productModelId, @Param("batchNo") String batchNo, @Param("locked") boolean b);
}
diff --git a/src/main/java/com/ruoyi/stock/service/StockInventoryService.java b/src/main/java/com/ruoyi/stock/service/StockInventoryService.java
index cb81339..89da581 100644
--- a/src/main/java/com/ruoyi/stock/service/StockInventoryService.java
+++ b/src/main/java/com/ruoyi/stock/service/StockInventoryService.java
@@ -9,6 +9,7 @@
import com.ruoyi.stock.dto.StockOutRecordDto;
import com.ruoyi.stock.pojo.StockInventory;
import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.NotBlank;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@@ -33,7 +34,7 @@
StockInRecordDto addStockInRecordOnly(StockInventoryDto stockInventoryDto);
- Boolean addStockOutRecordOnly(StockInventoryDto stockInventoryDto);
+ StockOutRecordDto addStockOutRecordOnly(StockInventoryDto stockInventoryDto);
R importStockInventory(MultipartFile file);
@@ -52,4 +53,6 @@
List<StockInventoryDto> selectStockInvenrory(Long productModelId);
IPage<StockInventoryDto> pagestockInventoryNoQua(Page page, StockInventoryDto stockInventoryDto);
+
+ boolean updateLocked(@NotBlank(message = "涓嶈兘涓虹┖") Long productModelId, String batchNo, boolean b);
}
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryCheckPlanServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryCheckPlanServiceImpl.java
index 698c0a8..aad5c20 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryCheckPlanServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryCheckPlanServiceImpl.java
@@ -129,17 +129,18 @@
stockInventoryDto.setRecordId(stockInventoryCheckPlanDto.getId());
if (item.getDifferenceQuantity().compareTo(BigDecimal.ZERO) > 0) {
- stockInventoryDto.setRecordType(StockInQualifiedRecordTypeEnum.INVENTORY_CHECK_STOCK_OUT.getCode());
- StockInRecordDto stockInRecordDto = stockUtils.addStockWithBatchNo(stockInventoryDto.getProductModelId(), stockInventoryDto.getQualitity(), stockInventoryDto.getRecordType(), stockInventoryDto.getRecordId(), stockInventoryDto.getBatchNo());
+ stockInventoryDto.setRecordType(StockInQualifiedRecordTypeEnum.INVENTORY_CHECK_STOCK_IN.getCode());
+ StockInRecordDto stockInRecordDto = stockUtils.addStockWithBatchNo(stockInventoryDto.getProductModelId(), item.getDifferenceQuantity().abs (), stockInventoryDto.getRecordType(), stockInventoryDto.getRecordId(), stockInventoryDto.getBatchNo());
//鐩存帴瀹℃牳閫氳繃
stockInRecordService.batchApprove(Collections.singletonList(stockInRecordDto.getId()), 1);
}else {
- stockInventoryDto.setRecordType(StockInQualifiedRecordTypeEnum.INVENTORY_CHECK_STOCK_IN.getCode());
- StockOutRecordDto stockOutRecordDto = stockUtils.substractStock(stockInventoryDto.getProductModelId(), stockInventoryDto.getQualitity(), stockInventoryDto.getRecordType(), stockInventoryDto.getRecordId(), stockInventoryDto.getBatchNo());
+ stockInventoryDto.setRecordType(StockInQualifiedRecordTypeEnum.INVENTORY_CHECK_STOCK_OUT.getCode());
+ StockOutRecordDto stock = stockUtils.substractStock(stockInventoryDto.getProductModelId(), item.getDifferenceQuantity().abs(), stockInventoryDto.getRecordType(), stockInventoryDto.getRecordId(), stockInventoryDto.getBatchNo());
//鐩存帴瀹℃牳閫氳繃
- stockOutRecordService.batchApprove(Collections.singletonList(stockOutRecordDto.getId()), 1);
-
+ stockOutRecordService.batchApprove(Collections.singletonList(stock.getId()), 1);
}
+ //鏇存柊搴撳瓨閿佸畾鐘舵��
+ stockInventoryService.updateLocked(stockInventoryDto.getProductModelId(),stockInventoryDto.getBatchNo(), true);
}
stockInventoryCheckItemMapper.updateById(stockInventoryCheckPlanDto.getCheckItems());
plan.setStatus(2);
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
index 316029b..0622294 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -254,7 +254,7 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public Boolean addStockOutRecordOnly(StockInventoryDto stockInventoryDto) {
+ public StockOutRecordDto addStockOutRecordOnly(StockInventoryDto stockInventoryDto) {
LambdaQueryWrapper<StockInventory> eq = new LambdaQueryWrapper<>();
eq.eq(StockInventory::getProductModelId, stockInventoryDto.getProductModelId());
if (StringUtils.isEmpty(stockInventoryDto.getBatchNo())) {
@@ -290,8 +290,9 @@
stockOutRecordDto.setProductModelId(stockInventoryDto.getProductModelId());
stockOutRecordDto.setType("0");
stockOutRecordDto.setRemark(stockInventoryDto.getRemark());
- stockOutRecordService.add(stockOutRecordDto);
- return true;
+ Long add = stockOutRecordService.add(stockOutRecordDto);
+ stockInventoryDto.setId(add);
+ return stockOutRecordDto;
}
@Override
@@ -448,4 +449,9 @@
public IPage<StockInventoryDto> pagestockInventoryNoQua(Page page, StockInventoryDto stockInventoryDto) {
return stockInventoryMapper.pagestockInventoryNoQua(page, stockInventoryDto);
}
+
+ @Override
+ public boolean updateLocked(Long productModelId, String batchNo, boolean b) {
+ return stockInventoryMapper.updateLocked(productModelId, batchNo, b) > 0;
+ }
}
diff --git a/src/main/resources/mapper/stock/StockInventoryMapper.xml b/src/main/resources/mapper/stock/StockInventoryMapper.xml
index e8473ca..65c1c41 100644
--- a/src/main/resources/mapper/stock/StockInventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockInventoryMapper.xml
@@ -63,6 +63,17 @@
and batch_no = #{ew.batchNo}
</if>
</update>
+ <update id="updateLocked">
+ update stock_inventory
+ set locked = #{locked}
+ where product_model_id = #{ew.productModelId}
+ <if test="batchNo == null">
+ and batch_no is null
+ </if>
+ <if test="batchNo != null">
+ and batch_no = #{ew.batchNo}
+ </if>
+ </update>
<select id="pagestockInventory" resultType="com.ruoyi.stock.dto.StockInventoryDto">
select si.id,
si.qualitity,
--
Gitblit v1.9.3