From ace2aed72bbeb82a42bd0195a3104110d303052a Mon Sep 17 00:00:00 2001 From: Ugur Alpay Cenar Date: Mon, 3 Feb 2025 08:46:33 +0100 Subject: [PATCH] =?UTF-8?q?St=C3=B8tte=20for=20=C3=A5=20lage=20ettersendin?= =?UTF-8?q?gsoppgave?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../arkiv/consumer/InnsendingConsumer.kt | 3 +++ .../arkiv/service/InnsendingService.kt | 27 ++++++++++++++----- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/main/java/no/nav/bidrag/dokument/arkiv/consumer/InnsendingConsumer.kt b/src/main/java/no/nav/bidrag/dokument/arkiv/consumer/InnsendingConsumer.kt index db4cf062..cef4690c 100644 --- a/src/main/java/no/nav/bidrag/dokument/arkiv/consumer/InnsendingConsumer.kt +++ b/src/main/java/no/nav/bidrag/dokument/arkiv/consumer/InnsendingConsumer.kt @@ -9,6 +9,8 @@ import org.springframework.beans.factory.annotation.Qualifier import org.springframework.beans.factory.annotation.Value import org.springframework.http.HttpEntity import org.springframework.http.HttpMethod +import org.springframework.retry.annotation.Backoff +import org.springframework.retry.annotation.Retryable import org.springframework.stereotype.Service import org.springframework.web.client.HttpStatusCodeException import org.springframework.web.client.RestOperations @@ -39,6 +41,7 @@ class InnsendingConsumer( } } + @Retryable(maxAttempts = 3, backoff = Backoff(delay = 500, maxDelay = 1500, multiplier = 2.0)) fun hentEttersendingsoppgave(oppgave: HentEtterseningsoppgaveRequest): List { try { return executeMedMetrics(createUri()) { diff --git a/src/main/java/no/nav/bidrag/dokument/arkiv/service/InnsendingService.kt b/src/main/java/no/nav/bidrag/dokument/arkiv/service/InnsendingService.kt index 8a444f20..78a2f451 100644 --- a/src/main/java/no/nav/bidrag/dokument/arkiv/service/InnsendingService.kt +++ b/src/main/java/no/nav/bidrag/dokument/arkiv/service/InnsendingService.kt @@ -20,12 +20,27 @@ class InnsendingService(private val innsendingConsumer: InnsendingConsumer) { val gjelder = journalpost.hentGjelderId() val ettersendingsoppgave = journalpost.ettersendingsoppgave() ?: return null - val ettersendingsoppgaver = innsendingConsumer.hentEttersendingsoppgave( - HentEtterseningsoppgaveRequest(gjelder!!, ettersendingsoppgave.skjemaId), + val ettersendingsoppgaver = hentEttersendingsoppgaver( + gjelder!!, + ettersendingsoppgave.skjemaId, ) return ettersendingsoppgaver.find { it.innsendingsId == ettersendingsoppgave.innsendingsId } } + fun hentEttersendingsoppgaver(gjelderId: String, skjemaId: String): List { + try { + return innsendingConsumer.hentEttersendingsoppgave( + HentEtterseningsoppgaveRequest( + gjelderId, + skjemaId, + ), + ) + } catch (e: Exception) { + LOGGER.error("Feil ved henting av ettersendingsoppgaver", e) + return emptyList() + } + } + fun hentEttersendingsoppgaverOpprettetEtterJournalpost( journalpost: Journalpost, ettersending: OpprettEttersendingsppgaveDto, @@ -33,11 +48,9 @@ class InnsendingService(private val innsendingConsumer: InnsendingConsumer) { try { val gjelder = journalpost.hentGjelderId() - val eksisterendeOppgaver = innsendingConsumer.hentEttersendingsoppgave( - HentEtterseningsoppgaveRequest( - gjelder!!, - ettersending.skjemaId, - ), + val eksisterendeOppgaver = hentEttersendingsoppgaver( + gjelder!!, + ettersending.skjemaId, ) return eksisterendeOppgaver.filter { it.opprettetDato.toLocalDate() >= journalpost.hentDatoJournalfort() } } catch (e: Exception) {