diff --git a/src/main/kotlin/no/nav/helse/flex/jobb/MigrerTilUtbetalingsdagerJobb.kt b/src/main/kotlin/no/nav/helse/flex/jobb/MigrerTilUtbetalingsdagerJobb.kt index 40c3fa61..80ede9d7 100644 --- a/src/main/kotlin/no/nav/helse/flex/jobb/MigrerTilUtbetalingsdagerJobb.kt +++ b/src/main/kotlin/no/nav/helse/flex/jobb/MigrerTilUtbetalingsdagerJobb.kt @@ -12,6 +12,7 @@ import no.nav.helse.flex.util.leggTilDagerIVedtakPeriode import org.springframework.stereotype.Component import org.springframework.transaction.annotation.Transactional import java.time.temporal.ChronoUnit +import kotlin.math.roundToInt @Component class MigrerTilUtbetalingsdagerJobb( @@ -141,7 +142,7 @@ class MigrerTilUtbetalingsdagerBatchMigrator( gammelDag.copy( beløpTilSykmeldt = dagPerson?.belop ?: 0, beløpTilArbeidsgiver = dagArbeidsgiver?.belop ?: 0, - sykdomsgrad = (dagPerson?.grad ?: dagArbeidsgiver?.grad ?: 0.0).toInt(), + sykdomsgrad = (dagPerson?.grad ?: dagArbeidsgiver?.grad ?: 0.0).roundToInt(), ) } diff --git a/src/test/kotlin/no/nav/helse/flex/jobb/MigrerTilUtbetalingsdagerBatchMigratorTest.kt b/src/test/kotlin/no/nav/helse/flex/jobb/MigrerTilUtbetalingsdagerBatchMigratorTest.kt index faf49db6..566a236d 100644 --- a/src/test/kotlin/no/nav/helse/flex/jobb/MigrerTilUtbetalingsdagerBatchMigratorTest.kt +++ b/src/test/kotlin/no/nav/helse/flex/jobb/MigrerTilUtbetalingsdagerBatchMigratorTest.kt @@ -7,6 +7,7 @@ import no.nav.helse.flex.db.UtbetalingMigreringRepository import no.nav.helse.flex.domene.UtbetalingUtbetalt import no.nav.helse.flex.fake.EnvironmentTogglesFake import no.nav.helse.flex.jobb.MigreringsTestData.UTBETALING_GAMMELT_FORMAT_JSON +import no.nav.helse.flex.jobb.MigreringsTestData.UTBETALING_GAMMELT_FORMAT_JSON_DESIMALER import no.nav.helse.flex.jobb.MigreringsTestData.UTBETALING_UTEN_UTBETALINGSDAGER_JSON import no.nav.helse.flex.objectMapper import org.amshove.kluent.`should be equal to` @@ -145,4 +146,36 @@ class MigrerTilUtbetalingsdagerBatchMigratorTest : FellesTestOppsett() { utbetalingUtbetalt.utbetalingsdager.count { it.type == "AvvistDag" } `should be equal to` 1 } } + + @Test + fun `Burde håndtere vedtak med grad med desimaler`() { + val utbetalingId = "utbetaling-med-flere-vedtak" + val fnr = "12345678910" + + val vedtak1 = vedtakRepository.opprettVedtak(utbetalingId, fnr) + val vedtak2 = vedtakRepository.opprettVedtak(utbetalingId, fnr, opprettet = Instant.parse("2021-01-02T12:00:00Z")) + val utbetaling = + utbetalingRepository.opprettUtbetaling( + utbetalingId, + fnr, + UTBETALING_GAMMELT_FORMAT_JSON_DESIMALER, + antallVedtak = 2, + ) + val utbetalingMigrering = utbetalingMigreringRepository.opprettMigreringsRecord(utbetalingId, MigrertStatus.IKKE_MIGRERT) + + val resultat = batchMigrator.migrerGammeltVedtak(listOf(utbetalingMigrering), mapOf(utbetaling to listOf(vedtak1, vedtak2))) + + resultat.migrert.`should be equal to`(1) + resultat.feilet.`should be equal to`(0) + utbetalingMigreringRepository.verifiserMigreringsStatus(utbetalingId, MigrertStatus.MIGRERT) + + utbetalingRepository.findUtbetalingDbRecordsByFnr(fnr = fnr).single().also { utbetalingDbRecord -> + val utbetalingUtbetalt = objectMapper.readValue(utbetalingDbRecord.utbetaling) + + utbetalingUtbetalt.utbetalingsdager.`should not be null`() + utbetalingUtbetalt.utbetalingsdager.size `should be equal to` 31 + utbetalingUtbetalt.utbetalingsdager.filter { it.sykdomsgrad == 30 }.size `should be equal to` 12 + utbetalingUtbetalt.utbetalingsdager.filter { it.sykdomsgrad == 33 }.size `should be equal to` 10 + } + } } diff --git a/src/test/kotlin/no/nav/helse/flex/jobb/MigreringsTestData.kt b/src/test/kotlin/no/nav/helse/flex/jobb/MigreringsTestData.kt index c0988576..a08b26a5 100644 --- a/src/test/kotlin/no/nav/helse/flex/jobb/MigreringsTestData.kt +++ b/src/test/kotlin/no/nav/helse/flex/jobb/MigreringsTestData.kt @@ -19,6 +19,10 @@ object MigreringsTestData { {"utbetalingId":"3d19a9d1-c285-4dcd-abb3-b3bcfb538c4a","korrelasjonsId":"139f6ed1-fb55-4272-a027-b9b763392a4b","fødselsnummer":"57907801103","aktørId":"2223759944574","organisasjonsnummer":"947064649","fom":"2024-05-01","tom":"2024-05-31","forbrukteSykedager":26,"gjenståendeSykedager":222,"stønadsdager":22,"automatiskBehandling":false,"arbeidsgiverOppdrag":{"mottaker":"947064649","fagområde":"SPREF","fagsystemId":"MJBEMEHTU5BKZO3Q4SBPU2UZ3M","nettoBeløp":45694,"stønadsdager":22,"fom":"2024-05-01","tom":"2024-05-31","utbetalingslinjer":[{"fom":"2024-05-01","tom":"2024-05-14","dagsats":2077,"totalbeløp":20770,"grad":100.0,"stønadsdager":10},{"fom":"2024-05-16","tom":"2024-05-31","dagsats":2077,"totalbeløp":24924,"grad":100.0,"stønadsdager":12}]},"personOppdrag":null,"type":"UTBETALING","utbetalingsdager":[{"dato":"2024-05-01","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-02","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-03","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-04","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-05","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-06","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-07","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-08","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-09","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-10","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-11","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-12","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-13","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-14","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-15","type":"AvvistDag","grad":0,"begrunnelser":["MinimumInntektOver67"]},{"dato":"2024-05-16","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-17","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-18","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-19","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-20","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-21","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-22","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-23","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-24","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-25","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-26","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-27","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-28","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-29","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-30","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-31","type":"NavDag","begrunnelser":[]}],"foreløpigBeregnetSluttPåSykepenger":"2025-04-08","event":"utbetaling_utbetalt","versjon":"1.0.0","antallVedtak":1} """ + const val UTBETALING_GAMMELT_FORMAT_JSON_DESIMALER = """ + {"utbetalingId":"3d19a9d1-c285-4dcd-abb3-b3bcfb538c4a","korrelasjonsId":"139f6ed1-fb55-4272-a027-b9b763392a4b","fødselsnummer":"57907801103","aktørId":"2223759944574","organisasjonsnummer":"947064649","fom":"2024-05-01","tom":"2024-05-31","forbrukteSykedager":26,"gjenståendeSykedager":222,"stønadsdager":22,"automatiskBehandling":false,"arbeidsgiverOppdrag":{"mottaker":"947064649","fagområde":"SPREF","fagsystemId":"MJBEMEHTU5BKZO3Q4SBPU2UZ3M","nettoBeløp":45694,"stønadsdager":22,"fom":"2024-05-01","tom":"2024-05-31","utbetalingslinjer":[{"fom":"2024-05-01","tom":"2024-05-14","dagsats":2077,"totalbeløp":20770,"grad":32.99999999999999,"stønadsdager":10},{"fom":"2024-05-16","tom":"2024-05-31","dagsats":2077,"totalbeløp":24924,"grad":30.000000000000004,"stønadsdager":12}]},"personOppdrag":null,"type":"UTBETALING","utbetalingsdager":[{"dato":"2024-05-01","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-02","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-03","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-04","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-05","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-06","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-07","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-08","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-09","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-10","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-11","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-12","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-13","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-14","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-15","type":"AvvistDag","grad":0,"begrunnelser":["MinimumInntektOver67"]},{"dato":"2024-05-16","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-17","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-18","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-19","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-20","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-21","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-22","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-23","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-24","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-25","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-26","type":"NavHelgDag","begrunnelser":[]},{"dato":"2024-05-27","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-28","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-29","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-30","type":"NavDag","begrunnelser":[]},{"dato":"2024-05-31","type":"NavDag","begrunnelser":[]}],"foreløpigBeregnetSluttPåSykepenger":"2025-04-08","event":"utbetaling_utbetalt","versjon":"1.0.0","antallVedtak":1} +""" + const val VEDTAK_JSON = """ {"fødselsnummer":"57907801103","aktørId":"2223759944574","organisasjonsnummer":"947064649","yrkesaktivitetstype":"ARBEIDSTAKER","fom":"2024-05-01","tom":"2024-05-31","skjæringstidspunkt":"2024-05-01","dokumenter":[{"dokumentId":"a7bdd7b8-8ea4-4af5-bdc3-9a8dbdb3e816","type":"Søknad"},{"dokumentId":"9ee8d87c-57d7-4e97-b94f-c73d161134b9","type":"Sykmelding"}],"sykepengegrunnlag":540000.0,"utbetalingId":"3d19a9d1-c285-4dcd-abb3-b3bcfb538c4a","vedtakFattetTidspunkt":"2026-01-14T11:52:04.280812329","sykepengegrunnlagsfakta":{"fastsatt":"EtterHovedregel","omregnetÅrsinntekt":540000.0,"innrapportertÅrsinntekt":540000.0,"avviksprosent":0.0,"6G":744168.0,"tags":[],"arbeidsgivere":[{"arbeidsgiver":"947064649","omregnetÅrsinntekt":540000.0}]},"begrunnelser":[{"type":"Innvilgelse","begrunnelse":"","perioder":[{"fom":"2024-05-01","tom":"2024-05-31"}]}],"tags":["IngenNyArbeidsgiverperiode"],"saksbehandler":{"navn":"Marte Sømo Solberg","ident":"S165568"},"beslutter":null,"versjon":"1.2.2","begrensning":"ER_IKKE_6G_BEGRENSET","inntekt":45000.0,"grunnlagForSykepengegrunnlag":540000.0,"grunnlagForSykepengegrunnlagPerArbeidsgiver":{"947064649":540000.0}} """