gaoluyang
2026-11-03 3e8b8d3cb363b2a23e90e7f03e36472bfd27d696
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productissue/MesWmProductIssueService.java
@@ -3,8 +3,11 @@
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssuePageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssueSaveReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.productissue.vo.MesWmProductIssueSupplementReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productissue.MesWmProductIssueDO;
import jakarta.validation.Valid;
import java.util.List;
/**
 * MES 领料出库单 Service 接口
@@ -18,6 +21,29 @@
     * @return 编号
     */
    Long createProductIssue(@Valid MesWmProductIssueSaveReqVO createReqVO);
    /**
     * 根据生产工单生成领料任务(草稿)
     *
     * <p>需求 5.2③:按工单 BOM 物料清单 × 工单计划数量算出应领数量,
     * 扣除该工单下已领(未取消)数量后,剩余部分生成一张草稿领料出库单,
     * 后续走 提交 → 拣货 → 完成(完成时扣减原辅料库存)。</p>
     *
     * @param workOrderId 生产工单编号
     * @return 领料出库单编号
     */
    Long generateByWorkOrder(Long workOrderId);
    /**
     * 创建补领辅料单(草稿)
     *
     * <p>补领与正常领料走同一条流转:提交 → 拣货 → 完成(完成时扣减库存)。
     * 补领单的 issueType=2 并记录补领原因,便于在领料列表中筛选与追溯。</p>
     *
     * @param reqVO 补领信息
     * @return 领料单编号
     */
    Long createSupplementIssue(@Valid MesWmProductIssueSupplementReqVO reqVO);
    /**
     * 修改领料出库单
@@ -101,4 +127,12 @@
     */
    Boolean checkProductIssueQuantity(Long id);
    /**
     * 获取指定工单下已完成的领料单列表
     *
     * @param workOrderId 生产工单ID
     * @return 已完成的领料单列表
     */
    List<MesWmProductIssueDO> getFinishedIssuesByWorkOrderId(Long workOrderId);
}