liu
9 天以前 06c312e584b99df613728d5ea8b32df4e156f3cc
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockService.java
@@ -3,7 +3,10 @@
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockAdjustReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockFreezeReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockImportExcelVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockImportRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockListReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockMoveReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockPageReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialstock.MesWmMaterialStockDO;
import jakarta.validation.Valid;
@@ -114,6 +117,24 @@
                                                  Long batchId, String batchCode, Long vendorId, LocalDateTime receiptTime);
    /**
     * 创建新的库存记录(不查找已有记录,始终创建新记录)
     *
     * 用于退料等场景,需要为每次退料创建独立的库存记录
     *
     * @param itemId      物料编号
     * @param warehouseId 仓库编号
     * @param locationId  库区编号
     * @param areaId      库位编号
     * @param batchId     批次编号
     * @param batchCode   批次号
     * @param vendorId    供应商编号
     * @param receiptTime 入库时间(为空则默认当前时间)
     * @return 新创建的库存记录
     */
    MesWmMaterialStockDO createMaterialStock(Long itemId, Long warehouseId, Long locationId, Long areaId,
                                              Long batchId, String batchCode, Long vendorId, LocalDateTime receiptTime);
    /**
     * 按组合键查找库存记录(只查不创建)
     *
     * @param itemId      物料编号
@@ -179,4 +200,23 @@
     */
    Long adjustMaterialStockOut(@Valid MesWmMaterialStockAdjustReqVO reqVO);
    /**
     * 库存移库
     *
     * @param reqVO 移库请求
     */
    void moveMaterialStock(@Valid MesWmMaterialStockMoveReqVO reqVO);
    /**
     * 导入库存现有量
     * <p>
     * 每行通过「操作类型」控制:增加/减少 按变动量调整在库数量;覆盖 按目标值差额调整。
     * 按「物料编码 + 仓库 + 库区 + 库位 + 批次号 + 供应商」定位库存记录。
     * 每行独立事务:单行失败不影响其它行。
     *
     * @param importList 导入数据
     * @return 导入结果
     */
    MesWmMaterialStockImportRespVO importMaterialStockList(List<MesWmMaterialStockImportExcelVO> importList);
}