package cn.iocoder.yudao.module.erp.service.stock; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.stock.ErpStockPageReqVO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockDO; import java.math.BigDecimal; /** * ERP 产品库存 Service 接口 * * @author 芋道源码 */ public interface ErpStockService { /** * 获得产品库存 * * @param id 编号 * @return 库存 */ ErpStockDO getStock(Long id); /** * 基于产品 + 仓库,获得产品库存 * * @param productId 产品编号 * @param warehouseId 仓库编号 * @return 产品库存 */ ErpStockDO getStock(Long productId, Long warehouseId); /** * 获得产品库存数量 * * 如果不存在库存记录,则返回 0 * * @param productId 产品编号 * @return 产品库存数量 */ BigDecimal getStockCount(Long productId); /** * 获得产品库存分页 * * @param pageReqVO 分页查询 * @return 库存分页 */ PageResult getStockPage(ErpStockPageReqVO pageReqVO); /** * 增量更新产品库存数量 * * @param productId 产品编号 * @param warehouseId 仓库编号 * @param count 增量数量:正数,表示增加;负数,表示减少 * @return 更新后的库存 */ BigDecimal updateStockCountIncrement(Long productId, Long warehouseId, BigDecimal count); }