diff --git a/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/amqp/WatermarkDFDocumentConsumer.java b/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/amqp/WatermarkDFDocumentConsumer.java index ccde45e39..f802e4783 100644 --- a/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/amqp/WatermarkDFDocumentConsumer.java +++ b/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/amqp/WatermarkDFDocumentConsumer.java @@ -38,9 +38,9 @@ public void receiveMessage(Message message) throws Exception { Map data = gson.fromJson(new String(message.getBody()), Map.class); Long documentId = Long.valueOf(data.get("id")); if (documentService.documentIsUpToDateAt(msgTimestamp, documentId)) { - LocalDateTime executionDateTime = LocalDateTime.now(); + Long executionTimestamp = System.currentTimeMillis(); StorageFile watermarkFile = pdfGeneratorService.generateBOPdfDocument(documentService.getDocument(documentId)); - documentService.saveWatermarkFileAt(executionDateTime, watermarkFile, documentId); + documentService.saveWatermarkFileAt(executionTimestamp, watermarkFile, documentId); } else { log.debug("Ignore document pdf generation cause document is NOT up to date"); } diff --git a/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/DocumentServiceImpl.java b/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/DocumentServiceImpl.java index ea349b5b7..96de4337b 100644 --- a/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/DocumentServiceImpl.java +++ b/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/DocumentServiceImpl.java @@ -27,7 +27,7 @@ public boolean documentIsUpToDateAt(Long timestamp, Long documentId) { LocalDateTime dateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), ZoneId.systemDefault()); Document document = documentRepository.findById(documentId).orElse(null); - return document != null && ( document.getLastModifiedDate() == null || dateTime.isAfter(document.getLastModifiedDate())); + return document != null && (document.getLastModifiedDate() == null || dateTime.isAfter(document.getLastModifiedDate())); } @Override @@ -37,15 +37,15 @@ public Document getDocument(Long documentId) { @Transactional @Override - public void saveWatermarkFileAt(LocalDateTime executionDateTime, StorageFile watermarkFile, Long documentId) { + public void saveWatermarkFileAt(Long executionTimestamp, StorageFile watermarkFile, Long documentId) { Document document = documentRepository.findById(documentId).orElse(null); - if (document == null || executionDateTime.isBefore(document.getLastModifiedDate())) { - fileStorageService.delete(watermarkFile); - log.warn("PDF Generation execution is deprecated for documentId=" + documentId); - } else { + if (documentIsUpToDateAt(executionTimestamp, document.getId())) { document.setWatermarkFile(watermarkFile); documentRepository.save(document); log.warn("PDF Generation execution is a success for documentId=" + documentId); + } else { + fileStorageService.delete(watermarkFile); + log.warn("PDF Generation execution is deprecated for documentId=" + documentId); } } } diff --git a/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/interfaces/DocumentService.java b/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/interfaces/DocumentService.java index 880d39ac8..4f8127ff5 100644 --- a/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/interfaces/DocumentService.java +++ b/dossierfacile-pdf-generator/src/main/java/fr/dossierfacile/api/pdfgenerator/service/interfaces/DocumentService.java @@ -8,7 +8,7 @@ public interface DocumentService { boolean documentIsUpToDateAt(Long timestamp, Long documentId); - void saveWatermarkFileAt(LocalDateTime executionDateTime, StorageFile watermarkFile, Long documentId); + void saveWatermarkFileAt(Long executionTimestamp, StorageFile watermarkFile, Long documentId); Document getDocument(Long documentId); }