diff --git a/spesialist-modell/src/main/kotlin/no/nav/helse/modell/periodehistorikk/HistorikkinnslagDto.kt b/spesialist-modell/src/main/kotlin/no/nav/helse/modell/periodehistorikk/HistorikkinnslagDto.kt index f1be01cc6..654fe3c0e 100644 --- a/spesialist-modell/src/main/kotlin/no/nav/helse/modell/periodehistorikk/HistorikkinnslagDto.kt +++ b/spesialist-modell/src/main/kotlin/no/nav/helse/modell/periodehistorikk/HistorikkinnslagDto.kt @@ -51,6 +51,8 @@ sealed interface HistorikkinnslagDto { TotrinnsvurderingAutomatiskRetur(tidspunkt = LocalDateTime.now()) fun automatiskBehandlingStanset(): AutomatiskBehandlingStanset = AutomatiskBehandlingStanset(tidspunkt = LocalDateTime.now()) + + fun vedtaksperiodeReberegnet(): VedtaksperiodeReberegnet = VedtaksperiodeReberegnet(tidspunkt = LocalDateTime.now()) } } @@ -118,3 +120,10 @@ data class AutomatiskBehandlingStanset( override val notat: NotatDto? = null override val saksbehandler: SaksbehandlerDto? = null } + +data class VedtaksperiodeReberegnet( + override val tidspunkt: LocalDateTime, +) : HistorikkinnslagDto { + override val notat: NotatDto? = null + override val saksbehandler: SaksbehandlerDto? = null +} diff --git a/spesialist-selve/src/main/kotlin/no/nav/helse/db/HistorikkinnslagRepository.kt b/spesialist-selve/src/main/kotlin/no/nav/helse/db/HistorikkinnslagRepository.kt index fba0968e6..85379da74 100644 --- a/spesialist-selve/src/main/kotlin/no/nav/helse/db/HistorikkinnslagRepository.kt +++ b/spesialist-selve/src/main/kotlin/no/nav/helse/db/HistorikkinnslagRepository.kt @@ -10,6 +10,11 @@ interface HistorikkinnslagRepository { oppgaveId: Long, ) + fun lagre( + historikkinnslag: HistorikkinnslagDto, + generasjonId: UUID, + ) + fun lagre( historikkType: PeriodehistorikkType, saksbehandlerOid: UUID? = null, diff --git a/spesialist-selve/src/main/kotlin/no/nav/helse/db/NotatDao.kt b/spesialist-selve/src/main/kotlin/no/nav/helse/db/NotatDao.kt index 0eeb9f5ed..7f4b2fb37 100644 --- a/spesialist-selve/src/main/kotlin/no/nav/helse/db/NotatDao.kt +++ b/spesialist-selve/src/main/kotlin/no/nav/helse/db/NotatDao.kt @@ -7,7 +7,10 @@ import org.slf4j.LoggerFactory import java.util.UUID import javax.sql.DataSource -class NotatDao(private val dataSource: DataSource) : HelseDao(dataSource), NotatRepository { +class NotatDao( + private val dataSource: DataSource, +) : HelseDao(dataSource), + NotatRepository { private companion object { private val log = LoggerFactory.getLogger(NotatDao::class.java) } @@ -15,12 +18,12 @@ class NotatDao(private val dataSource: DataSource) : HelseDao(dataSource), Notat override fun lagreForOppgaveId( oppgaveId: Long, tekst: String, - saksbehandler_oid: UUID, + saksbehandlerOid: UUID, notatType: NotatType, ): Long? { - log.info("{} lagrer {} notat for oppgaveId {}", saksbehandler_oid, notatType, oppgaveId) + log.info("{} lagrer {} notat for oppgaveId {}", saksbehandlerOid, notatType, oppgaveId) return sessionOf(dataSource).use { session -> - TransactionalNotatDao(session).lagreForOppgaveId(oppgaveId, tekst, saksbehandler_oid, notatType) + TransactionalNotatDao(session).lagreForOppgaveId(oppgaveId, tekst, saksbehandlerOid, notatType) } } } diff --git a/spesialist-selve/src/main/kotlin/no/nav/helse/db/NotatRepository.kt b/spesialist-selve/src/main/kotlin/no/nav/helse/db/NotatRepository.kt index 8ec4ef90c..63d4e3251 100644 --- a/spesialist-selve/src/main/kotlin/no/nav/helse/db/NotatRepository.kt +++ b/spesialist-selve/src/main/kotlin/no/nav/helse/db/NotatRepository.kt @@ -7,7 +7,7 @@ interface NotatRepository { fun lagreForOppgaveId( oppgaveId: Long, tekst: String, - saksbehandler_oid: UUID, + saksbehandlerOid: UUID, notatType: NotatType = NotatType.Generelt, ): Long? } diff --git a/spesialist-selve/src/main/kotlin/no/nav/helse/db/PgHistorikkinnslagRepository.kt b/spesialist-selve/src/main/kotlin/no/nav/helse/db/PgHistorikkinnslagRepository.kt index a48b4f7a1..f62e79e04 100644 --- a/spesialist-selve/src/main/kotlin/no/nav/helse/db/PgHistorikkinnslagRepository.kt +++ b/spesialist-selve/src/main/kotlin/no/nav/helse/db/PgHistorikkinnslagRepository.kt @@ -2,16 +2,7 @@ package no.nav.helse.db import kotliquery.sessionOf import no.nav.helse.mediator.oppgave.OppgaveDao -import no.nav.helse.modell.periodehistorikk.AutomatiskBehandlingStanset -import no.nav.helse.modell.periodehistorikk.AvventerTotrinnsvurdering -import no.nav.helse.modell.periodehistorikk.FjernetFraPåVent import no.nav.helse.modell.periodehistorikk.HistorikkinnslagDto -import no.nav.helse.modell.periodehistorikk.LagtPåVent -import no.nav.helse.modell.periodehistorikk.TotrinnsvurderingAutomatiskRetur -import no.nav.helse.modell.periodehistorikk.TotrinnsvurderingFerdigbehandlet -import no.nav.helse.modell.periodehistorikk.TotrinnsvurderingRetur -import no.nav.helse.spesialist.api.graphql.schema.NotatType -import no.nav.helse.spesialist.api.notat.NotatApiDao import no.nav.helse.spesialist.api.periodehistorikk.PeriodehistorikkType import java.util.UUID import javax.sql.DataSource @@ -19,7 +10,6 @@ import javax.sql.DataSource class PgHistorikkinnslagRepository( private val dataSource: DataSource, ) : HistorikkinnslagRepository { - private val notatDao: NotatApiDao = NotatApiDao(dataSource) private val oppgaveDao = OppgaveDao(dataSource) override fun lagre( @@ -27,46 +17,15 @@ class PgHistorikkinnslagRepository( oppgaveId: Long, ) { val generasjonId = oppgaveDao.finnGenerasjonId(oppgaveId) - when (historikkinnslag) { - is FjernetFraPåVent -> lagre(historikkinnslag, generasjonId, null) - is LagtPåVent -> { - val notatId = - historikkinnslag.notat?.let { notat -> - notatDao - .opprettNotatForOppgaveId( - oppgaveId = notat.oppgaveId, - tekst = notat.tekst, - saksbehandlerOid = historikkinnslag.saksbehandler.oid, - type = NotatType.PaaVent, - )?.toInt() - } - lagre(historikkinnslag, generasjonId, notatId) - } - is TotrinnsvurderingFerdigbehandlet -> lagre(historikkinnslag, generasjonId, null) - is AvventerTotrinnsvurdering -> lagre(historikkinnslag, generasjonId, null) - is TotrinnsvurderingAutomatiskRetur -> lagre(historikkinnslag, generasjonId, null) - is TotrinnsvurderingRetur -> { - val notatId = - notatDao - .opprettNotatForOppgaveId( - oppgaveId = historikkinnslag.notat.oppgaveId, - tekst = historikkinnslag.notat.tekst, - saksbehandlerOid = historikkinnslag.saksbehandler.oid, - type = NotatType.PaaVent, - )?.toInt() - lagre(historikkinnslag, generasjonId, notatId) - } - is AutomatiskBehandlingStanset -> lagre(historikkinnslag, generasjonId, null) - } + lagre(historikkinnslag, generasjonId) } - private fun lagre( + override fun lagre( historikkinnslag: HistorikkinnslagDto, generasjonId: UUID, - notatId: Int?, ) { - sessionOf(dataSource).use { session -> - TransactionalPeriodehistorikkDao(session).lagre(historikkinnslag, generasjonId, notatId) + sessionOf(dataSource, returnGeneratedKey = true).use { session -> + TransactionalPeriodehistorikkDao(session).lagre(historikkinnslag, generasjonId) } } diff --git a/spesialist-selve/src/main/kotlin/no/nav/helse/db/TransactionalNotatDao.kt b/spesialist-selve/src/main/kotlin/no/nav/helse/db/TransactionalNotatDao.kt index d38a64f57..a22d53ce4 100644 --- a/spesialist-selve/src/main/kotlin/no/nav/helse/db/TransactionalNotatDao.kt +++ b/spesialist-selve/src/main/kotlin/no/nav/helse/db/TransactionalNotatDao.kt @@ -6,11 +6,13 @@ import no.nav.helse.spesialist.api.graphql.schema.NotatType import org.intellij.lang.annotations.Language import java.util.UUID -class TransactionalNotatDao(private val session: Session) : NotatRepository { +class TransactionalNotatDao( + private val session: Session, +) : NotatRepository { override fun lagreForOppgaveId( oppgaveId: Long, tekst: String, - saksbehandler_oid: UUID, + saksbehandlerOid: UUID, notatType: NotatType, ): Long? { @Language("PostgreSQL") @@ -33,7 +35,7 @@ class TransactionalNotatDao(private val session: Session) : NotatRepository { mapOf( "oppgave_id" to oppgaveId, "tekst" to tekst, - "saksbehandler_oid" to saksbehandler_oid, + "saksbehandler_oid" to saksbehandlerOid, "type" to notatType.name, ), ).asUpdateAndReturnGeneratedKey, diff --git a/spesialist-selve/src/main/kotlin/no/nav/helse/db/TransactionalPeriodehistorikkDao.kt b/spesialist-selve/src/main/kotlin/no/nav/helse/db/TransactionalPeriodehistorikkDao.kt index 93119ee02..1c6a3acd8 100644 --- a/spesialist-selve/src/main/kotlin/no/nav/helse/db/TransactionalPeriodehistorikkDao.kt +++ b/spesialist-selve/src/main/kotlin/no/nav/helse/db/TransactionalPeriodehistorikkDao.kt @@ -10,6 +10,8 @@ import no.nav.helse.modell.periodehistorikk.LagtPåVent import no.nav.helse.modell.periodehistorikk.TotrinnsvurderingAutomatiskRetur import no.nav.helse.modell.periodehistorikk.TotrinnsvurderingFerdigbehandlet import no.nav.helse.modell.periodehistorikk.TotrinnsvurderingRetur +import no.nav.helse.modell.periodehistorikk.VedtaksperiodeReberegnet +import no.nav.helse.spesialist.api.graphql.schema.NotatType import no.nav.helse.spesialist.api.periodehistorikk.PeriodehistorikkType import org.intellij.lang.annotations.Language import java.util.UUID @@ -22,6 +24,46 @@ class TransactionalPeriodehistorikkDao( oppgaveId: Long, ): Unit = throw UnsupportedOperationException() + override fun lagre( + historikkinnslag: HistorikkinnslagDto, + generasjonId: UUID, + ) { + when (historikkinnslag) { + is FjernetFraPåVent -> lagre(historikkinnslag, generasjonId, null) + is LagtPåVent -> { + val notatId = + historikkinnslag.notat?.let { notat -> + TransactionalNotatDao(session) + .lagreForOppgaveId( + oppgaveId = notat.oppgaveId, + tekst = notat.tekst, + saksbehandlerOid = historikkinnslag.saksbehandler.oid, + notatType = NotatType.PaaVent, + )?.toInt() + } + lagre(historikkinnslag, generasjonId, notatId) + } + + is TotrinnsvurderingFerdigbehandlet -> lagre(historikkinnslag, generasjonId, null) + is AvventerTotrinnsvurdering -> lagre(historikkinnslag, generasjonId, null) + is TotrinnsvurderingAutomatiskRetur -> lagre(historikkinnslag, generasjonId, null) + is TotrinnsvurderingRetur -> { + val notatId = + TransactionalNotatDao(session) + .lagreForOppgaveId( + oppgaveId = historikkinnslag.notat.oppgaveId, + tekst = historikkinnslag.notat.tekst, + saksbehandlerOid = historikkinnslag.saksbehandler.oid, + notatType = NotatType.Retur, + )?.toInt() + lagre(historikkinnslag, generasjonId, notatId) + } + + is AutomatiskBehandlingStanset -> lagre(historikkinnslag, generasjonId, null) + is VedtaksperiodeReberegnet -> lagre(historikkinnslag, generasjonId, null) + } + } + internal fun lagre( historikkinnslag: HistorikkinnslagDto, generasjonId: UUID, @@ -55,6 +97,7 @@ class TransactionalPeriodehistorikkDao( is TotrinnsvurderingRetur -> "TOTRINNSVURDERING_RETUR" // TODO: Mangler å migrere typen i databasen is TotrinnsvurderingAutomatiskRetur -> "TOTRINNSVURDERING_RETUR" // TODO: Mangler å migrere typen i databasen is AutomatiskBehandlingStanset -> "STANS_AUTOMATISK_BEHANDLING" // TODO: Mangler å migrere typen i databasen + is VedtaksperiodeReberegnet -> "VEDTAKSPERIODE_REBEREGNET" // TODO: Mangler å migrere typen i databasen } override fun lagre( diff --git a/spesialist-selve/src/main/kotlin/no/nav/helse/mediator/Kommandofabrikk.kt b/spesialist-selve/src/main/kotlin/no/nav/helse/mediator/Kommandofabrikk.kt index 3ec44445c..625a578e7 100644 --- a/spesialist-selve/src/main/kotlin/no/nav/helse/mediator/Kommandofabrikk.kt +++ b/spesialist-selve/src/main/kotlin/no/nav/helse/mediator/Kommandofabrikk.kt @@ -61,6 +61,7 @@ import no.nav.helse.modell.utbetaling.UtbetalingEndretCommand import no.nav.helse.modell.vedtaksperiode.GenerasjonService import no.nav.helse.modell.vedtaksperiode.GodkjenningsbehovCommand import no.nav.helse.modell.vedtaksperiode.GodkjenningsbehovData +import no.nav.helse.modell.vedtaksperiode.Vedtaksperiode import no.nav.helse.modell.vedtaksperiode.VedtaksperiodeForkastet import no.nav.helse.modell.vedtaksperiode.VedtaksperiodeForkastetCommand import no.nav.helse.modell.vedtaksperiode.VedtaksperiodeNyUtbetaling @@ -208,12 +209,12 @@ internal class Kommandofabrikk( internal fun vedtaksperiodeReberegnet( hendelse: VedtaksperiodeReberegnet, + vedtaksperiode: Vedtaksperiode, session: TransactionalSession, ): VedtaksperiodeReberegnetCommand = VedtaksperiodeReberegnetCommand( fødselsnummer = hendelse.fødselsnummer(), - vedtaksperiodeId = hendelse.vedtaksperiodeId(), - utbetalingRepository = TransactionalUtbetalingDao(session), + vedtaksperiode = vedtaksperiode, historikkinnslagRepository = TransactionalPeriodehistorikkDao(session), commandContextRepository = TransactionalCommandContextDao(session), oppgaveService = transaksjonellOppgaveService(session), diff --git a/spesialist-selve/src/main/kotlin/no/nav/helse/modell/kommando/VedtaksperiodeReberegnetPeriodehistorikk.kt b/spesialist-selve/src/main/kotlin/no/nav/helse/modell/kommando/VedtaksperiodeReberegnetPeriodehistorikk.kt index 24e383da7..6b2c34272 100644 --- a/spesialist-selve/src/main/kotlin/no/nav/helse/modell/kommando/VedtaksperiodeReberegnetPeriodehistorikk.kt +++ b/spesialist-selve/src/main/kotlin/no/nav/helse/modell/kommando/VedtaksperiodeReberegnetPeriodehistorikk.kt @@ -1,36 +1,19 @@ package no.nav.helse.modell.kommando import no.nav.helse.db.HistorikkinnslagRepository -import no.nav.helse.db.UtbetalingRepository -import no.nav.helse.spesialist.api.periodehistorikk.PeriodehistorikkType -import org.slf4j.LoggerFactory -import java.util.UUID +import no.nav.helse.modell.periodehistorikk.HistorikkinnslagDto +import no.nav.helse.modell.vedtaksperiode.Vedtaksperiode internal class VedtaksperiodeReberegnetPeriodehistorikk( - private val vedtaksperiodeId: UUID, - private val utbetalingRepository: UtbetalingRepository, + private val vedtaksperiode: Vedtaksperiode, private val historikkinnslagRepository: HistorikkinnslagRepository, ) : Command { - private val sikkerLogg = LoggerFactory.getLogger("tjenestekall") - override fun execute(context: CommandContext): Boolean { - val utbetalinger = utbetalingRepository.utbetalingerForVedtaksperiode(vedtaksperiodeId) - val utbetalingId = utbetalinger.firstOrNull()?.utbetalingId - - if (utbetalingId != null) { - sikkerLogg.info( - "Vedtaksperiode reberegnet lagres som periodehistorikk på vedtaksperiode {} med utbetalingId {}", - vedtaksperiodeId, - utbetalingId, - ) - historikkinnslagRepository.lagre(PeriodehistorikkType.VEDTAKSPERIODE_REBEREGNET, null, utbetalingId) - } else { - sikkerLogg.info( - "Kunne ikke legge til periodehistorikk ved reberegnet vedtaksperiode. Finner ikke utbetalingId for vedtaksperiodeId {} ", - vedtaksperiodeId, - ) - } - + val innslag = HistorikkinnslagDto.vedtaksperiodeReberegnet() + historikkinnslagRepository.lagre( + historikkinnslag = innslag, + generasjonId = vedtaksperiode.gjeldendeGenerasjonId, + ) return true } } diff --git a/spesialist-selve/src/main/kotlin/no/nav/helse/modell/vedtaksperiode/Vedtaksperiode.kt b/spesialist-selve/src/main/kotlin/no/nav/helse/modell/vedtaksperiode/Vedtaksperiode.kt index 272b2bba0..1a074b1a0 100644 --- a/spesialist-selve/src/main/kotlin/no/nav/helse/modell/vedtaksperiode/Vedtaksperiode.kt +++ b/spesialist-selve/src/main/kotlin/no/nav/helse/modell/vedtaksperiode/Vedtaksperiode.kt @@ -28,19 +28,19 @@ internal class Vedtaksperiode private constructor( private val gjeldendeUtbetalingId get() = gjeldendeGenerasjon.utbetalingId internal val gjeldendeSkjæringstidspunkt get() = gjeldendeGenerasjon.skjæringstidspunkt() internal val gjeldendeBehandlingId get() = gjeldendeGenerasjon.spleisBehandlingId() + internal val gjeldendeGenerasjonId get() = gjeldendeGenerasjon.unikId() fun vedtaksperiodeId() = vedtaksperiodeId fun organisasjonsnummer() = organisasjonsnummer - internal fun toDto(): VedtaksperiodeDto { - return VedtaksperiodeDto( + internal fun toDto(): VedtaksperiodeDto = + VedtaksperiodeDto( organisasjonsnummer = organisasjonsnummer, vedtaksperiodeId = vedtaksperiodeId, forkastet = forkastet, generasjoner = generasjoner.map { it.toDto() }, ) - } internal fun behandleTilbakedateringGodkjent(perioder: List) { if (forkastet || perioder.none { it.overlapperMed(Periode(fom, tom)) }) return @@ -142,22 +142,20 @@ internal class Vedtaksperiode private constructor( gjeldendeGenerasjon.håndterNyUtbetaling(utbetalingId) } - internal fun finnGenerasjon(spleisBehandlingId: UUID): Generasjon { - return generasjoner.find { it.spleisBehandlingId() == spleisBehandlingId } + internal fun finnGenerasjon(spleisBehandlingId: UUID): Generasjon = + generasjoner.find { it.spleisBehandlingId() == spleisBehandlingId } ?: throw IllegalArgumentException("Forventer at generasjon med spleisBehandlingId=$spleisBehandlingId finnes") - } internal fun byggVedtak(vedtakBuilder: SykepengevedtakBuilder) { vedtakBuilder.organisasjonsnummer(organisasjonsnummer) } - private fun finnes(spleisBehandling: SpleisBehandling): Boolean { - return generasjoner.finnGenerasjonForSpleisBehandling(spleisBehandling.spleisBehandlingId) != null - } + private fun finnes(spleisBehandling: SpleisBehandling): Boolean = + generasjoner.finnGenerasjonForSpleisBehandling(spleisBehandling.spleisBehandlingId) != null companion object { - fun nyVedtaksperiode(spleisBehandling: SpleisBehandling): Vedtaksperiode { - return Vedtaksperiode( + fun nyVedtaksperiode(spleisBehandling: SpleisBehandling): Vedtaksperiode = + Vedtaksperiode( vedtaksperiodeId = spleisBehandling.vedtaksperiodeId, organisasjonsnummer = spleisBehandling.organisasjonsnummer, generasjoner = @@ -174,7 +172,6 @@ internal class Vedtaksperiode private constructor( ), forkastet = false, ) - } fun gjenopprett( organisasjonsnummer: String, @@ -191,18 +188,17 @@ internal class Vedtaksperiode private constructor( ) } - internal fun List.finnGenerasjon(spleisBehandlingId: UUID): Vedtaksperiode? { - return find { vedtaksperiode -> + internal fun List.finnGenerasjon(spleisBehandlingId: UUID): Vedtaksperiode? = + find { vedtaksperiode -> vedtaksperiode.generasjoner.any { it.spleisBehandlingId() == spleisBehandlingId } } - } internal fun List.relevanteFor(skjæringstidspunkt: LocalDate) = filter { it.gjeldendeSkjæringstidspunkt == skjæringstidspunkt } .map { it.gjeldendeGenerasjon } - private fun GenerasjonDto.tilGenerasjon(): Generasjon { - return Generasjon.fraLagring( + private fun GenerasjonDto.tilGenerasjon(): Generasjon = + Generasjon.fraLagring( id = id, vedtaksperiodeId = vedtaksperiodeId, utbetalingId = utbetalingId, @@ -231,24 +227,24 @@ internal class Vedtaksperiode private constructor( ) }, varsler = - varsler.map { varselDto -> - Varsel( - id = varselDto.id, - varselkode = varselDto.varselkode, - opprettet = varselDto.opprettet, - vedtaksperiodeId = varselDto.vedtaksperiodeId, - status = - when (varselDto.status) { - VarselStatusDto.AKTIV -> Varsel.Status.AKTIV - VarselStatusDto.INAKTIV -> Varsel.Status.INAKTIV - VarselStatusDto.GODKJENT -> Varsel.Status.GODKJENT - VarselStatusDto.VURDERT -> Varsel.Status.VURDERT - VarselStatusDto.AVVIST -> Varsel.Status.AVVIST - VarselStatusDto.AVVIKLET -> Varsel.Status.AVVIKLET - }, - ) - }.toSet(), + varsler + .map { varselDto -> + Varsel( + id = varselDto.id, + varselkode = varselDto.varselkode, + opprettet = varselDto.opprettet, + vedtaksperiodeId = varselDto.vedtaksperiodeId, + status = + when (varselDto.status) { + VarselStatusDto.AKTIV -> Varsel.Status.AKTIV + VarselStatusDto.INAKTIV -> Varsel.Status.INAKTIV + VarselStatusDto.GODKJENT -> Varsel.Status.GODKJENT + VarselStatusDto.VURDERT -> Varsel.Status.VURDERT + VarselStatusDto.AVVIST -> Varsel.Status.AVVIST + VarselStatusDto.AVVIKLET -> Varsel.Status.AVVIKLET + }, + ) + }.toSet(), ) - } } } diff --git a/spesialist-selve/src/main/kotlin/no/nav/helse/modell/vedtaksperiode/VedtaksperiodeReberegnet.kt b/spesialist-selve/src/main/kotlin/no/nav/helse/modell/vedtaksperiode/VedtaksperiodeReberegnet.kt index 2418a094c..374300fc9 100644 --- a/spesialist-selve/src/main/kotlin/no/nav/helse/modell/vedtaksperiode/VedtaksperiodeReberegnet.kt +++ b/spesialist-selve/src/main/kotlin/no/nav/helse/modell/vedtaksperiode/VedtaksperiodeReberegnet.kt @@ -7,7 +7,6 @@ import no.nav.helse.db.HistorikkinnslagRepository import no.nav.helse.db.OppgaveRepository import no.nav.helse.db.ReservasjonRepository import no.nav.helse.db.TildelingRepository -import no.nav.helse.db.UtbetalingRepository import no.nav.helse.mediator.Kommandostarter import no.nav.helse.mediator.asUUID import no.nav.helse.mediator.meldinger.Vedtaksperiodemelding @@ -55,21 +54,20 @@ internal class VedtaksperiodeReberegnet private constructor( kommandostarter: Kommandostarter, transactionalSession: TransactionalSession, ) { - kommandostarter { vedtaksperiodeReberegnet(this@VedtaksperiodeReberegnet, transactionalSession) } + val vedtaksperiode = person.vedtaksperiodeOrNull(vedtaksperiodeId) + checkNotNull(vedtaksperiode) + kommandostarter { vedtaksperiodeReberegnet(this@VedtaksperiodeReberegnet, vedtaksperiode, transactionalSession) } } override fun behandle( person: Person, kommandostarter: Kommandostarter, - ) { - throw UnsupportedOperationException() - } + ): Unit = throw UnsupportedOperationException() } internal class VedtaksperiodeReberegnetCommand( - vedtaksperiodeId: UUID, fødselsnummer: String, - utbetalingRepository: UtbetalingRepository, + vedtaksperiode: Vedtaksperiode, historikkinnslagRepository: HistorikkinnslagRepository, commandContextRepository: CommandContextRepository, oppgaveService: OppgaveService, @@ -81,8 +79,7 @@ internal class VedtaksperiodeReberegnetCommand( override val commands: List = listOf( VedtaksperiodeReberegnetPeriodehistorikk( - vedtaksperiodeId = vedtaksperiodeId, - utbetalingRepository = utbetalingRepository, + vedtaksperiode = vedtaksperiode, historikkinnslagRepository = historikkinnslagRepository, ), ReserverPersonHvisTildeltCommand( @@ -94,7 +91,7 @@ internal class VedtaksperiodeReberegnetCommand( ), AvbrytCommand( fødselsnummer = fødselsnummer, - vedtaksperiodeId = vedtaksperiodeId, + vedtaksperiodeId = vedtaksperiode.vedtaksperiodeId(), commandContextRepository = commandContextRepository, oppgaveService = oppgaveService, reservasjonRepository = reservasjonRepository, diff --git a/spesialist-selve/src/test/kotlin/no/nav/helse/modell/kommando/VedtaksperiodeReberegnetPeriodehistorikkTest.kt b/spesialist-selve/src/test/kotlin/no/nav/helse/modell/kommando/VedtaksperiodeReberegnetPeriodehistorikkTest.kt new file mode 100644 index 000000000..9787a23d9 --- /dev/null +++ b/spesialist-selve/src/test/kotlin/no/nav/helse/modell/kommando/VedtaksperiodeReberegnetPeriodehistorikkTest.kt @@ -0,0 +1,20 @@ +package no.nav.helse.modell.kommando + +import io.mockk.mockk +import io.mockk.verify +import no.nav.helse.db.HistorikkinnslagRepository +import no.nav.helse.modell.periodehistorikk.VedtaksperiodeReberegnet +import org.junit.jupiter.api.Assertions.assertTrue +import org.junit.jupiter.api.Test +import java.util.UUID + +class VedtaksperiodeReberegnetPeriodehistorikkTest { + @Test + fun `Lagrer historikkinnslag når vedtaksperioden er reberegnet`() { + val context = CommandContext(UUID.randomUUID()) + val repository = mockk(relaxed = true) + val command = VedtaksperiodeReberegnetPeriodehistorikk(mockk(relaxed = true), repository) + assertTrue(command.execute(context)) + verify(exactly = 1) { repository.lagre(any(), any()) } + } +} diff --git a/spesialist-selve/src/test/kotlin/no/nav/helse/modell/stoppautomatiskbehandling/StansAutomatiskBehandlingMediatorTest.kt b/spesialist-selve/src/test/kotlin/no/nav/helse/modell/stoppautomatiskbehandling/StansAutomatiskBehandlingMediatorTest.kt index 598fdbf89..8f4f2bde0 100644 --- a/spesialist-selve/src/test/kotlin/no/nav/helse/modell/stoppautomatiskbehandling/StansAutomatiskBehandlingMediatorTest.kt +++ b/spesialist-selve/src/test/kotlin/no/nav/helse/modell/stoppautomatiskbehandling/StansAutomatiskBehandlingMediatorTest.kt @@ -109,7 +109,7 @@ class StansAutomatiskBehandlingMediatorTest { notatDao.lagreForOppgaveId( oppgaveId = any(), tekst = "begrunnelse", - saksbehandler_oid = oid, + saksbehandlerOid = oid, notatType = NotatType.OpphevStans, ) }