Skip to content
This repository has been archived by the owner on Nov 5, 2024. It is now read-only.

Commit

Permalink
f Legger til filter av tekniske ISERV-endringer ved populering av per…
Browse files Browse the repository at this point in the history
…ioder

Tekniske ISERV-endringer er noe vi har filter for fra før i andre deler av stacken. Det handler om at vi får inn 2 endringer på akkurat samme tidspunkt. En ISERV og en ARBS. Litt avhengig av hvordan de prosesseres, så risikerer vi å sitte igjen med feil status.

Tror dette skyldes måter ting gjøres på i Arena, hvor en bruker først må opprettes og får ISERV før den blir aktivert som arbeidssøker (ARBS).
  • Loading branch information
tlheen committed Feb 2, 2023
1 parent ff51365 commit d17c291
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@ data class FormidlingsgruppeEndretEvent(

override fun formidlingsgruppe(): Formidlingsgruppe = formidlingsgruppe

fun erISERV(): Boolean {
return formidlingsgruppe.kode == "ISERV"
}

fun erAktiv(): Boolean {
return personIdStatus == "AKTIV"
}

override fun toString(): String {
return "FormidlingsgruppeEvent{" +
"foedselsnummer=" + foedselsnummer.maskert() +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import no.nav.fo.veilarbregistrering.bruker.Periode
import java.time.LocalDate

internal object ArbeidssokerperioderMapper {

fun map(formidlingsgruppeendringer: List<Formidlingsgruppeendring>): Arbeidssokerperioder {
return Arbeidssokerperioder(
formidlingsgruppeendringer
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package no.nav.fo.veilarbregistrering.arbeidssoker.perioder

import no.nav.fo.veilarbregistrering.arbeidssoker.Arbeidssoker
import no.nav.fo.veilarbregistrering.arbeidssoker.formidlingsgruppe.FormidlingsgruppeEndretEvent
import no.nav.fo.veilarbregistrering.arbeidssoker.formidlingsgruppe.FormidlingsgruppeRepository
import no.nav.fo.veilarbregistrering.bruker.Bruker
import no.nav.fo.veilarbregistrering.registrering.ordinaer.BrukerRegistreringRepository
Expand Down Expand Up @@ -29,7 +30,7 @@ class PopulerArbeidssokerperioderService(
val reaktiveringer =
brukerReaktiveringRepository.finnReaktiveringerForFoedselsnummer(bruker.alleFoedselsnummer())

val listeMedArbeidssøkerEndringer = formidlingsgruppe + ordinaerBrukerRegistreringer + reaktiveringer
val listeMedArbeidssøkerEndringer = filterTekniskeISERVEndringer(formidlingsgruppe) + ordinaerBrukerRegistreringer + reaktiveringer

val arbeidssoker = Arbeidssoker()

Expand All @@ -39,4 +40,16 @@ class PopulerArbeidssokerperioderService(

return arbeidssoker
}

private fun filterTekniskeISERVEndringer(formidlingsgruppeendringer: List<FormidlingsgruppeEndretEvent>): List<FormidlingsgruppeEndretEvent> {
return formidlingsgruppeendringer
.sortedByDescending { it.formidlingsgruppeEndret }
.filter(FormidlingsgruppeEndretEvent::erAktiv)
.run(::slettTekniskeISERVEndringer)
}

private fun slettTekniskeISERVEndringer(formidlingsgruppeendringer: List<FormidlingsgruppeEndretEvent>) =
formidlingsgruppeendringer.groupBy { it.formidlingsgruppeEndret }
.values.flatMap { samtidigeEndringer -> if (samtidigeEndringer.size > 1) samtidigeEndringer.filter { !it.erISERV() } else samtidigeEndringer }
.sortedByDescending { it.formidlingsgruppeEndret }
}

0 comments on commit d17c291

Please sign in to comment.