From c6eb0d852595f235b21520dab1d8600ed1b80776 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期五, 04 九月 2026 14:44:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_business' into dev_business
---
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateItemServiceImpl.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 46 insertions(+), 12 deletions(-)
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateItemServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateItemServiceImpl.java
index 5d6bb01..712c693 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateItemServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/template/MesQcTemplateItemServiceImpl.java
@@ -12,13 +12,18 @@
import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateItemDO;
import cn.iocoder.yudao.module.mes.dal.mysql.qc.template.MesQcTemplateItemMapper;
import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
+import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskService;
+import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
+import java.util.Collections;
import java.util.List;
import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
@@ -42,6 +47,12 @@
private MesQcTemplateService templateService;
@Resource
private MesMdItemService mesMdItemService;
+ @Resource
+ @Lazy
+ private MesProTaskService proTaskService;
+ @Resource
+ @Lazy
+ private MesProWorkOrderService proWorkOrderService;
@Override
public Long createTemplateItem(MesQcTemplateItemSaveReqVO createReqVO) {
@@ -116,23 +127,46 @@
@Override
public MesQcTemplateItemDO getRequiredTemplateByItemIdAndType(Long itemId, Integer qcType) {
- // 1. 鏌ュ嚭 itemId 鍏宠仈鐨勬墍鏈� templateItem
- MesMdItemDO item1 = mesMdItemService.getItem(itemId);
- List<MesQcTemplateItemDO> templateItems = templateItemMapper.selectListByItemId(item1.getMdmItemId());
+ List<MesQcTemplateItemDO> templateItems = getTemplateItemList(itemId, qcType, null, null);
if (CollUtil.isEmpty(templateItems)) {
throw exception(QC_NO_TEMPLATE);
}
- // 2. 绛涢�� types 鍖呭惈 qcType 涓旂姸鎬佷负寮�鍚殑妯℃澘
+ return templateItems.get(0);
+ }
+
+ @Override
+ public List<MesQcTemplateItemDO> getTemplateItemList(Long itemId, Integer qcType, Long workOrderId, Long taskId) {
+ // 1. 瑙f瀽鐪熷疄浜у搧鐗╂枡 ID锛氫换鍔′紭鍏堬紝鍏舵宸ュ崟锛屾渶鍚庣洿鎺ョ敤鍏ュ弬
+ Long resolvedItemId = itemId;
+ if (taskId != null) {
+ resolvedItemId = proTaskService.validateTaskExists(taskId).getItemId();
+ } else if (workOrderId != null) {
+ resolvedItemId = proWorkOrderService.validateWorkOrderExists(workOrderId).getProductId();
+ }
+ if (resolvedItemId == null) {
+ return Collections.emptyList();
+ }
+ // 2. mes_md_item.id 杞� mdm_item.id锛堜骇鍝佸叧鑱旇〃瀛樼殑鏄� mdm 鐗╂枡锛�
+ MesMdItemDO item = mesMdItemService.getItem(resolvedItemId);
+ if (item == null || item.getMdmItemId() == null) {
+ return Collections.emptyList();
+ }
+ // 3. 鏌ュ嚭璇ョ墿鏂欏叧鑱旂殑鎵�鏈変骇鍝佸叧鑱�
+ List<MesQcTemplateItemDO> templateItems = templateItemMapper.selectListByItemId(item.getMdmItemId());
+ if (CollUtil.isEmpty(templateItems)) {
+ return Collections.emptyList();
+ }
+ // 4. 杩囨护锛氭柟妗堝惎鐢ㄤ笖妫�娴嬬绫诲寘鍚� qcType锛岃繑鍥炲叏閮ㄥ尮閰嶉」
List<MesQcTemplateDO> templates = templateService.getTemplateList(
convertSet(templateItems, MesQcTemplateItemDO::getTemplateId));
- MesQcTemplateDO matchedTemplate = findFirst(templates,
- t -> CommonStatusEnum.isEnable(t.getStatus()) && CollUtil.contains(t.getTypes(), qcType));
- if (matchedTemplate == null) {
- throw exception(QC_NO_TEMPLATE);
- }
- // 3. 杩斿洖瀵瑰簲鐨� templateItem
- return findFirst(templateItems,
- item -> Objects.equals(item.getTemplateId(), matchedTemplate.getId()));
+ Set<Long> matchedTemplateIds = templates.stream()
+ .filter(t -> CommonStatusEnum.isEnable(t.getStatus())
+ && CollUtil.contains(t.getTypes(), qcType))
+ .map(MesQcTemplateDO::getId)
+ .collect(Collectors.toSet());
+ return templateItems.stream()
+ .filter(t -> matchedTemplateIds.contains(t.getTemplateId()))
+ .collect(Collectors.toList());
}
}
--
Gitblit v1.9.3