From 698cb1d9ae307835cd90ae4a102b1ee77639c599 Mon Sep 17 00:00:00 2001 From: liding <756868258@qq.com> Date: 星期一, 07 四月 2025 17:13:12 +0800 Subject: [PATCH] 原始数据excel去重 --- basic-server/src/main/java/com/ruoyi/basic/excel/MultiSheetImportListener.java | 30 +++++++++++++++++++++++++++--- 1 files changed, 27 insertions(+), 3 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 298b820..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) { @@ -217,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