diff --git a/sykepenger-model/src/main/kotlin/no/nav/helse/person/Arbeidsgiver.kt b/sykepenger-model/src/main/kotlin/no/nav/helse/person/Arbeidsgiver.kt index 2abae64763..9c7ff6201f 100644 --- a/sykepenger-model/src/main/kotlin/no/nav/helse/person/Arbeidsgiver.kt +++ b/sykepenger-model/src/main/kotlin/no/nav/helse/person/Arbeidsgiver.kt @@ -150,6 +150,10 @@ internal class Arbeidsgiver private constructor( } } + internal fun List.loggSprøeInntekterMigrertInnFraIT(infotrygdhistorikk: Infotrygdhistorikk) { + forEach { arbeidsgiver -> arbeidsgiver.loggSprøeInntekterMigrertInnFraIT(infotrygdhistorikk) } + } + private val List.alleVedtaksperioder get() = flatMap { it.vedtaksperioder } internal fun List.håndter(overstyrSykepengegrunnlag: OverstyrSykepengegrunnlag) = @@ -259,6 +263,10 @@ internal class Arbeidsgiver private constructor( } } + private fun loggSprøeInntekterMigrertInnFraIT(infotrygdhistorikk: Infotrygdhistorikk) { + inntektshistorikk.loggSprøeInntekterMigrertInnFraIT(infotrygdhistorikk, organisasjonsnummer) + } + private fun erSammeYrkesaktivitet(yrkesaktivitet: Yrkesaktivitet) = this.yrkesaktivitet == yrkesaktivitet /* hvorvidt arbeidsgiver ikke inngår i sykepengegrunnlaget som er på et vilkårsgrunnlag, diff --git a/sykepenger-model/src/main/kotlin/no/nav/helse/person/Person.kt b/sykepenger-model/src/main/kotlin/no/nav/helse/person/Person.kt index dbed346208..83ecfc71b0 100644 --- a/sykepenger-model/src/main/kotlin/no/nav/helse/person/Person.kt +++ b/sykepenger-model/src/main/kotlin/no/nav/helse/person/Person.kt @@ -46,6 +46,7 @@ import no.nav.helse.hendelser.utbetaling.Utbetalingsgodkjenning import no.nav.helse.person.Arbeidsgiver.Companion.avklarSykepengegrunnlag import no.nav.helse.person.Arbeidsgiver.Companion.beregnFeriepengerForAlleArbeidsgivere import no.nav.helse.person.Arbeidsgiver.Companion.finn +import no.nav.helse.person.Arbeidsgiver.Companion.loggSprøeInntekterMigrertInnFraIT import no.nav.helse.person.Arbeidsgiver.Companion.forkastAuu import no.nav.helse.person.Arbeidsgiver.Companion.førsteFraværsdager import no.nav.helse.person.Arbeidsgiver.Companion.gjenopptaBehandling @@ -400,6 +401,8 @@ class Person private constructor( arbeidsgiver.sykefraværsfortelling(acc) }.varsleObservers(observers) + arbeidsgivere.loggSprøeInntekterMigrertInnFraIT(infotrygdhistorikk) + håndterGjenoppta(påminnelse) } diff --git a/sykepenger-model/src/main/kotlin/no/nav/helse/person/infotrygdhistorikk/Infotrygdhistorikk.kt b/sykepenger-model/src/main/kotlin/no/nav/helse/person/infotrygdhistorikk/Infotrygdhistorikk.kt index f944fc94c1..699ee1c4d5 100644 --- a/sykepenger-model/src/main/kotlin/no/nav/helse/person/infotrygdhistorikk/Infotrygdhistorikk.kt +++ b/sykepenger-model/src/main/kotlin/no/nav/helse/person/infotrygdhistorikk/Infotrygdhistorikk.kt @@ -9,6 +9,7 @@ import no.nav.helse.person.InfotrygdhistorikkVisitor import no.nav.helse.person.Person import no.nav.helse.person.aktivitetslogg.Aktivitet.Behov.Companion.utbetalingshistorikk import no.nav.helse.person.aktivitetslogg.IAktivitetslogg +import no.nav.helse.person.infotrygdhistorikk.InfotrygdhistorikkElement.Companion.loggSprøeInntektMigrertInnFraIT import no.nav.helse.sykdomstidslinje.Sykdomstidslinje import no.nav.helse.utbetalingslinjer.Utbetaling import no.nav.helse.utbetalingstidslinje.Arbeidsgiverperiode @@ -16,6 +17,7 @@ import no.nav.helse.utbetalingstidslinje.ArbeidsgiverperiodeBuilder import no.nav.helse.utbetalingstidslinje.ArbeidsgiverperiodeMediator import no.nav.helse.utbetalingstidslinje.Arbeidsgiverperiodeteller import no.nav.helse.utbetalingstidslinje.Utbetalingstidslinje +import no.nav.helse.økonomi.Inntekt internal class Infotrygdhistorikk private constructor( private val elementer: MutableList @@ -153,4 +155,13 @@ internal class Infotrygdhistorikk private constructor( if (!harHistorikk()) return true return siste.ingenUtbetalingerMellom(organisasjonsnummer, periode) } + + fun loggSprøeInntektMigrertInnFraIT( + dato: LocalDate, + beløp: Inntekt, + hendelseId: UUID, + organisasjonsnummer: String + ) { + elementer.loggSprøeInntektMigrertInnFraIT(dato, beløp, hendelseId, organisasjonsnummer) + } } diff --git a/sykepenger-model/src/main/kotlin/no/nav/helse/person/infotrygdhistorikk/InfotrygdhistorikkElement.kt b/sykepenger-model/src/main/kotlin/no/nav/helse/person/infotrygdhistorikk/InfotrygdhistorikkElement.kt index 4c6651f37b..df2ce76693 100644 --- a/sykepenger-model/src/main/kotlin/no/nav/helse/person/infotrygdhistorikk/InfotrygdhistorikkElement.kt +++ b/sykepenger-model/src/main/kotlin/no/nav/helse/person/infotrygdhistorikk/InfotrygdhistorikkElement.kt @@ -11,16 +11,17 @@ import no.nav.helse.person.aktivitetslogg.IAktivitetslogg import no.nav.helse.person.aktivitetslogg.Varselkode.RV_IT_14 import no.nav.helse.person.infotrygdhistorikk.Infotrygdperiode.Companion.harBetaltRettFør import no.nav.helse.person.infotrygdhistorikk.Infotrygdperiode.Companion.utbetalingsperioder +import no.nav.helse.person.infotrygdhistorikk.Inntektsopplysning.Companion.loggSprøeInntektMigrertInnFraIT import no.nav.helse.sykdomstidslinje.Dag.Companion.replace import no.nav.helse.sykdomstidslinje.Dag.Companion.sammenhengendeSykdom import no.nav.helse.sykdomstidslinje.SykdomshistorikkHendelse import no.nav.helse.sykdomstidslinje.Sykdomstidslinje -import no.nav.helse.sykdomstidslinje.SykdomstidslinjeHendelse import no.nav.helse.utbetalingslinjer.Utbetaling import no.nav.helse.utbetalingstidslinje.Arbeidsgiverperiode import no.nav.helse.utbetalingstidslinje.Arbeidsgiverperiodeteller import no.nav.helse.utbetalingstidslinje.Infotrygddekoratør import no.nav.helse.utbetalingstidslinje.Utbetalingstidslinje +import no.nav.helse.økonomi.Inntekt class InfotrygdhistorikkElement private constructor( private val id: UUID, @@ -74,6 +75,17 @@ class InfotrygdhistorikkElement private constructor( arbeidskategorikoder = arbeidskategorikoder, oppdatert = oppdatert ) + + internal fun List.loggSprøeInntektMigrertInnFraIT( + dato: LocalDate, + beløp: Inntekt, + hendelseId: UUID, + organisasjonsnummer: String + ) { + forEach { element -> + element.inntekter.loggSprøeInntektMigrertInnFraIT(dato, beløp, hendelseId, organisasjonsnummer) + } + } } internal fun build(organisasjonsnummer: String, sykdomstidslinje: Sykdomstidslinje, teller: Arbeidsgiverperiodeteller, builder: SykdomstidslinjeVisitor) { diff --git a/sykepenger-model/src/main/kotlin/no/nav/helse/person/infotrygdhistorikk/Inntektsopplysning.kt b/sykepenger-model/src/main/kotlin/no/nav/helse/person/infotrygdhistorikk/Inntektsopplysning.kt index c184bb9d9c..518628a9c0 100644 --- a/sykepenger-model/src/main/kotlin/no/nav/helse/person/infotrygdhistorikk/Inntektsopplysning.kt +++ b/sykepenger-model/src/main/kotlin/no/nav/helse/person/infotrygdhistorikk/Inntektsopplysning.kt @@ -2,8 +2,12 @@ package no.nav.helse.person.infotrygdhistorikk import java.time.LocalDate import java.time.LocalDateTime +import java.util.UUID +import net.logstash.logback.argument.StructuredArguments import no.nav.helse.person.InfotrygdhistorikkVisitor +import no.nav.helse.serde.migration.V238KobleSaksbehandlerinntekterTilDenOverstyrte import no.nav.helse.økonomi.Inntekt +import org.slf4j.LoggerFactory class Inntektsopplysning private constructor( private val orgnummer: String, @@ -34,6 +38,26 @@ class Inntektsopplysning private constructor( } internal companion object { + + private val sikkerlogg = LoggerFactory.getLogger("tjenestekall") + + internal fun List.loggSprøeInntektMigrertInnFraIT( + dato: LocalDate, + beløp: Inntekt, + hendelseId: UUID, + organisasjonsnummer: String + ) { + forEach { inntektsopplysning -> + val treff = dato == inntektsopplysning.sykepengerFom && beløp == inntektsopplysning.inntekt && organisasjonsnummer == inntektsopplysning.orgnummer + if (treff) { + sikkerlogg.info("Fant inntekt med {} og {} som er migert inn i inntektshistorikken fra IT", + StructuredArguments.keyValue("hendelseId", hendelseId), + StructuredArguments.keyValue("tidsstempel", dato) + ) + } + } + } + internal fun sorter(inntekter: List) = inntekter.sortedWith(compareBy({ it.sykepengerFom }, { it.hashCode() })) diff --git a/sykepenger-model/src/main/kotlin/no/nav/helse/person/inntekt/Inntektshistorikk.kt b/sykepenger-model/src/main/kotlin/no/nav/helse/person/inntekt/Inntektshistorikk.kt index e0c1deacb2..084608ebdf 100644 --- a/sykepenger-model/src/main/kotlin/no/nav/helse/person/inntekt/Inntektshistorikk.kt +++ b/sykepenger-model/src/main/kotlin/no/nav/helse/person/inntekt/Inntektshistorikk.kt @@ -3,7 +3,9 @@ package no.nav.helse.person.inntekt import java.time.LocalDate import no.nav.helse.person.InntekthistorikkVisitor +import no.nav.helse.person.infotrygdhistorikk.Infotrygdhistorikk import no.nav.helse.person.inntekt.AvklarbarSykepengegrunnlag.Companion.avklarSykepengegrunnlag +import no.nav.helse.person.inntekt.Inntektsmelding.Companion.loggSprøeInntekterMigrertInnFraIT internal class Inntektshistorikk private constructor(private val historikk: MutableList) { @@ -27,4 +29,8 @@ internal class Inntektshistorikk private constructor(private val historikk: Muta internal fun avklarSykepengegrunnlag(skjæringstidspunkt: LocalDate, førsteFraværsdag: LocalDate?, skattSykepengegrunnlag: SkattSykepengegrunnlag?): Inntektsopplysning? = historikk.avklarSykepengegrunnlag(skjæringstidspunkt, førsteFraværsdag, skattSykepengegrunnlag) + + internal fun loggSprøeInntekterMigrertInnFraIT(infotrygdhistorikk: Infotrygdhistorikk, organisasjonsnummer: String) { + historikk.loggSprøeInntekterMigrertInnFraIT(infotrygdhistorikk, organisasjonsnummer) + } } diff --git a/sykepenger-model/src/main/kotlin/no/nav/helse/person/inntekt/Inntektsmelding.kt b/sykepenger-model/src/main/kotlin/no/nav/helse/person/inntekt/Inntektsmelding.kt index dac440777d..7f0cb34d97 100644 --- a/sykepenger-model/src/main/kotlin/no/nav/helse/person/inntekt/Inntektsmelding.kt +++ b/sykepenger-model/src/main/kotlin/no/nav/helse/person/inntekt/Inntektsmelding.kt @@ -14,6 +14,7 @@ import no.nav.helse.person.PersonObserver import no.nav.helse.person.PersonObserver.Inntektsopplysningstype.INNTEKTSMELDING import no.nav.helse.person.aktivitetslogg.IAktivitetslogg import no.nav.helse.person.aktivitetslogg.Varselkode.RV_IV_7 +import no.nav.helse.person.infotrygdhistorikk.Infotrygdhistorikk import no.nav.helse.økonomi.Inntekt internal class Inntektsmelding( @@ -118,4 +119,19 @@ internal class Inntektsmelding( } inntektshistorikk.leggTil(Inntektsmelding(nyDato, hendelseId, beløp, tidsstempel)) } + + companion object { + internal fun List.loggSprøeInntekterMigrertInnFraIT( + infotrygdhistorikk: Infotrygdhistorikk, + organisasjonsnummer: String + ) { + forEach { inntektsmelding -> + val kandidat = + inntektsmelding.tidsstempel.year < 2022 && inntektsmelding.tidsstempel.second == 0 && inntektsmelding.tidsstempel.nano == 0 // såpass spesifikt tidsstempl at det lukter migrering + if (kandidat) { + infotrygdhistorikk.loggSprøeInntektMigrertInnFraIT(inntektsmelding.dato, inntektsmelding.beløp, inntektsmelding.hendelseId, organisasjonsnummer) + } + } + } + } } \ No newline at end of file