From 00da21714637d75e1e5d8a48c29ebe33f8b2e885 Mon Sep 17 00:00:00 2001 From: Ugur Alpay Cenar Date: Tue, 24 Dec 2024 10:56:42 +0100 Subject: [PATCH] Underhold lagre andre barn til BM --- .../controller/v2/UnderholdController.kt | 2 +- .../behandling/service/BehandlingService.kt | 2 +- .../bidrag/behandling/service/GrunnlagService.kt | 16 ++++++++++------ .../behandling/service/UnderholdService.kt | 7 ++----- .../bidrag/behandling/transformers/Dtomapper.kt | 15 +++++++++++---- .../fravedtak/VedtakTilBehandlingMapping.kt | 6 +++--- .../behandling/service/UnderholdServiceTest.kt | 8 ++++---- 7 files changed, 32 insertions(+), 24 deletions(-) diff --git a/src/main/kotlin/no/nav/bidrag/behandling/controller/v2/UnderholdController.kt b/src/main/kotlin/no/nav/bidrag/behandling/controller/v2/UnderholdController.kt index bf43338c..9c6823ae 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/controller/v2/UnderholdController.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/controller/v2/UnderholdController.kt @@ -261,7 +261,7 @@ class UnderholdController( .orElseThrow { behandlingNotFoundException(behandlingsid) } return OpprettUnderholdskostnadBarnResponse( - underholdskostnad = dtomapper.tilUnderholdDto(underholdService.opprettEllerOppdaterUnderholdskostnad(behandling, gjelderBarn)), + underholdskostnad = dtomapper.tilUnderholdDto(underholdService.oppretteUnderholdskostnad(behandling, gjelderBarn)), beregnetUnderholdskostnader = dtomapper.run { behandling.tilBeregnetUnderholdskostnad() }, valideringsfeil = behandling.underholdskostnader.valider(), ) diff --git a/src/main/kotlin/no/nav/bidrag/behandling/service/BehandlingService.kt b/src/main/kotlin/no/nav/bidrag/behandling/service/BehandlingService.kt index 5d66e3cc..db786df9 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/service/BehandlingService.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/service/BehandlingService.kt @@ -190,7 +190,7 @@ class BehandlingService( // Oppretter underholdskostnad for alle barna i behandlingen ved bidrag opprettBehandling.roller.filter { Rolletype.BARN == it.rolletype }.forEach { behandlingDo.underholdskostnader.add( - underholdService.opprettEllerOppdaterUnderholdskostnad(behandling, BarnDto(personident = it.ident)), + underholdService.oppretteUnderholdskostnad(behandling, BarnDto(personident = it.ident)), ) } } diff --git a/src/main/kotlin/no/nav/bidrag/behandling/service/GrunnlagService.kt b/src/main/kotlin/no/nav/bidrag/behandling/service/GrunnlagService.kt index 482fadbd..5bb40afa 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/service/GrunnlagService.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/service/GrunnlagService.kt @@ -805,21 +805,22 @@ class GrunnlagService( val andreBarnIkkeIBehandling = husstandsmedlemmerOgEgneBarn .filter { it.erBarn } - .filter { !søknadsbarnidenter.contains(it.partPersonId) } + .filter { !søknadsbarnidenter.contains(it.gjelderPersonId) } andreBarnIkkeIBehandling.forEach { - secureLogger.info { "$it er annen barn til BM. Oppretter underholdskostnad med kilde OFFENTLIG" } - underholdService.opprettEllerOppdaterUnderholdskostnad( + secureLogger.info { "$it er annen barn til BM. Oppretter eller oppdaterer underholdskostnad til kilde OFFENTLIG" } + behandling.underholdskostnader.find { u -> u.person.ident == it.gjelderPersonId }?.let { + it.kilde = Kilde.OFFENTLIG + } ?: underholdService.oppretteUnderholdskostnad( behandling, - BarnDto(personident = Personident(it.partPersonId!!), fødselsdato = it.fødselsdato), + BarnDto(personident = Personident(it.gjelderPersonId!!), fødselsdato = it.fødselsdato), kilde = Kilde.OFFENTLIG, ) } - val andreBarnIdenter = andreBarnIkkeIBehandling.map { it.partPersonId } + val andreBarnIdenter = andreBarnIkkeIBehandling.map { it.gjelderPersonId } behandling.underholdskostnader .filter { it.barnetsRolleIBehandlingen == null } - .filter { it.kilde != Kilde.OFFENTLIG } .filter { !andreBarnIdenter.contains(it.person.ident) } .forEach { secureLogger.info { "$it er ikke lenger barn til BM i følge offentlige opplysninger. Endrer kilde til Manuell" } @@ -1374,6 +1375,9 @@ class GrunnlagService( it.aktiv = LocalDateTime.now() } } + Grunnlagsdatatype.ANDRE_BARN -> { + it.aktiv = LocalDateTime.now() + } else -> it.aktiv = LocalDateTime.now() } 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 6a43d410..c4e1aea6 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/service/UnderholdService.kt @@ -113,17 +113,14 @@ class UnderholdService( } @Transactional - fun opprettEllerOppdaterUnderholdskostnad( + fun oppretteUnderholdskostnad( behandling: Behandling, gjelderBarn: BarnDto, kilde: Kilde? = null, ): Underholdskostnad { gjelderBarn.validere(behandling, personService) - return behandling.underholdskostnader.find { it.person.ident == gjelderBarn.personident?.verdi }?.let { - it.kilde = kilde - it - } ?: gjelderBarn.personident?.let { personidentBarn -> + return gjelderBarn.personident?.let { personidentBarn -> val rolleSøknadsbarn = behandling.søknadsbarn.find { it.ident == personidentBarn.verdi } personRepository.findFirstByIdent(personidentBarn.verdi)?.let { eksisterendePerson -> rolleSøknadsbarn?.let { eksisterendePerson.rolle.add(it) } diff --git a/src/main/kotlin/no/nav/bidrag/behandling/transformers/Dtomapper.kt b/src/main/kotlin/no/nav/bidrag/behandling/transformers/Dtomapper.kt index 1265e978..55d4b7f8 100644 --- a/src/main/kotlin/no/nav/bidrag/behandling/transformers/Dtomapper.kt +++ b/src/main/kotlin/no/nav/bidrag/behandling/transformers/Dtomapper.kt @@ -169,7 +169,14 @@ class Dtomapper( aktiveGrunnlag: List, ) = ikkeAktiveGrunnlag.henteEndringerIAndreVoksneIBpsHusstand(aktiveGrunnlag) - fun Set.tilDtos() = this.map { it.tilDto() }.sortedByDescending { it.gjelderBarn.fødselsdato }.toSet() + fun Set.tilDtos() = + this + .map { it.tilDto() } + .sortedWith( + compareByDescending { it.gjelderBarn.kilde == Kilde.OFFENTLIG } + .thenByDescending { it.gjelderBarn.kilde == Kilde.MANUELL } + .thenBy { it.gjelderBarn.fødselsdato }, + ).toSet() private fun Underholdskostnad.tilDto(): UnderholdDto { // Vil aldri ha flere enn èn rolle per behandling @@ -227,9 +234,9 @@ class Dtomapper( return PersoninfoDto( id = this.id, ident = ident?.let { Personident(it) } ?: this.ident?.let { Personident(it) }, - navn = personinfo?.navn ?: this.navn, + navn = hentPersonVisningsnavn(personinfo?.navn) ?: this.navn, fødselsdato = personinfo?.fødselsdato ?: this.fødselsdato, - kilde = ident?.let { Kilde.OFFENTLIG } ?: Kilde.MANUELL, + kilde = null, medIBehandlingen = ident != null, ) } @@ -245,7 +252,7 @@ class Dtomapper( return PersoninfoDto( id = this.id, ident = rolle?.ident?.let { Personident(it) } ?: this.ident?.let { Personident(it) }, - navn = personinfo?.navn ?: this.navn, + navn = hentPersonVisningsnavn(personinfo?.navn) ?: this.navn, fødselsdato = personinfo?.fødselsdato ?: this.fødselsdato, kilde = kilde, medIBehandlingen = rolle?.ident != null, 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 22186807..744495e3 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 @@ -263,7 +263,7 @@ class VedtakTilBehandlingMapping( ), ) } else { - underholdService.opprettEllerOppdaterUnderholdskostnad( + underholdService.oppretteUnderholdskostnad( behandling, BarnDto(personident = Personident(rolle.ident!!)), ) @@ -323,7 +323,7 @@ class VedtakTilBehandlingMapping( ), ) } else { - underholdService.opprettEllerOppdaterUnderholdskostnad( + underholdService.oppretteUnderholdskostnad( behandling, BarnDto( personident = gjelderBarn.ident, @@ -365,7 +365,7 @@ class VedtakTilBehandlingMapping( ), ) } else { - underholdService.opprettEllerOppdaterUnderholdskostnad( + underholdService.oppretteUnderholdskostnad( behandling, BarnDto( personident = gjelderBarn.ident, 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 ea63a67e..3476ca45 100644 --- a/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt +++ b/src/test/kotlin/no/nav/bidrag/behandling/service/UnderholdServiceTest.kt @@ -329,7 +329,7 @@ class UnderholdServiceTest { ) // hvis - underholdService.opprettEllerOppdaterUnderholdskostnad(behandling, request) + underholdService.oppretteUnderholdskostnad(behandling, request) // så val u = behandling.underholdskostnader.find { it.id == universalid } @@ -367,7 +367,7 @@ class UnderholdServiceTest { // hvis val respons = assertFailsWith { - underholdService.opprettEllerOppdaterUnderholdskostnad(behandling, request) + underholdService.oppretteUnderholdskostnad(behandling, request) } // så @@ -403,7 +403,7 @@ class UnderholdServiceTest { // hvis val respons = assertFailsWith { - underholdService.opprettEllerOppdaterUnderholdskostnad(behandling, request) + underholdService.oppretteUnderholdskostnad(behandling, request) } // så @@ -428,7 +428,7 @@ class UnderholdServiceTest { // hvis val respons = assertFailsWith { - underholdService.opprettEllerOppdaterUnderholdskostnad(behandling, request) + underholdService.oppretteUnderholdskostnad(behandling, request) } // så