Skip to content

Commit

Permalink
Hentverdi på løpendeDurationTransientFeltutleder
Browse files Browse the repository at this point in the history
  • Loading branch information
boerta committed Dec 1, 2023
1 parent 58ee4ee commit 242cd75
Showing 1 changed file with 19 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@ package no.nav.k9.los.nyoppgavestyring.transientfeltutleder
import no.nav.k9.los.nyoppgavestyring.query.db.OmrådeOgKode
import no.nav.k9.los.spi.felter.*
import org.postgresql.util.PGInterval
import java.time.Duration
import java.time.LocalDateTime

abstract class LøpendeDurationTransientFeltutleder(
/**
* Felter med durations som alltid skal summeres opp.
*
* ADVARSEL: Disse verdiene legges inn direkte inn i SQL uten
* uten prepared statement.
* prepared statement.
*/
val durationfelter: List<OmrådeOgKode> = listOf(),

Expand All @@ -19,7 +20,7 @@ abstract class LøpendeDurationTransientFeltutleder(
* til nå-tid. Det er tilstrekkelig at minst ett felt er true.
*
* ADVARSEL: Disse verdiene legges inn direkte inn i SQL uten
* uten prepared statement.
* prepared statement.
*/
valpendetidfelter: List<OmrådeOgKode> = listOf()
): TransientFeltutleder{
Expand Down Expand Up @@ -74,9 +75,22 @@ abstract class LøpendeDurationTransientFeltutleder(
}

override fun hentVerdi(input: HentVerdiInput): List<String> {
val verdi = input.oppgave.hentVerdi("K9", "løsbartAksjonspunkt")
val erTilBeslutter = (verdi != null && verdi == "5016").toString()
return listOf(erTilBeslutter)
val akkumulertDuration = durationfelter.map { områdeOgKode ->
val verdi = input.oppgave.hentVerdi(områdeOgKode.område!!, områdeOgKode.kode)
verdi?.let { Duration.parse(verdi) } ?: Duration.ZERO
}.reduce { d1, d2 -> d1 + d2}

val skalTelleTidPåSisteVersjon = løpendetidfelter.any { områdeOgKode ->
input.oppgave.hentVerdi(områdeOgKode.område!!, områdeOgKode.kode)?.let { it == "true" } ?: false
}

val løpendeDuration = if (skalTelleTidPåSisteVersjon) {
akkumulertDuration + Duration.between(input.now, input.oppgave.endretTidspunkt)
} else {
akkumulertDuration
}

return listOf(løpendeDuration.toString())
}

override fun where(input: WhereInput): SqlMedParams {
Expand Down

0 comments on commit 242cd75

Please sign in to comment.