From 8bbf3ff5eae0a9cca5d76d62e96f56302cfa9ecb Mon Sep 17 00:00:00 2001 From: Jean-Marie Poissonnier Date: Mon, 21 Oct 2024 10:23:14 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Feat(2DDoc):=20format=20date=20(#88?= =?UTF-8?q?4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../file/barcode/twoddoc/parsing/TwoDDocData.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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