gaoluyang
8 天以前 7bd10d34e8a8dc2437ec8551eb511e37634d7306
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsService.java
@@ -13,7 +13,7 @@
/**
 * MES 生产主计划(MPS)Service 接口
 *
 * @author 芋道源码
 * @author 超级管理员
 */
public interface MesProMpsService {
@@ -57,6 +57,43 @@
     * @param id 编号
     */
    void deleteMps(Long id);
    /**
     * 提交审核
     *
     * 草稿状态 → 审核中,并启动 BPM 流程,审批在协同办公完成
     *
     * @param id MPS 编号
     */
    void submitMps(Long id);
    /**
     * 处理 BPM 审批结果(协同办公审批完成后回调)
     *
     * 审核中 → 已审核(通过)/ 草稿(驳回)
     *
     * @param id          MPS 编号
     * @param bpmResult   BPM 审批结果
     * @param reason      审批意见(驳回原因)
     * @param auditUserId 审核人编号
     */
    void handleBpmProcessResult(Long id, Integer bpmResult, String reason, Long auditUserId);
    /**
     * 获得计划的辅料需求明细(含库存、在途、是否充足)
     *
     * @param id MPS 编号
     * @return 物料需求列表
     */
    List<cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.MesProWorkOrderItemRespVO> getMpsItemList(Long id);
    /**
     * 根据计划的辅料缺口生成采购申请单(草稿)
     *
     * @param id MPS 编号
     * @return 生成的采购申请单编号
     */
    Long generatePurchaseRequest(Long id);
    /**
     * 下发单条 MPS
@@ -165,4 +202,15 @@
     */
    MesProMpsDO getMpsByWorkOrderId(Long workOrderId);
    /**
     * 检查并自动完成 MPS
     *
     * 如果 MPS 满足完成条件(已生产数量 >= 计划数量 且 所有报工已完成),
     * 则自动将 MPS 状态更新为已完成
     *
     * @param mpsId MPS 编号
     * @return true=已完成或本次自动完成,false=未完成
     */
    Boolean checkAndFinishMps(Long mpsId);
}