Skip to content

Commit

Permalink
Move handling of utfall to fullførte behandlinger
Browse files Browse the repository at this point in the history
  • Loading branch information
jacob-meidell committed Nov 7, 2023
1 parent 43c0f32 commit e06e244
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,48 @@ data class FullførteBehandlinger(
)
}

fun perÅr(): List<Triple<Int, List<FullførtBehandling>, BehandlingUtfall>> {
return behandlingerPerOmsorgsår
init {
require(behandlingerPerOmsorgsår.flatMap { it.second }.map { it.utfall }
.count { it.erInnvilget() } <= 1) { "Det kan kun eksistere 0..1 innvilget behandling per omsorgsyter per år." }
}

fun forAlleÅr(): List<FullførtBehandling> {
fun alle(): List<FullførtBehandling> {
return behandlinger
}

private fun innvilgetr: Int): FullførtBehandling? {
return finnÅr(år)?.second?.singleOrNull { it.erInnvilget() }
}

private fun manuellr: Int): List<FullførtBehandling> {
return finnÅr(år)?.second?.filter { it.erManuell() } ?: emptyList()
}

fun håndterUtfall(
innvilget: (behandling: FullførtBehandling) -> Unit,
manuell: (behandling: FullførtBehandling) -> Unit,
avslag: () -> Unit,
) {
behandlingerPerOmsorgsår.forEach { (år, _, utfall) ->
when (utfall) {
BehandlingUtfall.Avslag -> {
avslag()
}

BehandlingUtfall.Innvilget -> {
innvilget(innvilget(år)!!)
}

BehandlingUtfall.Manuell -> {
manuell(år).forEach { manuell(it) }
}
}
}
}


private fun finnÅrr: Int) = behandlingerPerOmsorgsår.singleOrNull { it.first == år }

private fun List<FullførtBehandling>.alleOmsorgsår(): Set<Int> {
return this.map { it.omsorgsAr }.toSet()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.bre
import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.godskriv.model.GodskrivOpptjeningService
import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.medlemskap.MedlemskapOppslag
import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model.Behandling
import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model.BehandlingUtfall
import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model.FullførtBehandling
import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model.FullførteBehandlinger
import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model.Person
Expand Down Expand Up @@ -48,25 +47,15 @@ class PersongrunnlagMeldingService(
log.info("Prosesserer melding")
behandle(melding).let { fullførte ->
persongrunnlagRepo.updateStatus(melding.ferdig())
fullførte.perÅr().forEach { (år, behandlingerForÅr, utfall) ->
when (utfall) {
BehandlingUtfall.Avslag -> {
//noop
}

BehandlingUtfall.Innvilget -> {
behandlingerForÅr.filter { it.erInnvilget() }
.forEach { håndterInnvilgelse(it) }
}
fullførte.håndterUtfall(
innvilget = ::håndterInnvilgelse,
manuell = oppgaveService::opprettOppgaveHvisNødvendig,
avslag = {} //noop
)

BehandlingUtfall.Manuell -> {
behandlingerForÅr.filter { it.erManuell() }
.forEach { oppgaveService.opprettOppgaveHvisNødvendig(it) }
}
}
}
log.info("Melding prosessert")
fullførte.forAlleÅr()
fullførte.alle()
}
}
} catch (ex: Throwable) {
Expand Down

0 comments on commit e06e244

Please sign in to comment.