Skip to content

Commit

Permalink
flere oppgavetekster - pågående arbeid
Browse files Browse the repository at this point in the history
  • Loading branch information
Jan Kroken committed Nov 8, 2023
1 parent 197aae2 commit 18824c6
Show file tree
Hide file tree
Showing 8 changed files with 51 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ sealed class GodskrivOpptjening {
Oppgave.Transient(
detaljer = OppgaveDetaljer.MottakerOgTekst(
oppgavemottaker = omsorgsyter,
oppgavetekst = Oppgave.kunneIkkeBehandlesAutomatisk()
oppgavetekst = setOf(Oppgave.kunneIkkeBehandlesAutomatisk())
),
behandlingId = behandlingId,
meldingId = meldingId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ sealed class Oppgave {

val status get() = statushistorikk.last()
val mottaker get() = detaljer.mottaker()
val oppgavetekst get() = detaljer.oppgavetekst()
val oppgavetekst : Set<String> get() = detaljer.oppgavetekst().toSet()

companion object Oppgavetekster {
fun flereOmsorgsytereMedLikeMyeOmsorgFødselsår(omsorgsmottaker: String): String =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ package no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.op

import com.fasterxml.jackson.annotation.JsonTypeInfo
import com.fasterxml.jackson.annotation.JsonTypeName
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
import com.fasterxml.jackson.databind.annotation.JsonSerialize

@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
Expand All @@ -11,18 +13,21 @@ import com.fasterxml.jackson.annotation.JsonTypeName
sealed class OppgaveDetaljer {

abstract fun mottaker(): String
abstract fun oppgavetekst(): String
abstract fun oppgavetekst(): Set<String>

@JsonTypeName("MottakerOgTekst")
data class MottakerOgTekst(
val oppgavemottaker: String,
val oppgavetekst: String,
val oppgavetekst: Set<String>,
) : OppgaveDetaljer() {
override fun mottaker(): String {
return oppgavemottaker
}

override fun oppgavetekst(): String {
// TODO: Fikse serialiseringen
@JsonDeserialize(`as` = Set::class)
@JsonSerialize(`as` = Set::class)
override fun oppgavetekst(): Set<String> {
return oppgavetekst
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,48 +41,48 @@ class OppgaveService(

@Transactional(rollbackFor = [Throwable::class], propagation = Propagation.REQUIRED)
fun opprettOppgaveHvisNødvendig(behandling: FullførtBehandling) {
behandling.hentOppgaveopplysninger().map { oppgaveopplysning ->
//TODO legg alle oppgavetekster for den samme behandlingen i en og samme oppgave
when (oppgaveopplysning) {
is Oppgaveopplysninger.Generell -> {
val oppgavemottakerHarOppgaveForÅr =
oppgaveEksistererForOmsorgsyterOgÅr(
oppgaveopplysning.oppgavemottaker,
behandling.omsorgsAr
)
val omsorgsMottakerHarOppgaveForÅr =
oppgaveEksistererForOmsorgsmottakerOgÅr(
behandling.omsorgsmottaker,
behandling.omsorgsAr
)
val omsorgsMottakerHarOppgaveForÅr =
oppgaveEksistererForOmsorgsmottakerOgÅr(
behandling.omsorgsmottaker,
behandling.omsorgsAr
)

if (!oppgavemottakerHarOppgaveForÅr && !omsorgsMottakerHarOppgaveForÅr) {
opprett(
Oppgave.Transient(
behandlingId = behandling.id,
meldingId = behandling.meldingId,
detaljer = OppgaveDetaljer.MottakerOgTekst(
oppgavemottaker = oppgaveopplysning.oppgavemottaker,
oppgavetekst = oppgaveopplysning.oppgaveTekst
)
fun oppgavemottakerHarOppgaveForÅr(oppgaveopplysning: Oppgaveopplysninger.Generell): Boolean {
return oppgaveEksistererForOmsorgsyterOgÅr(
oppgaveopplysning.oppgavemottaker,
behandling.omsorgsAr
)
}
if (!omsorgsMottakerHarOppgaveForÅr) {
behandling.hentOppgaveopplysninger()
.filterIsInstance<Oppgaveopplysninger.Generell>()
.filter { oppgaveopplysning -> oppgavemottakerHarOppgaveForÅr(oppgaveopplysning) }
.groupBy { it.oppgavemottaker }
.mapValues { it.value.map { it.oppgaveTekst }.toSet() }
.forEach { (oppgavemottaker, oppgaveTekster) ->
//TODO legg alle oppgavetekster for den samme behandlingen i en og samme oppgave
opprett(
Oppgave.Transient(
behandlingId = behandling.id,
meldingId = behandling.meldingId,
detaljer = OppgaveDetaljer.MottakerOgTekst(
oppgavemottaker = oppgavemottaker,
oppgavetekst = oppgaveTekster
)
)
}
)
}

Oppgaveopplysninger.Ingen -> {
//noop
}
}
}
}


fun process(): Oppgave? {
return transactionTemplate.execute {
oppgaveRepo.finnNesteUprosesserte()?.let { oppgave ->
Mdc.scopedMdc(oppgave.correlationId) {
Mdc.scopedMdc(oppgave.innlesingId) {
try {
val oppgaveTekst : Set<String> = oppgave.oppgavetekst
transactionTemplate.execute {
log.info("Oppretter oppgave")
personOppslag.hentAktørId(oppgave.mottaker).let { aktørId ->
Expand All @@ -92,7 +92,8 @@ class OppgaveService(
oppgaveKlient.opprettOppgave(
aktoerId = aktørId,
sakId = omsorgssak.sakId,
beskrivelse = oppgave.oppgavetekst,
// TODO: Skal ikke kunne være tom
beskrivelse = oppgaveTekst.first(),
tildeltEnhetsnr = omsorgssak.enhet
).let { oppgaveId ->
oppgave.ferdig(oppgaveId).also {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ sealed class PersongrunnlagMelding {
Oppgave.Transient(
detaljer = OppgaveDetaljer.MottakerOgTekst(
oppgavemottaker = innhold.omsorgsyter,
oppgavetekst = Oppgave.kunneIkkeBehandlesAutomatisk()
oppgavetekst = setOf(Oppgave.kunneIkkeBehandlesAutomatisk())
),
behandlingId = null,
meldingId = id,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@ class GodskrivOpptjeningServiceTest : SpringContextTest.NoKafka() {
assertEquals(
OppgaveDetaljer.MottakerOgTekst(
oppgavemottaker = behandling.omsorgsyter,
oppgavetekst = """Godskriving omsorgspoeng: Manuell behandling. Godskrivingen kunne ikke behandles av batch."""
oppgavetekst = setOf("""Godskriving omsorgspoeng: Manuell behandling. Godskrivingen kunne ikke behandles av batch.""")
),
oppgave.detaljer
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ class OppgaveopprettelseTest : SpringContextTest.NoKafka() {
assertEquals(
oppgave.detaljer, OppgaveDetaljer.MottakerOgTekst(
oppgavemottaker = "04010012797",
oppgavetekst = """Godskr. omsorgspoeng, flere mottakere: Flere personer har mottatt barnetrygd samme år for barnet under 6 år med fnr 07081812345. Den bruker som oppgaven gjelder mottok barnetrygd i minst seks måneder, og hadde barnetrygd i desember måned. Bruker med fnr 12345678910 mottok også barnetrygd for 6 måneder i samme år. Vurder hvem som skal ha omsorgspoengene."""
oppgavetekst = setOf("""Godskr. omsorgspoeng, flere mottakere: Flere personer har mottatt barnetrygd samme år for barnet under 6 år med fnr 07081812345. Den bruker som oppgaven gjelder mottok barnetrygd i minst seks måneder, og hadde barnetrygd i desember måned. Bruker med fnr 12345678910 mottok også barnetrygd for 6 måneder i samme år. Vurder hvem som skal ha omsorgspoengene.""")
)
)
}
Expand Down Expand Up @@ -225,7 +225,7 @@ class OppgaveopprettelseTest : SpringContextTest.NoKafka() {
assertEquals(
oppgave.detaljer, OppgaveDetaljer.MottakerOgTekst(
oppgavemottaker = "12345678910",
oppgavetekst = """Godskr. omsorgspoeng, flere mottakere: Flere personer har mottatt barnetrygd samme år for barnet under 6 år med fnr 07081812345. Den bruker som oppgaven gjelder mottok barnetrygd i minst seks måneder, og hadde barnetrygd i desember måned. Bruker med fnr 04010012797 mottok også barnetrygd for 6 måneder i samme år. Vurder hvem som skal ha omsorgspoengene."""
oppgavetekst = setOf("""Godskr. omsorgspoeng, flere mottakere: Flere personer har mottatt barnetrygd samme år for barnet under 6 år med fnr 07081812345. Den bruker som oppgaven gjelder mottok barnetrygd i minst seks måneder, og hadde barnetrygd i desember måned. Bruker med fnr 04010012797 mottok også barnetrygd for 6 måneder i samme år. Vurder hvem som skal ha omsorgspoengene.""")
)
)
}
Expand Down Expand Up @@ -306,7 +306,7 @@ class OppgaveopprettelseTest : SpringContextTest.NoKafka() {
assertEquals(
oppgave.detaljer, OppgaveDetaljer.MottakerOgTekst(
oppgavemottaker = "04010012797",
oppgavetekst = """Godskr. omsorgspoeng, flere mottakere: Flere personer som har mottatt barnetrygd samme år for barnet med fnr 01052012345 i barnets fødselsår. Vurder hvem som skal ha omsorgspoengene."""
oppgavetekst = setOf("""Godskr. omsorgspoeng, flere mottakere: Flere personer som har mottatt barnetrygd samme år for barnet med fnr 01052012345 i barnets fødselsår. Vurder hvem som skal ha omsorgspoengene.""")
)
)
}
Expand Down Expand Up @@ -370,7 +370,7 @@ class OppgaveopprettelseTest : SpringContextTest.NoKafka() {
assertEquals(
oppgave.detaljer, OppgaveDetaljer.MottakerOgTekst(
oppgavemottaker = "12345678910",
oppgavetekst = """Godskr. omsorgspoeng, flere mottakere: Flere personer har mottatt barnetrygd samme år for barnet under 6 år med fnr 07081812345. Den bruker som oppgaven gjelder mottok barnetrygd i minst seks måneder, og hadde barnetrygd i desember måned. Bruker med fnr 04010012797 mottok også barnetrygd for 6 måneder i samme år. Vurder hvem som skal ha omsorgspoengene."""
oppgavetekst = setOf("""Godskr. omsorgspoeng, flere mottakere: Flere personer har mottatt barnetrygd samme år for barnet under 6 år med fnr 07081812345. Den bruker som oppgaven gjelder mottok barnetrygd i minst seks måneder, og hadde barnetrygd i desember måned. Bruker med fnr 04010012797 mottok også barnetrygd for 6 måneder i samme år. Vurder hvem som skal ha omsorgspoengene.""")
)
)
}
Expand Down Expand Up @@ -502,7 +502,7 @@ class OppgaveopprettelseTest : SpringContextTest.NoKafka() {
assertEquals(
oppgave.detaljer, OppgaveDetaljer.MottakerOgTekst(
oppgavemottaker = "12345678910",
oppgavetekst = """Godskr. omsorgspoeng, flere mottakere: Flere personer har mottatt barnetrygd samme år for barnet under 6 år med fnr 07081812345. Den bruker som oppgaven gjelder mottok barnetrygd i minst seks måneder, og hadde barnetrygd i desember måned. Bruker med fnr 04010012797 mottok også barnetrygd for 6 måneder i samme år. Vurder hvem som skal ha omsorgspoengene."""
oppgavetekst = setOf("""Godskr. omsorgspoeng, flere mottakere: Flere personer har mottatt barnetrygd samme år for barnet under 6 år med fnr 07081812345. Den bruker som oppgaven gjelder mottok barnetrygd i minst seks måneder, og hadde barnetrygd i desember måned. Bruker med fnr 04010012797 mottok også barnetrygd for 6 måneder i samme år. Vurder hvem som skal ha omsorgspoengene.""")
)
)
}
Expand Down Expand Up @@ -595,7 +595,7 @@ class OppgaveopprettelseTest : SpringContextTest.NoKafka() {
assertEquals(
oppgave.detaljer, OppgaveDetaljer.MottakerOgTekst(
oppgavemottaker = "12345678910",
oppgavetekst = """Godskr. omsorgspoeng, flere mottakere: Flere personer har mottatt barnetrygd samme år for barnet under 6 år med fnr 07081812345. Den bruker som oppgaven gjelder mottok barnetrygd i minst seks måneder, og hadde barnetrygd i desember måned. Bruker med fnr 04010012797 mottok også barnetrygd for 6 måneder i samme år. Vurder hvem som skal ha omsorgspoengene."""
oppgavetekst = setOf("""Godskr. omsorgspoeng, flere mottakere: Flere personer har mottatt barnetrygd samme år for barnet under 6 år med fnr 07081812345. Den bruker som oppgaven gjelder mottok barnetrygd i minst seks måneder, og hadde barnetrygd i desember måned. Bruker med fnr 04010012797 mottok også barnetrygd for 6 måneder i samme år. Vurder hvem som skal ha omsorgspoengene.""")
)
)
}
Expand All @@ -609,7 +609,7 @@ class OppgaveopprettelseTest : SpringContextTest.NoKafka() {
assertEquals(
oppgave.detaljer, OppgaveDetaljer.MottakerOgTekst(
oppgavemottaker = "12345678910",
oppgavetekst = """Godskr. omsorgspoeng, flere mottakere: Flere personer har mottatt barnetrygd samme år for barnet under 6 år med fnr 07081812345. Den bruker som oppgaven gjelder mottok barnetrygd i minst seks måneder, og hadde barnetrygd i desember måned. Bruker med fnr 04010012797 mottok også barnetrygd for 6 måneder i samme år. Vurder hvem som skal ha omsorgspoengene."""
oppgavetekst = setOf("""Godskr. omsorgspoeng, flere mottakere: Flere personer har mottatt barnetrygd samme år for barnet under 6 år med fnr 07081812345. Den bruker som oppgaven gjelder mottok barnetrygd i minst seks måneder, og hadde barnetrygd i desember måned. Bruker med fnr 04010012797 mottok også barnetrygd for 6 måneder i samme år. Vurder hvem som skal ha omsorgspoengene.""")
)
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -384,7 +384,7 @@ class PersongrunnlagMeldingProsesseringTest : SpringContextTest.NoKafka() {
assertEquals(
OppgaveDetaljer.MottakerOgTekst(
oppgavemottaker = "12345678910",
oppgavetekst = """Godskriving omsorgspoeng: Manuell behandling. Godskrivingen kunne ikke behandles av batch."""
oppgavetekst = setOf("""Godskriving omsorgspoeng: Manuell behandling. Godskrivingen kunne ikke behandles av batch.""")
),
oppgave.detaljer
)
Expand Down

0 comments on commit 18824c6

Please sign in to comment.