| | |
| | | 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; |
| | |
| | | |
| | | @Resource |
| | | private WmsInventoryHistoryService inventoryHistoryService; |
| | | |
| | | @Resource |
| | | private WmsInventoryReserveMapper reserveMapper; |
| | | |
| | | @Resource |
| | | private WmsItemSkuService itemSkuService; |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |