yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/pro/feedback/MesProFeedbackMapper.java
@@ -8,10 +8,13 @@
import cn.iocoder.yudao.module.mes.controller.admin.pro.feedback.vo.MesProFeedbackPageReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskDO;
import cn.iocoder.yudao.module.mes.enums.pro.MesProFeedbackStatusEnum;
import org.apache.ibatis.annotations.Mapper;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
/**
 * MES 生产报工 Mapper
@@ -70,4 +73,22 @@
                .in(MesProFeedbackDO::getTaskId, taskIds));
    }
    /**
     * 汇总指定工单、指定工序下已完成报工的合格数量
     *
     * @param workOrderId 生产工单编号
     * @param processIds  工序编号集合
     * @return 合格数量合计
     */
    default BigDecimal selectFinishedQualifiedQuantitySum(Long workOrderId, Collection<Long> processIds) {
        return selectList(new LambdaQueryWrapperX<MesProFeedbackDO>()
                .eq(MesProFeedbackDO::getWorkOrderId, workOrderId)
                .in(MesProFeedbackDO::getProcessId, processIds)
                .eq(MesProFeedbackDO::getStatus, MesProFeedbackStatusEnum.FINISHED.getStatus()))
                .stream()
                .map(MesProFeedbackDO::getQualifiedQuantity)
                .filter(Objects::nonNull)
                .reduce(BigDecimal.ZERO, BigDecimal::add);
    }
}