Skip to content

Commit

Permalink
🐛 Behold tildeling nĂ„r spleis reberegner
Browse files Browse the repository at this point in the history
NĂ„r en saksbehandler hadde tildelt seg en sak, mistet de saken hvis
spleis reberegnet perioden, for eksempel pga. ny inntektsmelding.

Jeg tenker det er mer fremtidssikkert Ă„ legge reserver-kommandoen inn i
AvbrytCommand, selv om det ble hakket mer omstendelig og den ikke trengs
fra VedtaksperiodeForkastet.

Jeg sÄ ogsÄ pÄ Ä slippe Ä ha bÄde OppgaveService og OppgaveDao som
parametere, men de to er sÄpass forskjellige at vi fÄr komme tilbake til
det. Koden i reserver-kommandoen sÄ heller ikke sÄ flyttbar ut.

Co-authored-by: Eirik Gallefoss <[email protected]>
  • Loading branch information
havstein and ejgal committed Jun 19, 2024
1 parent 4f7845b commit 9ef2a35
Show file tree
Hide file tree
Showing 8 changed files with 77 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -257,11 +257,16 @@ internal class Kommandofabrikk(

private fun vedtaksperiodeReberegnet(hendelse: VedtaksperiodeReberegnet): VedtaksperiodeReberegnetCommand {
return VedtaksperiodeReberegnetCommand(
fĂždselsnummer = hendelse.fĂždselsnummer(),
vedtaksperiodeId = hendelse.vedtaksperiodeId(),
utbetalingDao = utbetalingDao,
periodehistorikkDao = periodehistorikkDao,
commandContextDao = commandContextDao,
oppgaveService = oppgaveService,
reservasjonDao = reservasjonDao,
tildelingDao = tildelingDao,
oppgaveDao = oppgaveDao,
totrinnsvurderingMediator = totrinnsvurderingMediator,
)
}

Expand Down Expand Up @@ -353,6 +358,10 @@ internal class Kommandofabrikk(
snapshotDao = snapshotDao,
snapshotClient = snapshotClient,
oppgaveService = oppgaveService,
reservasjonDao = reservasjonDao,
tildelingDao = tildelingDao,
oppgaveDao = oppgaveDao,
totrinnsvurderingMediator = totrinnsvurderingMediator,
)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,26 @@
package no.nav.helse.modell.kommando

import no.nav.helse.db.ReservasjonDao
import no.nav.helse.mediator.oppgave.OppgaveDao
import no.nav.helse.mediator.oppgave.OppgaveService
import no.nav.helse.modell.CommandContextDao
import no.nav.helse.modell.totrinnsvurdering.TotrinnsvurderingMediator
import no.nav.helse.spesialist.api.tildeling.TildelingDao
import java.util.UUID

internal class AvbrytCommand(
fĂždselsnummer: String,
vedtaksperiodeId: UUID,
commandContextDao: CommandContextDao,
oppgaveService: OppgaveService,
reservasjonDao: ReservasjonDao,
tildelingDao: TildelingDao,
oppgaveDao: OppgaveDao,
totrinnsvurderingMediator: TotrinnsvurderingMediator,
) : MacroCommand() {
override val commands: List<Command> =
listOf(
ReserverPersonHvisTildeltCommand(fĂždselsnummer, reservasjonDao, tildelingDao, oppgaveDao, totrinnsvurderingMediator),
AvbrytOppgaveCommand(vedtaksperiodeId, oppgaveService),
AvbrytContextCommand(vedtaksperiodeId, commandContextDao),
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package no.nav.helse.modell.vedtaksperiode

import com.fasterxml.jackson.databind.JsonNode
import no.nav.helse.db.ReservasjonDao
import no.nav.helse.mediator.Kommandofabrikk
import no.nav.helse.mediator.meldinger.Vedtaksperiodemelding
import no.nav.helse.mediator.oppgave.OppgaveDao
import no.nav.helse.mediator.oppgave.OppgaveService
import no.nav.helse.modell.CommandContextDao
import no.nav.helse.modell.SnapshotDao
Expand All @@ -12,8 +14,10 @@ import no.nav.helse.modell.kommando.MacroCommand
import no.nav.helse.modell.kommando.OppdaterSnapshotCommand
import no.nav.helse.modell.person.Person
import no.nav.helse.modell.person.PersonDao
import no.nav.helse.modell.totrinnsvurdering.TotrinnsvurderingMediator
import no.nav.helse.rapids_rivers.JsonMessage
import no.nav.helse.spesialist.api.snapshot.ISnapshotClient
import no.nav.helse.spesialist.api.tildeling.TildelingDao
import java.util.UUID

internal class VedtaksperiodeForkastet private constructor(
Expand Down Expand Up @@ -59,10 +63,23 @@ internal class VedtaksperiodeForkastetCommand(
snapshotDao: SnapshotDao,
snapshotClient: ISnapshotClient,
oppgaveService: OppgaveService,
reservasjonDao: ReservasjonDao,
tildelingDao: TildelingDao,
oppgaveDao: OppgaveDao,
totrinnsvurderingMediator: TotrinnsvurderingMediator,
) : MacroCommand() {
override val commands: List<Command> =
listOf(
AvbrytCommand(vedtaksperiodeId, commandContextDao, oppgaveService),
AvbrytCommand(
fĂždselsnummer,
vedtaksperiodeId,
commandContextDao,
oppgaveService,
reservasjonDao,
tildelingDao,
oppgaveDao,
totrinnsvurderingMediator,
),
OppdaterSnapshotCommand(
snapshotClient = snapshotClient,
snapshotDao = snapshotDao,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
package no.nav.helse.modell.vedtaksperiode

import com.fasterxml.jackson.databind.JsonNode
import no.nav.helse.db.ReservasjonDao
import no.nav.helse.mediator.Kommandofabrikk
import no.nav.helse.mediator.meldinger.Vedtaksperiodemelding
import no.nav.helse.mediator.oppgave.OppgaveDao
import no.nav.helse.mediator.oppgave.OppgaveService
import no.nav.helse.modell.CommandContextDao
import no.nav.helse.modell.kommando.AvbrytCommand
import no.nav.helse.modell.kommando.Command
import no.nav.helse.modell.kommando.MacroCommand
import no.nav.helse.modell.kommando.ReserverPersonHvisTildeltCommand
import no.nav.helse.modell.kommando.VedtaksperiodeReberegnetPeriodehistorikk
import no.nav.helse.modell.person.Person
import no.nav.helse.modell.totrinnsvurdering.TotrinnsvurderingMediator
import no.nav.helse.modell.utbetaling.UtbetalingDao
import no.nav.helse.rapids_rivers.JsonMessage
import no.nav.helse.spesialist.api.periodehistorikk.PeriodehistorikkDao
import no.nav.helse.spesialist.api.tildeling.TildelingDao
import java.util.UUID

internal class VedtaksperiodeReberegnet private constructor(
Expand All @@ -27,6 +32,7 @@ internal class VedtaksperiodeReberegnet private constructor(
vedtaksperiodeId = UUID.fromString(packet["vedtaksperiodeId"].asText()),
json = packet.toJson(),
)

internal constructor(jsonNode: JsonNode) : this(
id = UUID.fromString(jsonNode["@id"].asText()),
fĂždselsnummer = jsonNode["fĂždselsnummer"].asText(),
Expand All @@ -50,10 +56,15 @@ internal class VedtaksperiodeReberegnet private constructor(

internal class VedtaksperiodeReberegnetCommand(
vedtaksperiodeId: UUID,
fĂždselsnummer: String,
utbetalingDao: UtbetalingDao,
periodehistorikkDao: PeriodehistorikkDao,
commandContextDao: CommandContextDao,
oppgaveService: OppgaveService,
reservasjonDao: ReservasjonDao,
tildelingDao: TildelingDao,
oppgaveDao: OppgaveDao,
totrinnsvurderingMediator: TotrinnsvurderingMediator,
) : MacroCommand() {
override val commands: List<Command> =
listOf(
Expand All @@ -62,10 +73,22 @@ internal class VedtaksperiodeReberegnetCommand(
utbetalingDao = utbetalingDao,
periodehistorikkDao = periodehistorikkDao,
),
ReserverPersonHvisTildeltCommand(
fĂždselsnummer = fĂždselsnummer,
reservasjonDao = reservasjonDao,
tildelingDao = tildelingDao,
oppgaveDao = oppgaveDao,
totrinnsvurderingMediator = totrinnsvurderingMediator,
),
AvbrytCommand(
fĂždselsnummer = fĂždselsnummer,
vedtaksperiodeId = vedtaksperiodeId,
commandContextDao = commandContextDao,
oppgaveService = oppgaveService,
reservasjonDao = reservasjonDao,
tildelingDao = tildelingDao,
oppgaveDao = oppgaveDao,
totrinnsvurderingMediator = totrinnsvurderingMediator,
),
)
}
2 changes: 1 addition & 1 deletion spesialist-selve/src/test/kotlin/AbstractE2ETest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -1172,8 +1172,8 @@ internal abstract class AbstractE2ETest : AbstractDatabaseTest() {
val sisteOverstyring = testRapid.inspektĂžr.hendelser(overstyringHendelse).last()
val hendelseId = UUID.fromString(sisteOverstyring["@id"].asText())
hÄndterOverstyringIgangsatt(fÞdselsnummer, hendelseId)
hÄndterUtbetalingErstattet(aktÞrId, fÞdselsnummer, organisasjonsnummer, utbetalingId = UUID.randomUUID())
hÄndterVedtaksperiodeReberegnet(aktÞrId, fÞdselsnummer, organisasjonsnummer)
hÄndterUtbetalingErstattet(aktÞrId, fÞdselsnummer, organisasjonsnummer, utbetalingId = UUID.randomUUID())
}

private fun hÄndterOverstyringIgangsatt(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ internal class UtbetalingEndretE2ETest : AbstractE2ETest() {
tildelOppgave(oppgaveId, saksbehandlerOid)

val utbetalingId2 = UUID.randomUUID()
hÄndterUtbetalingErstattet(arbeidsgiverbelÞp = 20000, personbelÞp = 20000, utbetalingId = utbetalingId2)
hÄndterVedtaksperiodeReberegnet()
hÄndterUtbetalingErstattet(arbeidsgiverbelÞp = 20000, personbelÞp = 20000, utbetalingId = utbetalingId2)
spesialistBehandlerGodkjenningsbehovFremTilOppgave(
harRisikovurdering = true,
harOppdatertMetadata = true,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
package no.nav.helse.mediator.meldinger

import io.mockk.clearMocks
import io.mockk.every
import io.mockk.mockk
import io.mockk.verify
import no.nav.helse.Testdata.snapshot
import no.nav.helse.mediator.oppgave.OppgaveService
import no.nav.helse.modell.CommandContextDao
import no.nav.helse.modell.SnapshotDao
import no.nav.helse.modell.VedtakDao
import no.nav.helse.modell.kommando.CommandContext
import no.nav.helse.modell.person.PersonDao
import no.nav.helse.modell.vedtaksperiode.VedtaksperiodeForkastetCommand
import no.nav.helse.spesialist.api.snapshot.SnapshotClient
import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import java.util.UUID

Expand All @@ -27,7 +24,6 @@ internal class VedtaksperiodeForkastetCommandTest {
}

private val commandContextDao = mockk<CommandContextDao>(relaxed = true)
private val vedtakDao = mockk<VedtakDao>(relaxed = true)
private val personDao = mockk<PersonDao>(relaxed = true)
private val snapshotDao = mockk<SnapshotDao>(relaxed = true)
private val graphQLClient = mockk<SnapshotClient>(relaxed = true)
Expand All @@ -43,13 +39,12 @@ internal class VedtaksperiodeForkastetCommandTest {
snapshotDao = snapshotDao,
snapshotClient = graphQLClient,
oppgaveService = oppgaveService,
reservasjonDao = mockk(relaxed = true),
tildelingDao = mockk(relaxed = true),
oppgaveDao = mockk(relaxed = true),
totrinnsvurderingMediator = mockk(relaxed = true),
)

@BeforeEach
fun setup() {
clearMocks(commandContextDao, vedtakDao, snapshotDao, graphQLClient)
}

@Test
fun `avbryter kommandoer, oppdaterer snapshot og markerer vedtaksperiode som forkastet`() {
val snapshot = snapshot(fĂždselsnummer = FNR)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,32 @@
package no.nav.helse.modell.kommando

import io.mockk.clearMocks
import io.mockk.mockk
import io.mockk.verify
import no.nav.helse.mediator.oppgave.OppgaveService
import no.nav.helse.modell.CommandContextDao
import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import java.util.UUID

internal class AvbrytCommandTest {
private companion object {
private val VEDTAKSPERIODE = UUID.randomUUID()
private val CONTEXT = UUID.randomUUID()
private fun lagAvbrytCommand(fĂždselsnummer: String, vedtaksperiodeId: UUID, commandContextDao: CommandContextDao) = AvbrytCommand(
fĂždselsnummer = fĂždselsnummer,
vedtaksperiodeId = vedtaksperiodeId,
commandContextDao = commandContextDao,
oppgaveService = mockk<OppgaveService>(relaxed = true),
reservasjonDao = mockk(relaxed = true),
tildelingDao = mockk(relaxed = true),
oppgaveDao = mockk(relaxed = true),
totrinnsvurderingMediator = mockk(relaxed = true)
)
}

private val oppgaveService = mockk<OppgaveService>(relaxed = true)
private val commandContextDao = mockk<CommandContextDao>(relaxed = true)
private val context = CommandContext(CONTEXT)

private val command = AvbrytCommand(VEDTAKSPERIODE, commandContextDao, oppgaveService)

@BeforeEach
fun setup() {
clearMocks(commandContextDao)
}
private val command = lagAvbrytCommand("fnr", VEDTAKSPERIODE, commandContextDao)

@Test
fun `avbryter command context`() {
Expand Down

0 comments on commit 9ef2a35

Please sign in to comment.