From a80c68e5bf721b8fdc53074c07fb1777f9dc29c5 Mon Sep 17 00:00:00 2001 From: bragejahren <70642183+bragejahren@users.noreply.github.com> Date: Mon, 20 Jan 2025 22:01:20 +0100 Subject: [PATCH] =?UTF-8?q?Fors=C3=B8ker=20=C3=A5=20opprette=20ny=20andel?= =?UTF-8?q?=20fremfor=20=C3=A5=20oppdatere=20eksisterende=20(#5024)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### 💰 Hva skal gjøres, og hvorfor? Fortsatt et problem med `StaleObjectStateException` ved lagring av endrede andeler i TilkjentYtelse. Forsøker å fjerne eksisterende og legge til 2 nye andeler fremfor å oppdatere 1 og legge til 1 ny. --- .../no/nav/familie/ba/sak/internal/ForvalterService.kt | 5 ++--- .../no/nav/familie/ba/sak/internal/ForvalterServiceTest.kt | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/no/nav/familie/ba/sak/internal/ForvalterService.kt b/src/main/kotlin/no/nav/familie/ba/sak/internal/ForvalterService.kt index 7e3f9afd55..4618ffabbe 100644 --- a/src/main/kotlin/no/nav/familie/ba/sak/internal/ForvalterService.kt +++ b/src/main/kotlin/no/nav/familie/ba/sak/internal/ForvalterService.kt @@ -329,7 +329,7 @@ class ForvalterService( Pair( behandling.id, listOf( - utvidetAndelSomOverlapperSplitt.copy(stønadTom = splittIMnd, periodeOffset = tilsvarendeAndelFraTidligereBehandling.periodeOffset, forrigePeriodeOffset = tilsvarendeAndelFraTidligereBehandling.forrigePeriodeOffset), + utvidetAndelSomOverlapperSplitt.copy(id = 0, stønadTom = splittIMnd, periodeOffset = tilsvarendeAndelFraTidligereBehandling.periodeOffset, forrigePeriodeOffset = tilsvarendeAndelFraTidligereBehandling.forrigePeriodeOffset), utvidetAndelSomOverlapperSplitt.copy(id = 0, stønadFom = splittIMnd.plusMonths(1)), ).map { RestKorrigertAndelTilkjentYtelseDto(id = it.id, fom = it.stønadFom, tom = it.stønadTom, periodeId = it.periodeOffset, forrigePeriodeId = it.forrigePeriodeOffset) }, ), @@ -379,13 +379,12 @@ class ForvalterService( val oppdatertOgNyAndel = listOf( - utvidetAndelSomOverlapperSplitt.copy(stønadTom = splittIMnd, periodeOffset = tilsvarendeAndelFraTidligereBehandling.periodeOffset, forrigePeriodeOffset = tilsvarendeAndelFraTidligereBehandling.forrigePeriodeOffset), + utvidetAndelSomOverlapperSplitt.copy(id = 0, stønadTom = splittIMnd, periodeOffset = tilsvarendeAndelFraTidligereBehandling.periodeOffset, forrigePeriodeOffset = tilsvarendeAndelFraTidligereBehandling.forrigePeriodeOffset), utvidetAndelSomOverlapperSplitt.copy(id = 0, stønadFom = splittIMnd.plusMonths(1)), ) tilkjentYtelse.andelerTilkjentYtelse.removeAll { it.id == utvidetAndelSomOverlapperSplitt.id } tilkjentYtelse.andelerTilkjentYtelse.addAll(oppdatertOgNyAndel) - tilkjentYtelseRepository.save(tilkjentYtelse) resultat.add( Pair( diff --git a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/internal/ForvalterServiceTest.kt b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/internal/ForvalterServiceTest.kt index ae0e167851..569dc5ef15 100644 --- a/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/internal/ForvalterServiceTest.kt +++ b/src/test/enhetstester/kotlin/no/nav/familie/ba/sak/internal/ForvalterServiceTest.kt @@ -404,13 +404,12 @@ class ForvalterServiceTest { val korrigerteAndelerForBehandlinger = forvalterService.korrigerUtvidetAndelerIOppdaterUtvidetKlassekodeBehandlinger() // Assert - verify(exactly = 1) { tilkjentYtelseRepository.save(any()) } assertThat(korrigerteAndelerForBehandlinger).hasSize(1) val korrigerteAndeler = korrigerteAndelerForBehandlinger.single().second assertThat(korrigerteAndeler).hasSize(2) val førsteAndel = korrigerteAndeler.minBy { it.fom } val sisteAndel = korrigerteAndeler.maxBy { it.fom } - assertThat(førsteAndel.id).isEqualTo(2) + assertThat(førsteAndel.id).isEqualTo(0) assertThat(førsteAndel.fom).isEqualTo(YearMonth.of(2024, 7)) assertThat(førsteAndel.tom).isEqualTo(YearMonth.of(2024, 12)) assertThat(førsteAndel.periodeId).isEqualTo(2) @@ -507,7 +506,7 @@ class ForvalterServiceTest { assertThat(korrigerteAndeler).hasSize(2) val førsteAndel = korrigerteAndeler.minBy { it.fom } val sisteAndel = korrigerteAndeler.maxBy { it.fom } - assertThat(førsteAndel.id).isEqualTo(2) + assertThat(førsteAndel.id).isEqualTo(0) assertThat(førsteAndel.fom).isEqualTo(YearMonth.of(2024, 7)) assertThat(førsteAndel.tom).isEqualTo(YearMonth.of(2024, 12)) assertThat(førsteAndel.periodeId).isEqualTo(2)