diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/omregning/OmregningDao.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/omregning/OmregningDao.kt index 31dc7db142c..93a4cdea68a 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/omregning/OmregningDao.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/omregning/OmregningDao.kt @@ -9,7 +9,7 @@ import no.nav.etterlatte.libs.common.sak.KjoeringStatus import no.nav.etterlatte.libs.common.sak.LagreKjoeringRequest import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.database.setSakId -import no.nav.etterlatte.libs.database.single +import no.nav.etterlatte.libs.database.singleOrNull import no.nav.etterlatte.libs.database.toList class OmregningDao( @@ -151,7 +151,7 @@ class OmregningDao( fun hentNyligsteLinjeForKjoering( kjoering: String, sakId: SakId, - ): Pair = + ): Pair? = connection.hentConnection { connection -> with(connection) { val statement = @@ -166,7 +166,7 @@ class OmregningDao( ) statement.setString(1, kjoering) statement.setLong(2, sakId.sakId) - statement.executeQuery().single { + statement.executeQuery().singleOrNull { Pair( getLong("sak_id"), KjoeringStatus.valueOf(getString("status")), diff --git a/apps/etterlatte-behandling/src/main/kotlin/behandling/omregning/OmregningService.kt b/apps/etterlatte-behandling/src/main/kotlin/behandling/omregning/OmregningService.kt index 362d198b56b..b0f9fc3eb60 100644 --- a/apps/etterlatte-behandling/src/main/kotlin/behandling/omregning/OmregningService.kt +++ b/apps/etterlatte-behandling/src/main/kotlin/behandling/omregning/OmregningService.kt @@ -8,6 +8,7 @@ import no.nav.etterlatte.libs.common.sak.LagreKjoeringRequest import no.nav.etterlatte.libs.common.sak.SakId import no.nav.etterlatte.libs.ktor.token.BrukerTokenInfo import no.nav.etterlatte.libs.ktor.token.HardkodaSystembruker +import no.nav.etterlatte.logger class OmregningService( private val behandlingService: BehandlingService, @@ -26,6 +27,15 @@ class OmregningService( bruker: BrukerTokenInfo, ) { if (request.status == KjoeringStatus.FEILA) { + omregningDao.hentNyligsteLinjeForKjoering(request.kjoering, request.sakId)?.let { (_, sisteStatus) -> + if (sisteStatus.erFerdigstilt()) { + logger.error( + "Omregning har kjørt og feilet etter å ha blitt ferdigstilt. kjøring=${request.kjoering}, sak=${request.sakId}, feilendeSteg=${request.feilendeSteg}", + ) + return + } + } + behandlingService.hentAapenOmregning(request.sakId)?.let { if (it.status.kanAvbrytes()) { behandlingService.avbrytBehandling(it.id, bruker) @@ -42,8 +52,8 @@ class OmregningService( omregningDao.lagreKjoering(request) } - fun lagreDistribuertBrevEllerIverksattBehandlinga(request: KjoeringDistEllerIverksattRequest) { - val (_, sisteStatus) = omregningDao.hentNyligsteLinjeForKjoering(request.kjoering, request.sakId) - omregningDao.lagreDistribuertBrevEllerIverksattBehandlinga(request, sisteStatus) - } + fun lagreDistribuertBrevEllerIverksattBehandlinga(request: KjoeringDistEllerIverksattRequest) = + omregningDao.hentNyligsteLinjeForKjoering(request.kjoering, request.sakId)?.let { (_, sisteStatus) -> + omregningDao.lagreDistribuertBrevEllerIverksattBehandlinga(request, sisteStatus) + } } diff --git a/libs/etterlatte-behandling-model/src/main/kotlin/no/nav/etterlatte/libs/common/sak/KjoeringRequest.kt b/libs/etterlatte-behandling-model/src/main/kotlin/no/nav/etterlatte/libs/common/sak/KjoeringRequest.kt index b0ac2c7239f..ffd8950de1d 100644 --- a/libs/etterlatte-behandling-model/src/main/kotlin/no/nav/etterlatte/libs/common/sak/KjoeringRequest.kt +++ b/libs/etterlatte-behandling-model/src/main/kotlin/no/nav/etterlatte/libs/common/sak/KjoeringRequest.kt @@ -37,11 +37,22 @@ enum class KjoeringStatus { KLAR, STARTA, FEILA, - IKKE_LOEPENDE, + IKKE_LOEPENDE, // Muligens ikke i bruk lenger? FERDIGSTILT, FERDIGSTILT_FATTET, TIL_MANUELL, TIL_MANUELL_UTEN_OPPGAVE, + ; + + fun erFerdigstilt() = + this in + listOf( + FERDIGSTILT, + FERDIGSTILT_FATTET, + TIL_MANUELL, + TIL_MANUELL_UTEN_OPPGAVE, + IKKE_LOEPENDE, + ) } enum class DisttribuertEllerIverksatt {