Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix identhendelser som feiler på dobbel lagring av aktør #4805

Merged
merged 3 commits into from
Oct 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,8 @@ class HåndterNyIdentService(

val fagsakIder =
aktørerMedAktivPersonident
.flatMap { aktør -> aktør.personidenter.flatMap { ident -> fagsakService.hentFagsakDeltager(ident.fødselsnummer) } }
.mapNotNull { it.fagsakId }
.flatMap { aktør -> fagsakService.hentFagsakerPåPerson(aktør) }
.map { it.id }

if (fagsakIder.toSet().size > 1) {
throw Feil("Det eksisterer flere fagsaker på identer som skal merges: ${aktørerMedAktivPersonident.first()}. $LENKE_INFO_OM_MERGING")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,6 @@ class PersonidentService(
it.aktiv = false
it.gjelderTil = LocalDateTime.now()
}
if (lagreNyAktør) aktørIdRepository.saveAndFlush(aktør) // Må lagre her fordi unik index er en blanding av aktørid og gjelderTil, og hvis man ikke lagerer før man legger til ny, så feiler det pga indexen.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Artig at man ikke trengte denne alikevel :D

aktør.personidenter.add(
Personident(fødselsnummer = fødselsnummer, aktør = aktør),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,13 @@ import no.nav.familie.ba.sak.common.secureLogger
import no.nav.familie.ba.sak.common.tilPersonEnkel
import no.nav.familie.ba.sak.config.TaskRepositoryWrapper
import no.nav.familie.ba.sak.config.tilAktør
import no.nav.familie.ba.sak.ekstern.restDomene.FagsakDeltagerRolle.FORELDER
import no.nav.familie.ba.sak.ekstern.restDomene.RestFagsakDeltager
import no.nav.familie.ba.sak.integrasjoner.pdl.PdlIdentRestClient
import no.nav.familie.ba.sak.integrasjoner.pdl.PdlRestClient
import no.nav.familie.ba.sak.integrasjoner.pdl.PersonInfoQuery
import no.nav.familie.ba.sak.integrasjoner.pdl.domene.IdentInformasjon
import no.nav.familie.ba.sak.integrasjoner.pdl.domene.PersonInfo
import no.nav.familie.ba.sak.kjerne.behandling.BehandlingHentOgPersisterService
import no.nav.familie.ba.sak.kjerne.fagsak.Fagsak
import no.nav.familie.ba.sak.kjerne.fagsak.FagsakService
import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersongrunnlagService
import no.nav.familie.ba.sak.kjerne.grunnlag.personopplysninger.PersonopplysningGrunnlag
Expand Down Expand Up @@ -85,7 +84,7 @@ internal class HåndterNyIdentServiceTest {
every { aktørIdRepository.findByAktørIdOrNull(nyAktør.aktørId) } returns null
every { aktørIdRepository.findByAktørIdOrNull(gammelAktør.aktørId) } returns gammelAktør
every { opprettTaskService.opprettTaskForÅPatcheMergetIdent(any()) } returns Task("", "")
every { fagsakService.hentFagsakDeltager(any()) } returns listOf(RestFagsakDeltager(rolle = FORELDER, fagsakId = 0))
every { fagsakService.hentFagsakerPåPerson(any()) } returns listOf(Fagsak(id = 0, aktør = gammelAktør))
every { behandlingHentOgPersisterService.hentSisteBehandlingSomErVedtatt(any()) } returns gammelBehandling
every { persongrunnlagService.hentAktiv(any()) } returns
PersonopplysningGrunnlag(
Expand All @@ -98,19 +97,7 @@ internal class HåndterNyIdentServiceTest {
fun `håndterNyIdent dropper merging av identer når det ikke eksisterer en fagsak for identer`() {
// arrange
every { fagsakService.hentFagsakDeltager(any()) } returns emptyList()

// act
val aktør = håndterNyIdentService.håndterNyIdent(PersonIdent(nyttFnr))

// assert
verify(exactly = 0) { opprettTaskService.opprettTaskForÅPatcheMergetIdent(any()) }
assertThat(aktør).isNull()
}

@Test
fun `håndterNyIdent dropper merging av identer når det eksisterer en fagsak uten fagsakId for identer`() {
// arrange
every { fagsakService.hentFagsakDeltager(any()) } returns listOf(RestFagsakDeltager(rolle = FORELDER))
every { fagsakService.hentFagsakerPåPerson(any()) } returns emptyList()

// act
val aktør = håndterNyIdentService.håndterNyIdent(PersonIdent(nyttFnr))
Expand All @@ -123,10 +110,10 @@ internal class HåndterNyIdentServiceTest {
@Test
fun `håndterNyIdent kaster Feil når det eksisterer flere fagsaker for identer`() {
// arrange
every { fagsakService.hentFagsakDeltager(any()) } returns
every { fagsakService.hentFagsakerPåPerson(any()) } returns
listOf(
RestFagsakDeltager(rolle = FORELDER, fagsakId = 1),
RestFagsakDeltager(rolle = FORELDER, fagsakId = 2),
Fagsak(id = 1, aktør = gammelAktør),
Fagsak(id = 2, aktør = gammelAktør),
)

// act & assert
Expand Down Expand Up @@ -231,7 +218,7 @@ internal class HåndterNyIdentServiceTest {
clearMocks(answers = true, firstMock = personidentRepository)
clearMocks(answers = true, firstMock = taskRepositoryMock)

every { fagsakService.hentFagsakDeltager(any()) } returns listOf(RestFagsakDeltager(rolle = FORELDER, fagsakId = 0))
every { fagsakService.hentFagsakerPåPerson(any()) } returns listOf(Fagsak(id = 0, aktør = aktørIdAktiv))

every { personidentRepository.saveAndFlush(capture(personIdentSlot)) } answers {
personIdentSlot.captured
Expand Down