From d4d3873f32cd58a9544fcd7756877c95cec2f179 Mon Sep 17 00:00:00 2001 From: mlm483 <128052931+mlm483@users.noreply.github.com> Date: Tue, 12 Aug 2025 12:25:02 -0400 Subject: [PATCH] [BI-2656] - updated isChanged logic handles append use case when prior data is left blank --- .../appendoverwrite/factory/data/OverwrittenData.java | 2 +- .../middleware/process/ImportTableProcess.java | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/factory/data/OverwrittenData.java b/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/factory/data/OverwrittenData.java index 9354d638c..f3ce7e530 100644 --- a/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/factory/data/OverwrittenData.java +++ b/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/factory/data/OverwrittenData.java @@ -135,7 +135,7 @@ public PendingImportObject constructPendingObservation() { original = observation.getValue(); } - if (!isTimestampMatched() && timestamp != null) { + if (!isTimestampMatched() && StringUtils.isNotBlank(timestamp)) { // Update the timestamp DateTimeFormatter formatter = DateTimeFormatter.ISO_INSTANT; String formattedTimeStampValue = formatter.format(observationService.parseDateTime(timestamp)); diff --git a/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/middleware/process/ImportTableProcess.java b/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/middleware/process/ImportTableProcess.java index 4a2846fcd..f2e74982e 100644 --- a/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/middleware/process/ImportTableProcess.java +++ b/src/main/java/org/breedinginsight/brapps/importer/services/processors/experiment/appendoverwrite/middleware/process/ImportTableProcess.java @@ -398,11 +398,8 @@ private boolean isChanged(String cellData, BrAPIObservation observation, String if (!cellData.isBlank() && !cellData.equals(observation.getValue())){ return true; } - // Only check timestamp if the TS: column was present in the uploaded file. - if (timestampColumnPresent) { - if (StringUtils.isBlank(newTimestamp)) { - return (observation.getObservationTimeStamp()!=null); - } + // Only check timestamp if the TS: column was present in the uploaded file and there's a valid timestamp. + if (timestampColumnPresent && !StringUtils.isBlank(newTimestamp)) { return !observationService.parseDateTime(newTimestamp).equals(observation.getObservationTimeStamp()); } return false;