2 天以前 1ba0dbfde5634c8bf2ec20891d6b226b996f6b59
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/materialstock/MesWmMaterialStockService.java
@@ -4,7 +4,9 @@
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.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.controller.admin.wm.materialstock.vo.MesWmStockSummaryRespVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialstock.MesWmMaterialStockDO;
import jakarta.validation.Valid;
@@ -127,6 +129,20 @@
    MesWmMaterialStockDO getMaterialStockByCompositeKey(Long itemId, Long warehouseId, Long locationId, Long areaId,
                                                         Long batchId, Long vendorId);
    List<MesWmMaterialStockDO> getMaterialStockListByItemAndBatch(Long itemId, Long batchId);
    /**
     * 查询物料/批次的合格库库存记录(仅 stock_state=20)
     *
     * <p>同批次可能同时存在暂存库与合格库两条记录(种子质检按袋拆数量),
     * 销售出库选库存必须从合格库记录中选,避免选中未质检的暂存库存。</p>
     *
     * @param itemId  物料编号
     * @param batchId 批次编号
     * @return 合格库库存记录列表
     */
    List<MesWmMaterialStockDO> getQualifiedMaterialStockListByItemAndBatch(Long itemId, Long batchId);
    /**
     * 更新库存数量
     *
@@ -135,6 +151,32 @@
     * @param checkFlag       是否校验库存充足(为 true 且扣减后为负则报错)
     */
    void updateMaterialStockQuantity(Long id, BigDecimal quantity, boolean checkFlag);
    void updateMaterialStockState(Long id, Integer stockState);
    /**
     * 按品种维度汇总库存数量(内存聚合,支持 stockState 等过滤条件)
     *
     * @param reqVO 过滤条件
     * @return 品种汇总列表
     */
    List<MesWmStockSummaryRespVO> getStockSummaryByItem(MesWmMaterialStockListReqVO reqVO);
    /**
     * 按批次维度汇总库存数量(内存聚合,支持 stockState 等过滤条件)
     *
     * @param reqVO 过滤条件
     * @return 批次汇总列表
     */
    List<MesWmStockSummaryRespVO> getStockSummaryByBatch(MesWmMaterialStockListReqVO reqVO);
    /**
     * 按仓库维度汇总库存数量(内存聚合,支持 stockState 等过滤条件)
     *
     * @param reqVO 过滤条件
     * @return 仓库汇总列表
     */
    List<MesWmStockSummaryRespVO> getStockSummaryByWarehouse(MesWmMaterialStockListReqVO reqVO);
    /**
     * 库位混放规则校验
@@ -179,4 +221,11 @@
     */
    Long adjustMaterialStockOut(@Valid MesWmMaterialStockAdjustReqVO reqVO);
    /**
     * 库存移库
     *
     * @param reqVO 移库请求
     */
    void moveMaterialStock(@Valid MesWmMaterialStockMoveReqVO reqVO);
}