云
2026-10-27 ffca46b39d25439a06a27cafda2ec523a3fb67cf
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/feedback/MesProFeedbackService.java
@@ -1,8 +1,7 @@
package cn.iocoder.yudao.module.mes.service.pro.feedback;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mes.controller.admin.pro.feedback.vo.MesProFeedbackPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.pro.feedback.vo.MesProFeedbackSaveReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.pro.feedback.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO;
import jakarta.validation.Valid;
@@ -13,7 +12,7 @@
/**
 * MES 生产报工 Service 接口
 *
 * @author 芋道源码
 * @author 超级管理员
 */
public interface MesProFeedbackService {
@@ -82,9 +81,9 @@
    /**
     * 提交报工(草稿 → 审批中)
     *
     * @param id 编号
     * @param reqVO 提交请求
     */
    void submitFeedback(Long id);
    void submitFeedback(@Valid MesProFeedbackSubmitReqVO reqVO);
    /**
     * 驳回报工(审批中 → 草稿)
@@ -100,25 +99,35 @@
     * <ol>
     *   <li>校验报工单状态和数量</li>
     *   <li>生成物料消耗单,扣减线边库物料</li>
     *   <li>根据工序配置(关键工序 & 是否需要检验)分情况处理:
     *     <ul>
     *       <li><b>关键工序 + 需要检验</b>:生成产出单(质量状态=待检验),报工单状态 → 待检验,等待质检完成回调</li>
     *       <li><b>关键工序 + 无需检验</b>:生成产出单(按合格/不合格拆行),执行产品入库,更新任务/工单已生产数量,报工单状态 → 已完成</li>
     *       <li><b>非关键工序</b>:不生成产出单,不更新任务/工单数量,报工单状态 → 已完成</li>
     *     </ul>
     *   </li>
     *   <li>生成待检产出,累计生产数量;人工质检完成后回写质量数量并处理入库</li>
     * </ol>
     *
     * @param id 报工单编号
     * @param reqVO 审批请求(含报工单编号及可选批次属性)
     * @return true=已完成, false=待检验(需等质检回调)
     */
    boolean approveFeedback(Long id);
    boolean approveFeedback(@Valid MesProFeedbackApproveReqVO reqVO);
    /**
     * 检查报工审批前是否需要填写批次属性
     *
     * @param feedbackId 报工单编号
     * @return 批次需求检查结果
     */
    MesProFeedbackBatchCheckRespVO checkBatchRequirements(Long feedbackId);
    /**
     * 处理 BPM 审批结果
     *
     * @param id 报工单ID
     * @param bpmResult 审批结果状态
     */
    void handleBpmProcessResult(Long id, Integer bpmResult,String reason);
    /**
     * IPQC 完成后回调:完成报工单并更新任务/工单进度
     *
     * <p>由 IPQC 检验完成时调用,将报工单状态从待检验改为已完成,
     * 并根据检验结果回写合格/不合格/废品数量,同时更新任务/工单的已生产数量。
     * 并根据检验结果回写合格/不合格/废品数量;已生产数量在报工审批时累计。
     *
     * @param feedbackId          报工记录 ID
     * @param sourceLineId        来源产出行 ID(用于直接定位待检行)
@@ -132,5 +141,21 @@
                                         BigDecimal qualifiedQty, BigDecimal unqualifiedQty,
                                         BigDecimal laborScrapQty, BigDecimal materialScrapQty, BigDecimal otherScrapQty);
    /**
     * 快速报工(创建并提交,跳过草稿状态)
     *
     * @param reqVO 快速报工请求
     * @return 报工结果
     */
    MesProFeedbackQuickCreateRespVO quickCreateFeedback(@Valid MesProFeedbackQuickCreateReqVO reqVO);
    /**
     * 批量报工(批量创建并提交报工单)
     *
     * @param reqVO 批量报工请求
     * @return 批量报工结果
     */
    MesProFeedbackBatchCreateRespVO batchCreateFeedback(@Valid MesProFeedbackBatchCreateReqVO reqVO);
}