Skip to content

Commit

Permalink
Fjern bestemmenede fraværsdag (#611)
Browse files Browse the repository at this point in the history
* Fjern bestemmenede fraværsdag

* Legg til kommentar om hvorfor bestemmende fraværsdag ikke lenger brukes
  • Loading branch information
bjerga authored Dec 20, 2024
1 parent a2e320c commit b1042ce
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 23 deletions.
22 changes: 13 additions & 9 deletions src/main/kotlin/no/nav/syfo/simba/InntektsmeldingConsumer.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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<String, Any>,
Expand Down Expand Up @@ -80,25 +79,32 @@ class InntektsmeldingConsumer(
private fun behandleRecord(record: ConsumerRecord<String, String>) {
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}")
}
}

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 =
Expand Down Expand Up @@ -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?,
)
5 changes: 2 additions & 3 deletions src/main/kotlin/no/nav/syfo/simba/MapInntektsmelding.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -44,7 +43,6 @@ fun mapInntektsmelding(
aktorId: String,
journalpostId: String,
im: InntektmeldingV1,
bestemmendeFravaersdag: LocalDate?,
): Inntektsmelding {
val avsenderSystem =
when (im.type) {
Expand Down Expand Up @@ -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(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand All @@ -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)
Expand All @@ -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")
Expand All @@ -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)
}
Expand All @@ -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)
Expand All @@ -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)
}

Expand All @@ -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)
}
Expand Down

0 comments on commit b1042ce

Please sign in to comment.