From b1042ce4bb7b5665a0815854ce271198f5572674 Mon Sep 17 00:00:00 2001 From: Mikael Bjerga <6940327+bjerga@users.noreply.github.com> Date: Fri, 20 Dec 2024 08:37:37 +0100 Subject: [PATCH] =?UTF-8?q?Fjern=20bestemmenede=20frav=C3=A6rsdag=20(#611)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fjern bestemmenede fraværsdag * Legg til kommentar om hvorfor bestemmende fraværsdag ikke lenger brukes --- .../nav/syfo/simba/InntektsmeldingConsumer.kt | 22 +++++++++++-------- .../no/nav/syfo/simba/MapInntektsmelding.kt | 5 ++--- .../MapInntektEndringAarsakFraSimbaTest.kt | 2 +- .../simba/MapInntektsmeldingFraSimbaTest.kt | 18 +++++++-------- 4 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/main/kotlin/no/nav/syfo/simba/InntektsmeldingConsumer.kt b/src/main/kotlin/no/nav/syfo/simba/InntektsmeldingConsumer.kt index 78beb882..4594d291 100644 --- a/src/main/kotlin/no/nav/syfo/simba/InntektsmeldingConsumer.kt +++ b/src/main/kotlin/no/nav/syfo/simba/InntektsmeldingConsumer.kt @@ -5,7 +5,6 @@ import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.Inntektsmelding import no.nav.helsearbeidsgiver.pdl.PdlClient import no.nav.helsearbeidsgiver.utils.json.fromJson import no.nav.helsearbeidsgiver.utils.json.parseJson -import no.nav.helsearbeidsgiver.utils.json.serializer.LocalDateSerializer import no.nav.helsearbeidsgiver.utils.json.toPretty import no.nav.helsearbeidsgiver.utils.log.logger import no.nav.helsearbeidsgiver.utils.log.sikkerLogger @@ -24,8 +23,8 @@ import no.nav.syfo.utsattoppgave.UtsattOppgaveService import org.apache.kafka.clients.consumer.ConsumerRecord import org.apache.kafka.clients.consumer.KafkaConsumer import java.time.Duration -import java.time.LocalDate import java.time.LocalDateTime +import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.JournalfoertInntektsmelding as JournalfoertInntektsmeldingV1 class InntektsmeldingConsumer( props: Map, @@ -80,13 +79,21 @@ class InntektsmeldingConsumer( private fun behandleRecord(record: ConsumerRecord) { val json = record.value().parseJson() sikkerlogger.info("InntektsmeldingConsumer: Mottar record fra Simba.\n${json.toPretty()}") - val meldingFraSimba = json.fromJson(JournalfoertInntektsmelding.serializer()) + // Skal bytte fra JournalfoertInntektsmelding til JournalfoertInntektsmeldingV1. Tåler begge i overgangsfase. + val meldingFraSimba = + runCatching { + json.fromJson(JournalfoertInntektsmeldingV1.serializer()) + }.recover { _ -> + json.fromJson(JournalfoertInntektsmelding.serializer()).let { + JournalfoertInntektsmeldingV1(it.journalpostId, it.inntektsmeldingV1) + } + }.getOrThrow() val im = inntektsmeldingService.findByJournalpost(meldingFraSimba.journalpostId) if (im != null) { sikkerlogger.info("InntektsmeldingConsumer: Behandler ikke ${meldingFraSimba.journalpostId}. Finnes allerede.") } else { - behandle(meldingFraSimba.journalpostId, meldingFraSimba.inntektsmeldingV1, meldingFraSimba.bestemmendeFravaersdag) + behandle(meldingFraSimba.journalpostId, meldingFraSimba.inntektsmelding) log.info("InntektsmeldingConsumer: Behandlet inntektsmelding med journalpostId: ${meldingFraSimba.journalpostId}") } } @@ -94,11 +101,10 @@ class InntektsmeldingConsumer( private fun behandle( journalpostId: String, inntektsmeldingFraSimba: Inntektsmelding, - bestemmendeFravaersdag: LocalDate?, ) { val aktorid = hentAktoeridFraPDL(inntektsmeldingFraSimba.sykmeldt.fnr.verdi) val arkivreferanse = "im_$journalpostId" - val inntektsmelding = mapInntektsmelding(arkivreferanse, aktorid, journalpostId, inntektsmeldingFraSimba, bestemmendeFravaersdag) + val inntektsmelding = mapInntektsmelding(arkivreferanse, aktorid, journalpostId, inntektsmeldingFraSimba) val dto = inntektsmeldingService.lagreBehandling(inntektsmelding, aktorid) val matcherSpleis = inntektsmelding.matcherSpleis() val timeout = @@ -163,11 +169,9 @@ class InntektsmeldingConsumer( } } -// Midlertidig klasse som inneholder bestemmende fraværsdag +// Midlertidig klasse, skal erstattes med v1.JournalfoertInntektsmelding etter overgangsfase @Serializable private data class JournalfoertInntektsmelding( val journalpostId: String, val inntektsmeldingV1: Inntektsmelding, - @Serializable(LocalDateSerializer::class) - val bestemmendeFravaersdag: LocalDate?, ) diff --git a/src/main/kotlin/no/nav/syfo/simba/MapInntektsmelding.kt b/src/main/kotlin/no/nav/syfo/simba/MapInntektsmelding.kt index da3ad0a8..a21efbeb 100644 --- a/src/main/kotlin/no/nav/syfo/simba/MapInntektsmelding.kt +++ b/src/main/kotlin/no/nav/syfo/simba/MapInntektsmelding.kt @@ -27,7 +27,6 @@ import no.nav.syfo.domain.inntektsmelding.OpphoerAvNaturalytelse import no.nav.syfo.domain.inntektsmelding.RapportertInntekt import no.nav.syfo.domain.inntektsmelding.Refusjon import no.nav.syfo.domain.inntektsmelding.SpinnInntektEndringAarsak -import java.time.LocalDate import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.Inntektsmelding as InntektmeldingV1 import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.Naturalytelse as NaturalytelseV1 import no.nav.helsearbeidsgiver.domene.inntektsmelding.v1.Periode as PeriodeV1 @@ -44,7 +43,6 @@ fun mapInntektsmelding( aktorId: String, journalpostId: String, im: InntektmeldingV1, - bestemmendeFravaersdag: LocalDate?, ): Inntektsmelding { val avsenderSystem = when (im.type) { @@ -93,7 +91,8 @@ fun mapInntektsmelding( ?.endringer ?.map(RefusjonEndring::tilEndringIRefusjon) .orEmpty(), - førsteFraværsdag = bestemmendeFravaersdag, + // Spleis trenger ikke denne datoen lenger for IM-er fra nav.no, da de utleder den selv + førsteFraværsdag = null, arsakTilInnsending = im.aarsakInnsending.name, mottattDato = im.mottatt.toLocalDateTime(), innsendingstidspunkt = im.mottatt.toLocalDateTime(), diff --git a/src/test/kotlin/no/nav/syfo/simba/MapInntektEndringAarsakFraSimbaTest.kt b/src/test/kotlin/no/nav/syfo/simba/MapInntektEndringAarsakFraSimbaTest.kt index 56e5797d..5a440674 100644 --- a/src/test/kotlin/no/nav/syfo/simba/MapInntektEndringAarsakFraSimbaTest.kt +++ b/src/test/kotlin/no/nav/syfo/simba/MapInntektEndringAarsakFraSimbaTest.kt @@ -69,7 +69,7 @@ class MapInntektEndringAarsakFraSimbaTest { ) } - val mapped = mapInntektsmelding("1", "2", "3", im, 1.januar) + val mapped = mapInntektsmelding("1", "2", "3", im) assertEquals(spinnInntektEndringAarsak, mapped.rapportertInntekt?.endringAarsakData) } diff --git a/src/test/kotlin/no/nav/syfo/simba/MapInntektsmeldingFraSimbaTest.kt b/src/test/kotlin/no/nav/syfo/simba/MapInntektsmeldingFraSimbaTest.kt index c3d7c661..17c69859 100644 --- a/src/test/kotlin/no/nav/syfo/simba/MapInntektsmeldingFraSimbaTest.kt +++ b/src/test/kotlin/no/nav/syfo/simba/MapInntektsmeldingFraSimbaTest.kt @@ -51,7 +51,6 @@ class MapInntektsmeldingFraSimbaTest { aktorId = "sdfds", journalpostId = "134", im = imd, - bestemmendeFravaersdag = 10.januar, ) assertEquals(antallNaturalytelser, mapped.opphørAvNaturalYtelse.size) val naturalytelse = mapped.opphørAvNaturalYtelse[0] @@ -68,7 +67,6 @@ class MapInntektsmeldingFraSimbaTest { aktorId = "sdfds", journalpostId = "134", im = lagInntektsmelding().copy(refusjon = refusjon), - bestemmendeFravaersdag = 10.januar, ) assertEquals(mapped.refusjon.opphoersdato, refusjon.sluttdato) assertEquals(mapped.endringerIRefusjon.size, 1) @@ -91,7 +89,7 @@ class MapInntektsmeldingFraSimbaTest { ) } - val mapped = mapInntektsmelding("im123", "abc", "345", im, 10.januar) + val mapped = mapInntektsmelding("im123", "abc", "345", im) assertEquals(begrunnelse.name, mapped.begrunnelseRedusert, "Feil ved mapping: $begrunnelse") assertEquals(1.0.toBigDecimal(), mapped.bruttoUtbetalt, "Feil ved mapping: $begrunnelse") @@ -109,7 +107,7 @@ class MapInntektsmeldingFraSimbaTest { ), ) } - val mapped = mapInntektsmelding("im1", "2", "3", im, 10.januar) + val mapped = mapInntektsmelding("im1", "2", "3", im) assertEquals("", mapped.begrunnelseRedusert) assertNull(mapped.bruttoUtbetalt) } @@ -126,7 +124,7 @@ class MapInntektsmeldingFraSimbaTest { endringAarsak = Bonus, ), ) - val mapped = mapInntektsmelding("im1", "2", "3", im, 10.januar) + val mapped = mapInntektsmelding("im1", "2", "3", im) assertEquals("Bonus", mapped.rapportertInntekt?.endringAarsak) assertEquals("Bonus", mapped.rapportertInntekt?.endringAarsakData?.aarsak) assertNull(mapped.rapportertInntekt?.endringAarsakData?.perioder) @@ -138,16 +136,16 @@ class MapInntektsmeldingFraSimbaTest { fun mapInnsendtTidspunktFraSimba() { val localDateTime = LocalDateTime.of(2023, 2, 11, 14, 0) val innsendt = OffsetDateTime.of(localDateTime, ZoneOffset.of("+1")) - val im = mapInntektsmelding("im1", "2", "3", lagInntektsmelding().copy(mottatt = innsendt), 10.januar) + val im = mapInntektsmelding("im1", "2", "3", lagInntektsmelding().copy(mottatt = innsendt)) assertEquals(localDateTime, im.innsendingstidspunkt) } @Test fun mapVedtaksperiodeID() { - val im = mapInntektsmelding("im1", "2", "3", lagInntektsmelding().copy(vedtaksperiodeId = null), 10.januar) + val im = mapInntektsmelding("im1", "2", "3", lagInntektsmelding().copy(vedtaksperiodeId = null)) assertNull(im.vedtaksperiodeId) val vedtaksperiodeId = UUID.randomUUID() - val im2 = mapInntektsmelding("im1", "2", "3", lagInntektsmelding().copy(vedtaksperiodeId = vedtaksperiodeId), 10.januar) + val im2 = mapInntektsmelding("im1", "2", "3", lagInntektsmelding().copy(vedtaksperiodeId = vedtaksperiodeId)) assertEquals(vedtaksperiodeId, im2.vedtaksperiodeId) } @@ -157,11 +155,11 @@ class MapInntektsmeldingFraSimbaTest { lagInntektsmelding().copy( type = Inntektsmelding.Type.Selvbestemt(UUID.randomUUID()), ) - val selvbestemtMapped = mapInntektsmelding("im1", "2", "3", selvbestemtIm, 10.januar) + val selvbestemtMapped = mapInntektsmelding("im1", "2", "3", selvbestemtIm) assertEquals(MuligAvsender.NAV_NO_SELVBESTEMT, selvbestemtMapped.avsenderSystem.navn) assertEquals(MuligAvsender.VERSJON, selvbestemtMapped.avsenderSystem.versjon) - val mapped = mapInntektsmelding("im1", "2", "3", lagInntektsmelding(), 10.januar) + val mapped = mapInntektsmelding("im1", "2", "3", lagInntektsmelding()) assertEquals(MuligAvsender.NAV_NO, mapped.avsenderSystem.navn) assertEquals(MuligAvsender.VERSJON, mapped.avsenderSystem.versjon) }