From b736a816ca67ebb84aa150047e1415f617099848 Mon Sep 17 00:00:00 2001 From: yf001217 <834502597@qq.com> Date: Sat, 13 Jun 2026 18:44:28 +0800 Subject: [PATCH] =?UTF-8?q?pdi=E9=83=A8=E4=BB=B6=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...QmsPdiComponentBindingControllerService.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiComponentBindingControllerService.java b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiComponentBindingControllerService.java index b07b51cf..b8cb986b 100644 --- a/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiComponentBindingControllerService.java +++ b/nflg-qms-admin/src/main/java/com/nflg/qms/admin/service/QmsPdiComponentBindingControllerService.java @@ -79,6 +79,7 @@ public class QmsPdiComponentBindingControllerService { getComponentMapByName(request.getPdiDetectionRulesId(), componentNames); List bindings = new ArrayList<>(); + Set bindingKeys = new HashSet<>(); for (QmsPdiComponentBindingSaveQO.ImageBindingQO item : request.getItems()) { if (CollectionUtil.isEmpty(item.getComponents())) { continue; @@ -93,6 +94,10 @@ public class QmsPdiComponentBindingControllerService { throw new NflgException(STATE.BusinessError, "部件名称不存在:" + component.getComponentName()); } for (QmsPdiComponentAnagement matchedComponent : matchedComponents) { + String bindingKey = bindingKey(item.getUploadImageId(), matchedComponent.getId(), matchedComponent.getStatus()); + if (!bindingKeys.add(bindingKey)) { + continue; + } bindings.add(new QmsPdiComponentBinding() .setPdiDetectionRulesId(request.getPdiDetectionRulesId()) .setUploadImageId(item.getUploadImageId()) @@ -409,7 +414,17 @@ public class QmsPdiComponentBindingControllerService { if (StrUtil.isBlank(componentName)) { return; } - componentMap.computeIfAbsent(componentName, ignored -> new ArrayList<>()).add(component); + List components = componentMap.computeIfAbsent(componentName, ignored -> new ArrayList<>()); + boolean exists = components.stream() + .anyMatch(item -> Objects.equals(item.getId(), component.getId()) + && Objects.equals(item.getStatus(), component.getStatus())); + if (!exists) { + components.add(component); + } + } + + private String bindingKey(Long uploadImageId, Long componentId, Short status) { + return uploadImageId + "|" + componentId + "|" + status; } private String appendNewlineIfMixedChineseEnglishEndsWithEnglish(String text) {