Skip to content

Commit

Permalink
WIP Multiple utfall, new version with both utfall and utfallSet.
Browse files Browse the repository at this point in the history
  • Loading branch information
flexable777 committed Oct 3, 2023
1 parent 1999dcd commit e66dd32
Show file tree
Hide file tree
Showing 19 changed files with 89 additions and 60 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -431,13 +431,9 @@ class BehandlingController(
logger
)

val utfallList = if (input.utfallId != null) {
listOf(Utfall.of(input.utfallId))
} else emptyList()

val modified = behandlingService.setUtfall(
behandlingId = behandlingId,
utfallList = utfallList,
utfall = if (input.utfallId != null) Utfall.of(input.utfallId) else null,
utfoerendeSaksbehandlerIdent = innloggetSaksbehandlerService.getInnloggetIdent()
).modified

Expand All @@ -456,9 +452,9 @@ class BehandlingController(
logger
)

val modified = behandlingService.setUtfall(
val modified = behandlingService.setUtfallSet(
behandlingId = behandlingId,
utfallList = input.utfallIdSet.map { Utfall.of(it) },
utfallSet = input.utfallIdSet.map { Utfall.of(it) }.toSet(),
utfoerendeSaksbehandlerIdent = innloggetSaksbehandlerService.getInnloggetIdent()
).modified

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -330,8 +330,7 @@ class BehandlingMapper(
fun Behandling.mapToVedtakView(): VedtakView {
return VedtakView(
id = id,
//TODO remove "first()"
utfallId = if (utfallSet.isEmpty()) null else utfallSet.first().id,
utfallId = utfall?.id,
utfallIdSet = utfallSet.map { it.id }.toSet(),
hjemmelIdSet = registreringshjemler.map { it.id }.toSet(),
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,7 @@ class KakaApiGateway(private val kakaApiClient: KakaApiClient) {
mottattKlageinstans = mottattKlageinstans.toLocalDate(),
vedtaksinstansEnhet = vedtaksinstansEnhet,
mottattVedtaksinstans = if (this is Klagebehandling) mottattVedtaksinstans else null,
//TODO remove "first()"
utfall = utfallSet.first().id,
utfall = utfall!!.id,
registreringshjemler = registreringshjemler.map { it.id },
kvalitetsvurderingId = kvalitetsvurderingId!!,
avsluttetAvSaksbehandler = avsluttetAvSaksbehandler!!,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ class AnkeITrygderettenbehandling(
hjemler: Set<Hjemmel> = emptySet(),
sattPaaVent: SattPaaVent? = null,
feilregistrering: Feilregistrering? = null,
utfall: Utfall? = null,
utfallSet: Set<Utfall> = setOf(),
registreringshjemler: MutableSet<Registreringshjemmel> = mutableSetOf(),
medunderskriver: MedunderskriverTildeling? = null,
Expand Down Expand Up @@ -72,6 +73,7 @@ class AnkeITrygderettenbehandling(
hjemler = hjemler,
sattPaaVent = sattPaaVent,
feilregistrering = feilregistrering,
utfall = utfall,
utfallSet = utfallSet,
registreringshjemler = registreringshjemler,
medunderskriver = medunderskriver,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ fun Behandling.createAnkeITrygderettenbehandlingInput(): AnkeITrygderettenbehand
innsendingsHjemler = hjemler,
sendtTilTrygderetten = avsluttetAvSaksbehandler!!,
registreringsHjemmelSet = registreringshjemler,
//TODO remove "first()"
ankebehandlingUtfall = ExternalUtfall.valueOf(utfallSet.first().name),
ankebehandlingUtfall = ExternalUtfall.valueOf(utfall!!.id),
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ class Ankebehandling(
hjemler: Set<Hjemmel> = emptySet(),
sattPaaVent: SattPaaVent? = null,
feilregistrering: Feilregistrering? = null,
utfall: Utfall? = null,
utfallSet: Set<Utfall> = emptySet(),
registreringshjemler: MutableSet<Registreringshjemmel> = mutableSetOf(),
medunderskriver: MedunderskriverTildeling? = null,
Expand Down Expand Up @@ -84,6 +85,7 @@ class Ankebehandling(
hjemler = hjemler,
sattPaaVent = sattPaaVent,
feilregistrering = feilregistrering,
utfall = utfall,
utfallSet = utfallSet,
registreringshjemler = registreringshjemler,
medunderskriver = medunderskriver,
Expand Down
12 changes: 5 additions & 7 deletions src/main/kotlin/no/nav/klage/oppgave/domain/klage/Behandling.kt
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,9 @@ abstract class Behandling(
)
open var feilregistrering: Feilregistrering?,

// @Column(name = "utfall_id")
// @Convert(converter = UtfallConverter::class)
// var utfall: Utfall? = null,
@Column(name = "utfall_id")
@Convert(converter = UtfallConverter::class)
var utfall: Utfall? = null,

@ElementCollection(targetClass = Utfall::class, fetch = FetchType.EAGER)
@CollectionTable(
Expand Down Expand Up @@ -171,14 +171,12 @@ abstract class Behandling(
}

fun shouldBeSentToTrygderetten(): Boolean {
//TODO remove "first()"
return utfallSet.first() in utfallToTrygderetten
return utfall in utfallToTrygderetten
}

fun shouldCreateNewAnkebehandling(): Boolean {
return if (this is AnkeITrygderettenbehandling) {
//TODO remove "first()"
nyBehandlingKA != null || utfallSet.first() in utfallToNewAnkebehandling
nyBehandlingKA != null || utfall in utfallToNewAnkebehandling
} else {
false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -338,18 +338,38 @@ object BehandlingSetters {
}

fun Behandling.setUtfall(
nyVerdi: List<Utfall>,
nyVerdi: Utfall?,
saksbehandlerident: String
): BehandlingEndretEvent {
val gammelVerdi = utfallSet
val gammelVerdi = utfall
val tidspunkt = LocalDateTime.now()
utfallSet = nyVerdi.toSet()
utfall = nyVerdi
modified = tidspunkt
modified = tidspunkt
val endringslogg =
endringslogg(
saksbehandlerident = saksbehandlerident,
felt = Felt.UTFALL_ID,
fraVerdi = gammelVerdi?.id,
tilVerdi = utfall?.id,
tidspunkt = tidspunkt
)
return BehandlingEndretEvent(behandling = this, endringslogginnslag = listOfNotNull(endringslogg))
}

fun Behandling.setUtfallList(
nyVerdi: Set<Utfall>,
saksbehandlerident: String
): BehandlingEndretEvent {
val gammelVerdi = utfallSet
val tidspunkt = LocalDateTime.now()
utfallSet = nyVerdi
modified = tidspunkt
modified = tidspunkt
val endringslogg =
endringslogg(
saksbehandlerident = saksbehandlerident,
felt = Felt.UTFALL_LIST,
fraVerdi = gammelVerdi.joinToString { it.id },
tilVerdi = utfallSet.joinToString { it.id },
tidspunkt = tidspunkt
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ enum class KildeSystem {

enum class Felt {
UTFALL_ID,
UTFALL_LIST,
INNSENDINGSHJEMLER_ID_LIST,
MOTTATT_FOERSTEINSTANS_DATO,
TILDELT_SAKSBEHANDLERIDENT,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ class Klagebehandling(
hjemler: Set<Hjemmel> = emptySet(),
sattPaaVent: SattPaaVent? = null,
feilregistrering: Feilregistrering? = null,
utfall: Utfall? = null,
utfallSet: Set<Utfall> = emptySet(),
registreringshjemler: MutableSet<Registreringshjemmel> = mutableSetOf(),
medunderskriver: MedunderskriverTildeling? = null,
Expand Down Expand Up @@ -86,6 +87,7 @@ class Klagebehandling(
hjemler = hjemler,
sattPaaVent = sattPaaVent,
feilregistrering = feilregistrering,
utfall = utfall,
utfallSet = utfallSet,
registreringshjemler = registreringshjemler,
medunderskriver = medunderskriver,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,7 @@ class StatistikkTilDVHService(
val endringslogginnslag: List<Endringslogginnslag> = behandlingEndretEvent.endringslogginnslag
val behandling = behandlingEndretEvent.behandling
val type = behandling.type
//TODO remove "first()"
val utfall = behandling.utfallSet.first()
val utfall = behandling.utfall

return when {
endringslogginnslag.isEmpty() && type != Type.ANKE_I_TRYGDERETTEN -> BehandlingState.MOTTATT
Expand Down Expand Up @@ -188,8 +187,7 @@ class StatistikkTilDVHService(
if (behandling.feilregistrering != null) {
ExternalUtfall.FEILREGISTRERT.navn
} else if (behandling.avsluttetAvSaksbehandler != null) {
//TODO remove "first()"
behandling.utfallSet.first().name.let { ExternalUtfall.valueOf(it).navn }
behandling.utfall!!.name.let { ExternalUtfall.valueOf(it).navn }
} else {
null
}
Expand Down
39 changes: 26 additions & 13 deletions src/main/kotlin/no/nav/klage/oppgave/service/BehandlingService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import no.nav.klage.oppgave.domain.klage.BehandlingSetters.setRegistreringshjeml
import no.nav.klage.oppgave.domain.klage.BehandlingSetters.setSattPaaVent
import no.nav.klage.oppgave.domain.klage.BehandlingSetters.setTildeling
import no.nav.klage.oppgave.domain.klage.BehandlingSetters.setUtfall
import no.nav.klage.oppgave.domain.klage.BehandlingSetters.setUtfallList
import no.nav.klage.oppgave.domain.klage.KlagebehandlingSetters.setMottattVedtaksinstans
import no.nav.klage.oppgave.exceptions.*
import no.nav.klage.oppgave.repositories.BehandlingRepository
Expand Down Expand Up @@ -114,8 +115,7 @@ class BehandlingService(

if (nyBehandling) {
if (behandling is AnkeITrygderettenbehandling) {
//TODO remove "first()"
if (behandling.utfallSet.first() != Utfall.OPPHEVET) {
if (behandling.utfall != Utfall.OPPHEVET) {
throw IllegalOperation("Ny ankebehandling kan kun opprettes hvis utfall er 'Opphevet'.")
}
} else {
Expand Down Expand Up @@ -154,8 +154,7 @@ class BehandlingService(
}

//TODO: Create test for invalid utfall when such are added
//TODO remove "first()"
if (behandling.utfallSet.isNotEmpty() && behandling.utfallSet.first() !in typeTilUtfall[behandling.type]!!) {
if (behandling.utfall != null && behandling.utfall !in typeTilUtfall[behandling.type]!!) {
behandlingValidationErrors.add(
InvalidProperty(
field = "utfall",
Expand All @@ -164,8 +163,7 @@ class BehandlingService(
)
}

//TODO remove "first()"
if (behandling.utfallSet.firstOrNull() !in noRegistringshjemmelNeeded) {
if (behandling.utfall !in noRegistringshjemmelNeeded) {
if (behandling.registreringshjemler.isEmpty()) {
behandlingValidationErrors.add(
InvalidProperty(
Expand All @@ -176,8 +174,7 @@ class BehandlingService(
}
}

//TODO remove "first()"
if (behandling !is AnkeITrygderettenbehandling && behandling.utfallSet.firstOrNull() !in noKvalitetsvurderingNeeded) {
if (behandling !is AnkeITrygderettenbehandling && behandling.utfall !in noKvalitetsvurderingNeeded) {
val kvalitetsvurderingValidationErrors = kakaApiGateway.getValidationErrors(behandling)

if (kvalitetsvurderingValidationErrors.isNotEmpty()) {
Expand Down Expand Up @@ -290,9 +287,8 @@ class BehandlingService(
fun getErrorText(prop: String) =
"Kan ikke lukke behandling. Fjern $prop. Dersom Trygderetten har behandlet saken, kan du ikke starte ny behandling av samme sak."

if (behandling.utfallSet.isNotEmpty()) {
//TODO remove "first()"
when (behandling.utfallSet.first()) {
if (behandling.utfall != null) {
when (behandling.utfall) {
Utfall.HENVIST -> {
behandlingValidationErrors.add(
InvalidProperty(
Expand Down Expand Up @@ -1064,15 +1060,32 @@ class BehandlingService(

fun setUtfall(
behandlingId: UUID,
utfallList: List<Utfall>,
utfall: Utfall?,
utfoerendeSaksbehandlerIdent: String
): Behandling {
val behandling = getBehandlingForUpdate(
behandlingId
)
val event =
behandling.setUtfall(
nyVerdi = utfallList,
nyVerdi = utfall,
saksbehandlerident = utfoerendeSaksbehandlerIdent
)
applicationEventPublisher.publishEvent(event)
return behandling
}

fun setUtfallSet(
behandlingId: UUID,
utfallSet: Set<Utfall>,
utfoerendeSaksbehandlerIdent: String
): Behandling {
val behandling = getBehandlingForUpdate(
behandlingId
)
val event =
behandling.setUtfallList(
nyVerdi = utfallSet,
saksbehandlerident = utfoerendeSaksbehandlerIdent
)
applicationEventPublisher.publishEvent(event)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,7 @@ class KlagebehandlingService(
private fun Klagebehandling.toCompletedKlagebehandling(): CompletedKlagebehandling = CompletedKlagebehandling(
behandlingId = id,
ytelseId = ytelse.id,
//TODO remove "first()"
utfallId = utfallSet.first().id,
utfallId = utfall!!.id,
hjemmelId = hjemler.first().id,
vedtakDate = avsluttetAvSaksbehandler!!,
sakenGjelder = behandlingMapper.getSakenGjelderView(sakenGjelder),
Expand All @@ -103,8 +102,7 @@ class KlagebehandlingService(
klagebehandlingRepository.findByAvsluttetIsNotNullAndFeilregistreringIsNull()
.filter {
it.klager.partId.value == partId &&
//TODO remove "first()"
muligAnkeUtfall.contains(it.utfallSet.first())
muligAnkeUtfall.contains(it.utfall)
}
.map { it.toMuligAnke() }

Expand All @@ -115,8 +113,7 @@ class KlagebehandlingService(
val klagebehandling =
klagebehandlingRepository.findByIdAndAvsluttetIsNotNull(klagebehandlingId) ?: return null
return if (
//TODO remove "first()"
klagebehandling.klager.partId.value == partId && muligAnkeUtfall.contains(klagebehandling.utfallSet.first())
klagebehandling.klager.partId.value == partId && muligAnkeUtfall.contains(klagebehandling.utfall)
) {
klagebehandling.toMuligAnke()
} else {
Expand Down Expand Up @@ -185,8 +182,7 @@ class KlagebehandlingService(
private fun Klagebehandling.toMuligAnke(): MuligAnke = MuligAnke(
this.id,
this.ytelse.toTema(),
//TODO remove "first()"
this.utfallSet.first(),
this.utfall!!,
this.innsendt!!,
this.avsluttetAvSaksbehandler!!,
this.klager.partId.value
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,7 @@ class BehandlingAvslutningService(
status = SakFinishedInput.Status.VIDERESENDT_TR,
nivaa = SakFinishedInput.Nivaa.KA,
typeResultat = SakFinishedInput.TypeResultat.INNSTILLING_2,
//TODO remove "first()"
utfall = SakFinishedInput.Utfall.valueOf(ankeutfallToInfotrygdutfall[behandling.utfallSet.first()]!!),
utfall = SakFinishedInput.Utfall.valueOf(ankeutfallToInfotrygdutfall[behandling.utfall]!!),
mottaker = SakFinishedInput.Mottaker.TRYGDERETTEN,
saksbehandlerIdent = behandling.tildeling!!.saksbehandlerident!!
)
Expand Down Expand Up @@ -145,8 +144,7 @@ class BehandlingAvslutningService(
nivaa = SakFinishedInput.Nivaa.KA,
typeResultat = SakFinishedInput.TypeResultat.RESULTAT,
utfall = SakFinishedInput.Utfall.valueOf(infotrygdKlageutfallToUtfall.entries.find { entry ->
//TODO remove "first()"
entry.value == behandling.utfallSet.first()
entry.value == behandling.utfall
}!!.key),
mottaker = SakFinishedInput.Mottaker.TRYGDEKONTOR,
saksbehandlerIdent = behandling.tildeling!!.saksbehandlerident!!
Expand Down Expand Up @@ -183,8 +181,7 @@ class BehandlingAvslutningService(
BehandlingDetaljer(
klagebehandlingAvsluttet = KlagebehandlingAvsluttetDetaljer(
avsluttet = behandling.avsluttetAvSaksbehandler!!,
//TODO remove "first()"
utfall = ExternalUtfall.valueOf(behandling.utfallSet.first().name),
utfall = ExternalUtfall.valueOf(behandling.utfall!!.name),
journalpostReferanser = hoveddokumenter.flatMap { it.journalposter }.map { it.journalpostId }
)
)
Expand All @@ -194,8 +191,7 @@ class BehandlingAvslutningService(
BehandlingDetaljer(
ankebehandlingAvsluttet = AnkebehandlingAvsluttetDetaljer(
avsluttet = behandling.avsluttetAvSaksbehandler!!,
//TODO remove "first()"
utfall = ExternalUtfall.valueOf(behandling.utfallSet.first().name),
utfall = ExternalUtfall.valueOf(behandling.utfall!!.name),
journalpostReferanser = hoveddokumenter.flatMap { it.journalposter }.map { it.journalpostId }
)
)
Expand All @@ -206,8 +202,7 @@ class BehandlingAvslutningService(
ankebehandlingAvsluttet = AnkebehandlingAvsluttetDetaljer(
avsluttet = behandling.avsluttetAvSaksbehandler!!,
//TODO: Se på utfallsliste når vi har den endelige for ankeITrygderetten
//TODO remove "first()"
utfall = ExternalUtfall.valueOf(behandling.utfallSet.first().name),
utfall = ExternalUtfall.valueOf(behandling.utfall!!.name),
journalpostReferanser = hoveddokumenter.flatMap { it.journalposter }.map { it.journalpostId }
)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,7 @@ fun Klagebehandling.mapToSkjemaV2(): BehandlingSkjemaV2 {
kildesystem = fagsystem.mapToSkjemaV2(),
saksdokumenter = saksdokumenter.mapToSkjemaV2(),
vedtak = BehandlingSkjemaV2.Vedtak(
//TODO remove "first()"
utfall = utfallSet.firstOrNull()?.mapToSkjemaV2(),
utfall = utfall?.mapToSkjemaV2(),
hjemler = registreringshjemler.map { it.mapToSkjemaV2() },
),
sattPaaVent = sattPaaVent?.from,
Expand Down
Loading

0 comments on commit e66dd32

Please sign in to comment.