diff --git a/dossierfacile-process-file/src/main/java/fr/dossierfacile/process/file/barcode/twoddoc/parsing/TwoDDocData.java b/dossierfacile-process-file/src/main/java/fr/dossierfacile/process/file/barcode/twoddoc/parsing/TwoDDocData.java index 1f5976992..8ed1d2743 100644 --- a/dossierfacile-process-file/src/main/java/fr/dossierfacile/process/file/barcode/twoddoc/parsing/TwoDDocData.java +++ b/dossierfacile-process-file/src/main/java/fr/dossierfacile/process/file/barcode/twoddoc/parsing/TwoDDocData.java @@ -2,13 +2,17 @@ import lombok.RequiredArgsConstructor; +import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.Map; import java.util.stream.Collectors; +import fr.dossierfacile.process.file.util.TwoDDocUtil; + import static fr.dossierfacile.process.file.barcode.twoddoc.parsing.TwoDDocC40Parser.ASCII_GROUP_SEPARATOR; public record TwoDDocData(Map data) { + private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("dd/MM/yyyy"); static TwoDDocData parse(String rawData) { RawDataReader reader = new RawDataReader(rawData); @@ -17,6 +21,10 @@ static TwoDDocData parse(String rawData) { while (reader.charactersRemaining()) { TwoDDocDataType dataType = reader.readDataId(); String value = reader.readDataValue(dataType); + if (dataType.equals(TwoDDocDataType.ID_53) || dataType.equals(TwoDDocDataType.ID_54)) { + value = TwoDDocUtil.getLocalDateFrom2DDocHexDate(value) + .format(DATE_TIME_FORMATTER); + } parsedData.put(dataType, value); } @@ -28,8 +36,7 @@ public Map withLabels() { .stream() .collect(Collectors.toMap( entry -> entry.getKey().getLabel(), - Map.Entry::getValue) - ); + Map.Entry::getValue)); } @RequiredArgsConstructor