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