昨天 eccad5a129106377a275be4f7cdc58e99e9b95d4
yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/api/mps/MesProMpsApi.java
@@ -3,6 +3,7 @@
import cn.iocoder.yudao.module.mes.api.mps.dto.MesProMpsCreateReqDTO;
import cn.iocoder.yudao.module.mes.api.mps.dto.MesProMpsRespDTO;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -56,4 +57,43 @@
     */
    Boolean checkCanCreateSalesNotice(List<Long> saleOrderItemIds);
    /**
     * 检查销售订单的所有 MPS 是否已完成生产
     *
     * 完成条件:
     * 1. 已生产数量 >= 计划数量
     * 2. 所有报工单状态为 FINISHED(确保质检完成)
     *
     * @param saleOrderId 销售订单ID
     * @return true=全部完成,false=未全部完成
     */
    Boolean checkSaleOrderProductionFinished(Long saleOrderId);
    /**
     * 根据工单ID获取 MPS
     *
     * @param workOrderId 工单ID
     * @return MPS 信息
     */
    MesProMpsRespDTO getMpsByWorkOrderId(Long workOrderId);
    /**
     * 更新 MPS 的已生产数量(累加)
     *
     * @param mpsId      MPS 编号
     * @param quantity   增加的数量
     */
    void updateMpsProducedQuantity(Long mpsId, BigDecimal quantity);
    /**
     * 检查并自动完成 MPS
     *
     * 如果 MPS 满足完成条件(已生产数量 >= 计划数量 且 所有报工已完成),
     * 则自动将 MPS 状态更新为已完成
     *
     * @param mpsId MPS 编号
     * @return true=已完成或本次自动完成,false=未完成
     */
    Boolean checkAndFinishMps(Long mpsId);
}