校验数据的准确性

This commit is contained in:
2026-05-11 14:14:04 +08:00
parent 7efad71bbe
commit c5d24afdb4

View File

@@ -222,6 +222,7 @@ public class LbDailyUserTradeServiceImpl extends ServiceImpl<LbDailyUserTradeMap
List<LbDailyUserTrade> importList = new ArrayList<>();
List<String> skippedRows = new ArrayList<>();
int skippedHiddenRows = 0;
DataFormatter dataFormatter = new DataFormatter();
log.info("开始导入ExcelfileName={}, size={} bytes, defaultReportDate={}",
originalFilename, file.getSize(), defaultReportDate);
@@ -246,6 +247,12 @@ public class LbDailyUserTradeServiceImpl extends ServiceImpl<LbDailyUserTradeMap
if (row == null || isEmptyRow(row, dataFormatter)) {
continue;
}
// 隐藏行(行高为 0在部分导出/复制模板中会与可见行重复存一份数据;
// POI 仍会遍历到这些行,若不跳过会导致导入条数约为可见行的整数倍。
if (row.getZeroHeight()) {
skippedHiddenRows++;
continue;
}
try {
LbDailyUserTrade trade = parseTradeRow(row, headerIndexMap, dataFormatter, fallbackReportDate, normalizedTenantId);
if (trade == null) {
@@ -258,8 +265,8 @@ public class LbDailyUserTradeServiceImpl extends ServiceImpl<LbDailyUserTradeMap
skippedRows.add((i + 1) + "(" + ex.getMessage() + ")");
}
}
log.info("Excel解析完成fileName={}, parsedCount={}, skippedCount={}",
originalFilename, importList.size(), skippedRows.size());
log.info("Excel解析完成fileName={}, parsedCount={}, skippedCount={}, skippedHiddenRows={}",
originalFilename, importList.size(), skippedRows.size(), skippedHiddenRows);
if (importList.isEmpty()) {
log.warn("Excel解析后无有效数据fileName={}, tenantId={}, skippedRows={}",
originalFilename, normalizedTenantId, skippedRows);
@@ -285,6 +292,7 @@ public class LbDailyUserTradeServiceImpl extends ServiceImpl<LbDailyUserTradeMap
result.put("success", false);
result.put("message", "没有可导入的数据,请检查模板与内容");
result.put("skippedRows", skippedRows);
result.put("skippedHiddenRowCount", skippedHiddenRows);
return result;
}
@@ -322,13 +330,14 @@ public class LbDailyUserTradeServiceImpl extends ServiceImpl<LbDailyUserTradeMap
return result;
}
log.info("导入成功fileName={}, importCount={}, skipCount={}",
originalFilename, importList.size(), skippedRows.size());
log.info("导入成功fileName={}, importCount={}, skipCount={}, skippedHiddenRows={}",
originalFilename, importList.size(), skippedRows.size(), skippedHiddenRows);
result.put("success", true);
result.put("message", "导入成功");
result.put("importCount", importList.size());
result.put("skipCount", skippedRows.size());
result.put("skippedRows", skippedRows);
result.put("skippedHiddenRowCount", skippedHiddenRows);
return result;
} finally {
if (previousTenantId != null) {