From b999398ae9b2719d2db15716dd353f7a3855d59e Mon Sep 17 00:00:00 2001 From: chenrui <1187576398@qq.com> Date: 星期一, 07 四月 2025 17:33:55 +0800 Subject: [PATCH] Merge branch 'radio_frequency' of http://114.132.189.42:9002/r/lims-ruoyi-after into radio_frequency --- basic-server/src/main/java/com/ruoyi/basic/excel/MultiSheetImportListener.java | 36 ++++++++++++++++++++++++++++-------- 1 files changed, 28 insertions(+), 8 deletions(-) diff --git a/basic-server/src/main/java/com/ruoyi/basic/excel/MultiSheetImportListener.java b/basic-server/src/main/java/com/ruoyi/basic/excel/MultiSheetImportListener.java index 281061c..e425cb6 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/excel/MultiSheetImportListener.java +++ b/basic-server/src/main/java/com/ruoyi/basic/excel/MultiSheetImportListener.java @@ -18,9 +18,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @Slf4j @@ -37,6 +35,9 @@ private final StandardTemplateService standardTemplateService; + // 鏂板锛氬唴瀛樺幓閲嶉泦鍚堬紙璁板綍鍞竴閿級 + private Set<String> uniqueKeys = new HashSet<>(); + public MultiSheetImportListener(StructureItemParameterService parameterService, StandardTemplateService standardTemplateService, ISysDictTypeService dictTypeService) { this.parameterService = parameterService; @@ -47,6 +48,18 @@ @Override public void invoke(StructureItemParameter data, AnalysisContext context) { + + String uniqueKey = buildUniqueKey(data); + if (uniqueKeys.contains(uniqueKey)) { + log.warn("鍙戠幇閲嶅鏁版嵁锛屽凡璺宠繃: {} (Sheet: {}, 琛屽彿: {})", + uniqueKey, + currentSheetName, + context.readRowHolder().getRowIndex() + 1 + ); + return; + } + uniqueKeys.add(uniqueKey); + data.setId(null); // 娴嬭瘯瀵硅薄 if (data.getSample() == null) { @@ -78,8 +91,7 @@ // 鏌ヨ鏁版嵁搴撲腑鏄惁瀛樺湪鐩稿悓璁板綍 LambdaQueryWrapper<StructureItemParameter> wrapper = Wrappers.lambdaQuery(StructureItemParameter.class) .eq(StructureItemParameter::getInspectionItem, data.getInspectionItem()) - .eq(StructureItemParameter::getSample, data.getSample()) - .last("limit 1"); + .eq(StructureItemParameter::getSample, data.getSample()); // 鍒ゆ柇鏄惁鏈夋楠岄」绫诲瀷 if (ObjectUtils.isNotEmpty(data.getInspectionItemClass())) { @@ -170,9 +182,6 @@ data.setManDay(null); } - // 璁剧疆褰撳墠Sheet鍚嶄负鍒嗙被鏍囪瘑 - data.setInspectionItemClass(currentSheetName); - // 娣诲姞鍒扮紦瀛樺垪琛� cachedList.add(data); @@ -221,4 +230,15 @@ // 鎵撳嵃瀹屾暣閿欒鍫嗘爤锛堣皟璇曟椂寮�鍚級 log.error("Sheet[{}] 绗瑊}琛岀{}鍒楄В鏋愬け璐�: {}", sheetName, rowIndex, columnIndex, errorMsg); } + + private String buildUniqueKey(StructureItemParameter data) { + return String.join("|", + ObjectUtils.defaultIfNull(data.getInspectionItem(), ""), + ObjectUtils.defaultIfNull(data.getInspectionItemEn(),""), + ObjectUtils.defaultIfNull(data.getProduct(),""), + ObjectUtils.defaultIfNull(data.getInspectionItemSubclass(), ""), + ObjectUtils.defaultIfNull(data.getSample(), ""), + ObjectUtils.defaultIfNull(data.getInspectionItemClass(), "") + ); + } } \ No newline at end of file -- Gitblit v1.9.3