From 940c8481d2fdcf51341db4ccd6fd6fcc2d43debb Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 29 六月 2026 15:32:58 +0800
Subject: [PATCH] 初始化项目

---
 yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/inventory/WmsInventoryServiceImpl.java |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/inventory/WmsInventoryServiceImpl.java b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/inventory/WmsInventoryServiceImpl.java
index 3ff81ad..37f2cf0 100644
--- a/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/inventory/WmsInventoryServiceImpl.java
+++ b/yudao-module-wms/src/main/java/cn/iocoder/yudao/module/wms/service/inventory/WmsInventoryServiceImpl.java
@@ -10,9 +10,11 @@
 import cn.iocoder.yudao.module.wms.controller.admin.inventory.vo.WmsInventoryPageReqVO;
 import cn.iocoder.yudao.module.wms.dal.dataobject.inventory.WmsInventoryDO;
 import cn.iocoder.yudao.module.wms.dal.dataobject.inventory.WmsInventoryHistoryDO;
+import cn.iocoder.yudao.module.wms.dal.dataobject.inventory.WmsInventoryReserveDO;
 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemDO;
 import cn.iocoder.yudao.module.wms.dal.dataobject.md.item.WmsItemSkuDO;
 import cn.iocoder.yudao.module.wms.dal.mysql.inventory.WmsInventoryMapper;
+import cn.iocoder.yudao.module.wms.dal.mysql.inventory.WmsInventoryReserveMapper;
 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryChangeReqDTO;
 import cn.iocoder.yudao.module.wms.service.inventory.dto.WmsInventoryCheckReqDTO;
 import cn.iocoder.yudao.module.wms.service.md.item.WmsItemService;
@@ -50,6 +52,9 @@
 
     @Resource
     private WmsInventoryHistoryService inventoryHistoryService;
+
+    @Resource
+    private WmsInventoryReserveMapper reserveMapper;
 
     @Resource
     private WmsItemSkuService itemSkuService;
@@ -294,4 +299,19 @@
                 item.getWarehouseId(), beforeQuantity, item.getQuantity());
     }
 
+    @Override
+    public BigDecimal getAvailableQuantity(Long skuId, Long warehouseId) {
+        // 1. 鏌ヨ搴撳瓨鏁伴噺
+        WmsInventoryDO inventory = inventoryMapper.selectBySkuIdAndWarehouseId(skuId, warehouseId);
+        if (inventory == null) {
+            return BigDecimal.ZERO;
+        }
+
+        // 2. 鏌ヨ棰勭暀鏁伴噺
+        BigDecimal reserveQuantity = reserveMapper.selectReserveQuantity(skuId, warehouseId);
+
+        // 3. 璁$畻鍙敤鏁伴噺
+        return inventory.getQuantity().subtract(reserveQuantity != null ? reserveQuantity : BigDecimal.ZERO);
+    }
+
 }

--
Gitblit v1.9.3