云
17 小时以前 ac2e2b5af3726ee64dc37c3ebf26989a0346f22a
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateItemServiceImpl.java
@@ -116,8 +116,24 @@
    @Override
    public MesQcTemplateItemDO getRequiredTemplateByItemIdAndType(Long itemId, Integer qcType) {
        if (itemId == null) {
        MesQcTemplateItemDO matched = findTemplateItem(itemId, qcType);
        if (matched == null) {
            throw exception(QC_NO_TEMPLATE);
        }
        return matched;
    }
    @Override
    public boolean hasEnabledTemplate(Long itemId, Integer qcType) {
        return findTemplateItem(itemId, qcType) != null;
    }
    /**
     * 按物料 + QC 类型查找启用的模板关联,未命中返回 null
     */
    private MesQcTemplateItemDO findTemplateItem(Long itemId, Integer qcType) {
        if (itemId == null || qcType == null) {
            return null;
        }
        // 1. 查出 itemId 关联的所有 templateItem
        // 兼容两套物料 ID:质检/仓储单据传入 mdm_item.id,PRO 工单/任务传入 mes_md_item.id
@@ -128,7 +144,7 @@
        }
        List<MesQcTemplateItemDO> templateItems = templateItemMapper.selectListByItemId(templateItemId);
        if (CollUtil.isEmpty(templateItems)) {
            throw exception(QC_NO_TEMPLATE);
            return null;
        }
        // 2. 筛选 types 包含 qcType 且状态为开启的模板
        List<MesQcTemplateDO> templates = templateService.getTemplateList(
@@ -136,7 +152,7 @@
        MesQcTemplateDO matchedTemplate = findFirst(templates,
                t -> CommonStatusEnum.isEnable(t.getStatus()) && CollUtil.contains(t.getTypes(), qcType));
        if (matchedTemplate == null) {
            throw exception(QC_NO_TEMPLATE);
            return null;
        }
        // 3. 返回对应的 templateItem
        return findFirst(templateItems,