From 5874c71010f6b189537c89e6bd8ec532dd74540a Mon Sep 17 00:00:00 2001 From: s148719 Date: Wed, 11 Dec 2024 08:53:33 +0100 Subject: [PATCH] =?UTF-8?q?Gj=C3=B8re=20f=C3=B8dselsdato=20p=C3=A5krevd=20?= =?UTF-8?q?i=20persontabellen.=20Oppdatere=20f=C3=B8dselsdato=20for=20eksi?= =?UTF-8?q?sterende=20personer=20som=20ogs=C3=A5=20har=20rolle=20i=20=20mi?= =?UTF-8?q?nst=20en=20behandling.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../no/nav/bidrag/behandling/Exceptions.kt | 6 +++ .../behandling/database/datamodell/Person.kt | 2 +- .../behandling/service/UnderholdService.kt | 6 ++- .../fravedtak/VedtakTilBehandlingMapping.kt | 38 +++++++++++++++---- ...erson_alter_column_f\303\270dselsdato.sql" | 10 +++++ .../controller/UnderholdControllerTest.kt | 4 +- .../service/UnderholdServiceTest.kt | 2 +- .../behandling/transformers/DtoMapperTest.kt | 2 +- .../transformers/underhold/UtvidelserTest.kt | 4 +- .../behandling/utils/testdata/Testdata.kt | 6 +-- 10 files changed, 62 insertions(+), 18 deletions(-) create mode 100644 "src/main/resources/db/migration/V2.35.0__alter_table_person_alter_column_f\303\270dselsdato.sql" diff --git a/src/main/kotlin/no/nav/bidrag/behandling/Exceptions.kt b/src/main/kotlin/no/nav/bidrag/behandling/Exceptions.kt index 98836470a..29d9d57fb 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/Exceptions.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/Exceptions.kt @@ -135,6 +135,12 @@ fun rolleManglerIdent( "Manger personident for rolle $rolletype i behandling $behandlingId", ) +fun fantIkkeFødselsdatoTilPerson(behandlingsid: Long): Nothing = + throw HttpClientErrorException( + HttpStatus.INTERNAL_SERVER_ERROR, + "Fant ikke fødselsdato til person i behandling med id $behandlingsid", + ) + fun fantIkkeFødselsdatoTilSøknadsbarn(behandlingsid: Long): Nothing = throw HttpClientErrorException( HttpStatus.INTERNAL_SERVER_ERROR, diff --git a/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Person.kt b/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Person.kt index 894a98fc9..2e4a23ceb 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Person.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/database/datamodell/Person.kt @@ -18,7 +18,7 @@ open class Person( open var id: Long? = null, open val ident: String? = null, open val navn: String? = null, - open val fødselsdato: LocalDate? = null, + open val fødselsdato: LocalDate, open val opprettet: LocalDateTime = LocalDateTime.now(), @OneToMany( fetch = FetchType.LAZY, diff --git a/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt b/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt index 11e8ac39e..63829b482 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt @@ -25,6 +25,7 @@ import no.nav.bidrag.behandling.dto.v2.underhold.SletteUnderholdselement import no.nav.bidrag.behandling.dto.v2.underhold.StønadTilBarnetilsynDto import no.nav.bidrag.behandling.dto.v2.underhold.UnderholdDto import no.nav.bidrag.behandling.dto.v2.underhold.Underholdselement +import no.nav.bidrag.behandling.fantIkkeFødselsdatoTilPerson import no.nav.bidrag.behandling.transformers.Dtomapper import no.nav.bidrag.behandling.transformers.behandling.hentAlleBearbeidaBarnetilsyn import no.nav.bidrag.behandling.transformers.underhold.aktivereBarnetilsynHvisIngenEndringerMåAksepteres @@ -143,6 +144,9 @@ class UnderholdService( val person = Person( ident = personidentBarn.verdi, + fødselsdato = + personService.hentPersonFødselsdato(personidentBarn.verdi) + ?: fantIkkeFødselsdatoTilPerson(behandling.id!!), rolle = rolleSøknadsbarn?.let { mutableSetOf(it) } ?: mutableSetOf(), ) person.rolle.forEach { it.person = person } @@ -152,7 +156,7 @@ class UnderholdService( } ?: run { lagreUnderholdskostnad( behandling, - Person(navn = gjelderBarn.navn, fødselsdato = gjelderBarn.fødselsdato), + Person(navn = gjelderBarn.navn, fødselsdato = gjelderBarn.fødselsdato!!), ) } } diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMapping.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMapping.kt index 051f4ca11..f1ef966bb 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMapping.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/vedtak/mapping/fravedtak/VedtakTilBehandlingMapping.kt @@ -172,7 +172,11 @@ class VedtakTilBehandlingMapping( } behandling.roller.forEach { r -> - notatMedType(NotatGrunnlag.NotatType.UNDERHOLDSKOSTNAD, false, grunnlagListe.hentPerson(r.ident)?.referanse)?.let { + notatMedType( + NotatGrunnlag.NotatType.UNDERHOLDSKOSTNAD, + false, + grunnlagListe.hentPerson(r.ident)?.referanse, + )?.let { behandling.notater.add(behandling.tilNotat(NotatGrunnlag.NotatType.UNDERHOLDSKOSTNAD, it, r)) } } @@ -246,10 +250,19 @@ class VedtakTilBehandlingMapping( Underholdskostnad( id = index.toLong(), behandling = behandling, - person = Person(id = index.toLong(), ident = rolle.ident!!, rolle = mutableSetOf(rolle)), + person = + Person( + id = index.toLong(), + ident = rolle.ident!!, + fødselsdato = rolle.fødselsdato, + rolle = mutableSetOf(rolle), + ), ) } else { - underholdService.oppretteUnderholdskostnad(behandling, BarnDto(personident = Personident(rolle.ident!!))) + underholdService.oppretteUnderholdskostnad( + behandling, + BarnDto(personident = Personident(rolle.ident!!)), + ) } underholdskostnad.tilleggsstønad.addAll( @@ -308,10 +321,19 @@ class VedtakTilBehandlingMapping( } else { underholdService.oppretteUnderholdskostnad( behandling, - BarnDto(personident = gjelderBarn.ident, navn = gjelderBarn.navn, fødselsdato = gjelderBarn.fødselsdato), + BarnDto( + personident = gjelderBarn.ident, + navn = gjelderBarn.navn, + fødselsdato = gjelderBarn.fødselsdato, + ), ) } - underholdskostnad.faktiskeTilsynsutgifter.addAll(innhold.mapFaktiskTilsynsutgift(underholdskostnad, lesemodus)) + underholdskostnad.faktiskeTilsynsutgifter.addAll( + innhold.mapFaktiskTilsynsutgift( + underholdskostnad, + lesemodus, + ), + ) underholdskostnad }.toMutableSet() @@ -394,8 +416,10 @@ class VedtakTilBehandlingMapping( perioder.mapIndexed { index, it -> val periodeInnhold = it.innholdTilObjekt() val beregning = - finnGrunnlagSomErReferertFraGrunnlagsreferanseListe(Grunnlagstype.SAMVÆRSKALKULATOR, it.grunnlagsreferanseListe) - .firstOrNull() + finnGrunnlagSomErReferertFraGrunnlagsreferanseListe( + Grunnlagstype.SAMVÆRSKALKULATOR, + it.grunnlagsreferanseListe, + ).firstOrNull() ?.innholdTilObjekt() Samværsperiode( id = if (lesemodus) index.toLong() else null, diff --git "a/src/main/resources/db/migration/V2.35.0__alter_table_person_alter_column_f\303\270dselsdato.sql" "b/src/main/resources/db/migration/V2.35.0__alter_table_person_alter_column_f\303\270dselsdato.sql" new file mode 100644 index 000000000..a44b3f9ed --- /dev/null +++ "b/src/main/resources/db/migration/V2.35.0__alter_table_person_alter_column_f\303\270dselsdato.sql" @@ -0,0 +1,10 @@ +-- Sette fødselsdato for personer med rolle lik fødselsdato i rolletabellen +update person p +set fødselsdato = r.fødselsdato +from rolle r +where p.id = r.person_id + and p.ident is not null + and p.fødselsdato is null; + +-- Gjøre fødselsdatokolonnen påkrevd +alter table person alter column fødselsdato set not null; diff --git a/src/test/kotlin/no/nav/bidrag/behandling/controller/UnderholdControllerTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/controller/UnderholdControllerTest.kt index a37e21fd8..e85063fd9 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/controller/UnderholdControllerTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/controller/UnderholdControllerTest.kt @@ -131,7 +131,7 @@ class UnderholdControllerTest : KontrollerTestRunner() { open fun `skal ikke opprette ny person for annet barn oppgitt med personident dersom person med samme ident allerede eksisterer`() { // gitt val behandling = oppretteTestbehandling(inkludereBp = true, behandlingstype = TypeBehandling.BIDRAG) - val eksisterendePerson = Person(ident = "11223312345") + val eksisterendePerson = Person(ident = "11223312345", fødselsdato = LocalDate.now()) testdataManager.lagrePersonIEgenTransaksjon(eksisterendePerson) testdataManager.lagreBehandlingNewTransaction(behandling) @@ -437,7 +437,7 @@ class UnderholdControllerTest : KontrollerTestRunner() { behandling.underholdskostnader.add( Underholdskostnad( behandling = behandling, - person = Person(navn = navnAnnetBarnBp), + person = Person(navn = navnAnnetBarnBp, fødselsdato = LocalDate.now()), ), ) val lagretBehandling = testdataManager.lagreBehandlingNewTransaction(behandling) diff --git a/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt index b435f34b5..787c23c90 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt @@ -347,7 +347,7 @@ class UnderholdServiceTest { behandlingstype = TypeBehandling.BIDRAG, ) - val annetBarnMedPersonident = Person(ident = "11223312345") + val annetBarnMedPersonident = Person(ident = "11223312345", fødselsdato = LocalDate.now()) behandling.underholdskostnader.add( Underholdskostnad(id = 101, behandling = behandling, person = annetBarnMedPersonident), diff --git a/src/test/kotlin/no/nav/bidrag/behandling/transformers/DtoMapperTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/transformers/DtoMapperTest.kt index 6bde35b38..9d34c2afa 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/transformers/DtoMapperTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/transformers/DtoMapperTest.kt @@ -492,7 +492,7 @@ class DtoMapperTest : TestContainerRunner() { no.nav.bidrag.behandling.database.datamodell.Underholdskostnad( 3, behandling, - Person(10, navn = "Annet Barn Bm"), + Person(10, navn = "Annet Barn Bm", fødselsdato = LocalDate.now()), ), ) diff --git a/src/test/kotlin/no/nav/bidrag/behandling/transformers/underhold/UtvidelserTest.kt b/src/test/kotlin/no/nav/bidrag/behandling/transformers/underhold/UtvidelserTest.kt index 4a63f6788..7dcdd92dc 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/transformers/underhold/UtvidelserTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/transformers/underhold/UtvidelserTest.kt @@ -53,7 +53,7 @@ class UtvidelserTest { val fødselsdato = LocalDate.now().withDayOfYear(365).minusYears(6) val rolleBarnSomNårSkolealderIInneværendeÅr = Rolle(b, ident = null, rolletype = Rolletype.BARN, fødselsdato = fødselsdato) - val personSøknadsbarn = Person(ident = "123", rolle = mutableSetOf(rolleBarnSomNårSkolealderIInneværendeÅr)) + val personSøknadsbarn = Person(ident = "123", fødselsdato = LocalDate.now(), rolle = mutableSetOf(rolleBarnSomNårSkolealderIInneværendeÅr)) b.underholdskostnader.add( Underholdskostnad( id = idUnderhold, @@ -90,7 +90,7 @@ class UtvidelserTest { val fødselsdato = LocalDate.now().withDayOfYear(365).minusYears(5) val rolleBarnSomNårSkolealderIInneværendeÅr = Rolle(b, ident = null, rolletype = Rolletype.BARN, fødselsdato = fødselsdato) - val personSøknadsbarn = Person(ident = "123", rolle = mutableSetOf(rolleBarnSomNårSkolealderIInneværendeÅr)) + val personSøknadsbarn = Person(ident = "123", fødselsdato = LocalDate.now(), rolle = mutableSetOf(rolleBarnSomNårSkolealderIInneværendeÅr)) b.underholdskostnader.add( Underholdskostnad( id = idUnderhold, diff --git a/src/test/kotlin/no/nav/bidrag/behandling/utils/testdata/Testdata.kt b/src/test/kotlin/no/nav/bidrag/behandling/utils/testdata/Testdata.kt index d7eca9096..48d0afdfc 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/utils/testdata/Testdata.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/utils/testdata/Testdata.kt @@ -679,7 +679,7 @@ fun opprettGyldigBehandlingForBeregningOgVedtak( Underholdskostnad( id = if (generateId) 1 else null, behandling = behandling, - person = Person(ident = it.ident, rolle = mutableSetOf(it)), + person = Person(ident = it.ident, fødselsdato = it.fødselsdato, rolle = mutableSetOf(it)), ) }.toMutableSet() husstandsmedlem.add( @@ -1196,7 +1196,7 @@ fun oppretteTestbehandling( var idUnderholdskostnad = if (setteDatabaseider) 1 else null // Oppretter underholdskostnad for alle barna i behandlingen ved bidrag behandling.søknadsbarn.forEach { - val personSøknadsbarn = Person(ident = it.ident, rolle = mutableSetOf(it)) + val personSøknadsbarn = Person(ident = it.ident, fødselsdato = it.fødselsdato, rolle = mutableSetOf(it)) behandling.underholdskostnader.add( Underholdskostnad( id = idUnderholdskostnad?.toLong(), @@ -1715,7 +1715,7 @@ fun Behandling.leggTilFaktiskTilsynsutgift( Underholdskostnad( id = if (medId) 1 else null, behandling = this, - person = Person(ident = barn.ident), + person = Person(ident = barn.ident, fødselsdato = barn.fødselsdato), ).also { underholdskostnader.add(it) } } underholdskostnad.faktiskeTilsynsutgifter.add(