From 3e011914c50d54f4fdf8491dc4576e8bd348d4ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Golberg?= Date: Fri, 29 Nov 2024 14:57:37 +0100 Subject: [PATCH] =?UTF-8?q?Sender=20hendelse=20om=20at=20mottak=20av=20inn?= =?UTF-8?q?tektsjustering=20er=20fullf=C3=B8rt=20etter=20opprettelse=20av?= =?UTF-8?q?=20behandling=20eller=20oppgave=20(#6497)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Sender hendelse om at mottak av inntektsjustering er fullført etter opprettelse av behandling eller oppgave * Unittest * Rename metode * Legger til inntektsjusteringsid på melding --- .../InntektsjusteringSelvbetjeningService.kt | 30 +++++++++++++++++++ ...ntektsjusteringSelvbetjeningServiceTest.kt | 9 ++---- .../InntektsjusteringRiver.kt | 13 ++++---- .../OpprettVedtakforespoerselRiver.kt | 3 -- .../MottattInntektsjustering.kt | 8 +++++ 5 files changed, 46 insertions(+), 17 deletions(-) diff --git a/apps/etterlatte-behandling/src/main/kotlin/inntektsjustering/selvbetjening/InntektsjusteringSelvbetjeningService.kt b/apps/etterlatte-behandling/src/main/kotlin/inntektsjustering/selvbetjening/InntektsjusteringSelvbetjeningService.kt index 4001cd5973c..0a6947ed0b5 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/inntektsjustering/selvbetjening/InntektsjusteringSelvbetjeningService.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/inntektsjustering/selvbetjening/InntektsjusteringSelvbetjeningService.kt @@ -16,12 +16,14 @@ import no.nav.etterlatte.libs.common.rapidsandrivers.TEKNISK_TID_KEY import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.common.tidspunkt.Tidspunkt import no.nav.etterlatte.libs.inntektsjustering.MottattInntektsjustering +import no.nav.etterlatte.libs.inntektsjustering.MottattInntektsjusteringHendelseType import no.nav.etterlatte.libs.ktor.token.HardkodaSystembruker import no.nav.etterlatte.omregning.OmregningData import no.nav.etterlatte.omregning.OmregningDataPacket import no.nav.etterlatte.omregning.OmregningHendelseType import no.nav.etterlatte.oppgave.OppgaveService import org.slf4j.LoggerFactory +import java.util.UUID class InntektsjusteringSelvbetjeningService( private val oppgaveService: OppgaveService, @@ -40,6 +42,7 @@ class InntektsjusteringSelvbetjeningService( } else { startManuellBehandling(mottattInntektsjustering) } + mottattInntektsjsuteringFullfoert(mottattInntektsjustering.sak, mottattInntektsjustering.inntektsjusteringId) } private fun startAutomatiskBehandling(mottattInntektsjustering: MottattInntektsjustering) { @@ -110,6 +113,33 @@ class InntektsjusteringSelvbetjeningService( return true } + private fun mottattInntektsjsuteringFullfoert( + sakId: SakId, + inntektsjusteirngId: UUID, + ) { + logger.info("Mottak av inntektsjustering fullført sender melding til selvbetjening sak=$sakId") + val correlationId = getCorrelationId() + val hendelsetype = MottattInntektsjusteringHendelseType.MOTTAK_FULLFOERT.lagEventnameForType() + rapid + .publiser( + "mottak-inntektsjustering-fullfoert-$sakId", + JsonMessage + .newMessage( + hendelsetype, + mapOf( + CORRELATION_ID_KEY to correlationId, + TEKNISK_TID_KEY to Tidspunkt.now(), + "inntektsjustering_id" to inntektsjusteirngId, + ), + ).toJson(), + ).also { (partition, offset) -> + logger.info( + "Publiserte $hendelsetype for $sakId på partition " + + "$partition, offset $offset, correlationid: $correlationId", + ) + } + } + enum class InntektsjusterinFeatureToggle( private val key: String, ) : FeatureToggle { diff --git a/apps/etterlatte-behandling/src/test/kotlin/inntektsjustering/selvbetjening/InntektsjusteringSelvbetjeningServiceTest.kt b/apps/etterlatte-behandling/src/test/kotlin/inntektsjustering/selvbetjening/InntektsjusteringSelvbetjeningServiceTest.kt index 0660dc6c351..a7910f435eb 100644 --- a/apps/etterlatte-behandling/src/test/kotlin/inntektsjustering/selvbetjening/InntektsjusteringSelvbetjeningServiceTest.kt +++ b/apps/etterlatte-behandling/src/test/kotlin/inntektsjustering/selvbetjening/InntektsjusteringSelvbetjeningServiceTest.kt @@ -226,9 +226,8 @@ class InntektsjusteringSelvbetjeningServiceTest { saksbehandler = null, ) } - - verify(exactly = 0) { - rapid wasNot Called + coVerify(exactly = 1) { + rapid.publiser("mottak-inntektsjustering-fullfoert-123", any()) } } @@ -242,9 +241,7 @@ class InntektsjusteringSelvbetjeningServiceTest { ) behandlingService.hentAapneBehandlingerForSak(any()) vedtakKlient.sakHarLopendeVedtakPaaDato(any(), any(), any()) - } - verify(exactly = 0) { - oppgaveService wasNot Called + rapid.publiser("mottak-inntektsjustering-fullfoert-123", any()) } } } diff --git a/apps/etterlatte-gyldig-soeknad/src/main/kotlin/no/nav/etterlatte/inntektsjustering/InntektsjusteringRiver.kt b/apps/etterlatte-gyldig-soeknad/src/main/kotlin/no/nav/etterlatte/inntektsjustering/InntektsjusteringRiver.kt index 6b2e2eb6eab..6d4dc391939 100644 --- a/apps/etterlatte-gyldig-soeknad/src/main/kotlin/no/nav/etterlatte/inntektsjustering/InntektsjusteringRiver.kt +++ b/apps/etterlatte-gyldig-soeknad/src/main/kotlin/no/nav/etterlatte/inntektsjustering/InntektsjusteringRiver.kt @@ -1,6 +1,5 @@ package no.nav.etterlatte.inntektsjustering -import com.fasterxml.jackson.databind.JsonMappingException import com.fasterxml.jackson.module.kotlin.treeToValue import kotlinx.coroutines.runBlocking import no.nav.etterlatte.gyldigsoeknad.client.BehandlingClient @@ -13,7 +12,6 @@ import no.nav.etterlatte.libs.common.objectMapper import no.nav.etterlatte.libs.common.sak.Sak import no.nav.etterlatte.libs.inntektsjustering.MottattInntektsjustering import no.nav.etterlatte.rapidsandrivers.ListenerMedLogging -import no.nav.etterlatte.sikkerLogg import no.nav.helse.rapids_rivers.JsonMessage import no.nav.helse.rapids_rivers.MessageContext import no.nav.helse.rapids_rivers.RapidsConnection @@ -54,13 +52,12 @@ internal class InntektsjusteringRiver( } startBehandlingAvInntektsjustering(sak, journalpostResponse, inntektsjustering) - } catch (e: JsonMappingException) { - sikkerLogg.error("Feil under deserialisering", e) - logger.error("Feil under deserialisering av inntektsjustering (id=${inntektsjustering.id}). Se sikkerlogg for detaljer.") - throw e } catch (e: Exception) { - logger.error("Uhåndtert feilsituasjon TODO : $", e) - // throw e TODO ta stilling til hvordan feil her skal håndteres... + // Selvbetjening-backend vil fortsette å sende nye meldinger til dette ikke feiler + logger.error( + "Journalføring eller opprettelse av behandling/oppgave for inntektsjustering inntektsjusteringsid=${inntektsjustering.id}", + e, + ) } } diff --git a/apps/etterlatte-vedtaksvurdering-kafka/src/main/kotlin/no/nav/etterlatte/regulering/OpprettVedtakforespoerselRiver.kt b/apps/etterlatte-vedtaksvurdering-kafka/src/main/kotlin/no/nav/etterlatte/regulering/OpprettVedtakforespoerselRiver.kt index f87ad0d76d4..ed1a2c37a5e 100644 --- a/apps/etterlatte-vedtaksvurdering-kafka/src/main/kotlin/no/nav/etterlatte/regulering/OpprettVedtakforespoerselRiver.kt +++ b/apps/etterlatte-vedtaksvurdering-kafka/src/main/kotlin/no/nav/etterlatte/regulering/OpprettVedtakforespoerselRiver.kt @@ -126,9 +126,6 @@ internal class OpprettVedtakforespoerselRiver( } } - /* - * - */ private fun vedtakOgBrev( sakId: SakId, behandlingId: UUID, diff --git a/libs/etterlatte-inntektsjustering-model/src/main/kotlin/no.nav.etterlatte.libs.inntektsjustering/MottattInntektsjustering.kt b/libs/etterlatte-inntektsjustering-model/src/main/kotlin/no.nav.etterlatte.libs.inntektsjustering/MottattInntektsjustering.kt index e2d440ba66e..c9642d78e22 100644 --- a/libs/etterlatte-inntektsjustering-model/src/main/kotlin/no.nav.etterlatte.libs.inntektsjustering/MottattInntektsjustering.kt +++ b/libs/etterlatte-inntektsjustering-model/src/main/kotlin/no.nav.etterlatte.libs.inntektsjustering/MottattInntektsjustering.kt @@ -1,5 +1,6 @@ package no.nav.etterlatte.libs.inntektsjustering +import no.nav.etterlatte.libs.common.event.EventnameHendelseType import no.nav.etterlatte.libs.common.sak.SakId import java.time.YearMonth import java.util.UUID @@ -22,3 +23,10 @@ data class MottattInntektsjustering( fun utledLoependeFom() = AarligInntektsjusteringRequest.utledLoependeFom() } } + +enum class MottattInntektsjusteringHendelseType : EventnameHendelseType { + MOTTAK_FULLFOERT, + ; + + override fun lagEventnameForType(): String = "INNTEKTSJUSTERING:${this.name}" +}