diff --git a/pom.xml b/pom.xml
index 53d51d6b..e695a0de 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,7 +35,7 @@
3.20240913110742_adb42f8
2.20240902084316_04f17df
no.nav.familie.klage.ApplicationKt
- 3.0_20240913135049_042822f
+ 3.0_20240917094852_351320d
2.0_20230214104704_706e9c0
5.0.5
4.9.1
diff --git a/src/main/kotlin/no/nav/familie/klage/kabal/KabalKafkaListener.kt b/src/main/kotlin/no/nav/familie/klage/kabal/KabalKafkaListener.kt
index 49dc3534..f201a34b 100644
--- a/src/main/kotlin/no/nav/familie/klage/kabal/KabalKafkaListener.kt
+++ b/src/main/kotlin/no/nav/familie/klage/kabal/KabalKafkaListener.kt
@@ -70,6 +70,7 @@ data class BehandlingEvent(
BehandlingEventType.ANKE_I_TRYGDERETTENBEHANDLING_OPPRETTET ->
detaljer.ankeITrygderettenbehandlingOpprettet?.sendtTilTrygderetten ?: throw Feil(feilmelding)
BehandlingEventType.BEHANDLING_FEILREGISTRERT -> detaljer.behandlingFeilregistrert?.feilregistrert ?: throw Feil("Fant ikke tidspunkt for feilregistrering")
+ BehandlingEventType.BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET -> detaljer.behandlingEtterTrygderettenOpphevetAvsluttet?.avsluttet ?: throw Feil(feilmelding)
}
}
@@ -97,12 +98,14 @@ data class BehandlingDetaljer(
val ankebehandlingAvsluttet: AnkebehandlingAvsluttetDetaljer? = null,
val behandlingFeilregistrert: BehandlingFeilregistrertDetaljer? = null,
val ankeITrygderettenbehandlingOpprettet: AnkeITrygderettenbehandlingOpprettetDetaljer? = null,
+ val behandlingEtterTrygderettenOpphevetAvsluttet: BehandlingEtterTrygderettenOpphevetAvsluttetDetaljer? = null,
) {
fun oppgaveTekst(saksbehandlersEnhet: String): String {
return klagebehandlingAvsluttet?.oppgaveTekst(saksbehandlersEnhet)
?: ankebehandlingOpprettet?.oppgaveTekst(saksbehandlersEnhet)
?: ankebehandlingAvsluttet?.oppgaveTekst(saksbehandlersEnhet)
+ ?: behandlingEtterTrygderettenOpphevetAvsluttet?.oppgaveTekst(saksbehandlersEnhet)
?: "Ukjent"
}
}
@@ -148,3 +151,16 @@ data class AnkebehandlingAvsluttetDetaljer(
data class BehandlingFeilregistrertDetaljer(val reason: String, val type: Type, val feilregistrert: LocalDateTime)
data class AnkeITrygderettenbehandlingOpprettetDetaljer(val sendtTilTrygderetten: LocalDateTime, val utfall: KlageinstansUtfall?)
+
+data class BehandlingEtterTrygderettenOpphevetAvsluttetDetaljer(
+ val avsluttet: LocalDateTime,
+ val utfall: KlageinstansUtfall,
+ val journalpostReferanser: List,
+) {
+ fun oppgaveTekst(saksbehandlersEnhet: String): String {
+ return "Hendelse fra klage av type behandling etter trygderetten opphevet avsluttet med utfall: $utfall mottatt. " +
+ "Avsluttet tidspunkt: $avsluttet. " +
+ "Opprinnelig klagebehandling er behandlet av enhet: $saksbehandlersEnhet. " +
+ "Journalpost referanser: ${journalpostReferanser.joinToString(", ")}"
+ }
+}
diff --git a/src/main/kotlin/no/nav/familie/klage/kabal/event/BehandlingEventService.kt b/src/main/kotlin/no/nav/familie/klage/kabal/event/BehandlingEventService.kt
index ca0fd7c8..47742440 100644
--- a/src/main/kotlin/no/nav/familie/klage/kabal/event/BehandlingEventService.kt
+++ b/src/main/kotlin/no/nav/familie/klage/kabal/event/BehandlingEventService.kt
@@ -51,24 +51,20 @@ class BehandlingEventService(
when (behandlingEvent.type) {
BehandlingEventType.KLAGEBEHANDLING_AVSLUTTET -> behandleKlageAvsluttet(behandling, behandlingEvent)
- BehandlingEventType.ANKEBEHANDLING_AVSLUTTET,
- -> behandleAnkeAvsluttet(behandling, behandlingEvent)
+ BehandlingEventType.ANKEBEHANDLING_AVSLUTTET, BehandlingEventType.BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET,
+ -> opprettOppgaveTask(behandling, behandlingEvent)
BehandlingEventType.ANKEBEHANDLING_OPPRETTET,
BehandlingEventType.ANKE_I_TRYGDERETTENBEHANDLING_OPPRETTET,
-> {
- /*
- * Skal ikke gjøre noe dersom eventtype er ANKEBEHANDLING_OPPRETTET
- * eller ANKE_I_TRYGDERETTENBEHANDLING_OPPRETTET
- * */
+ // Skal ikke gjøre noe dersom eventtype er ANKEBEHANDLING_OPPRETTET eller ANKE_I_TRYGDERETTENBEHANDLING_OPPRETTET
}
-
- BehandlingEventType.BEHANDLING_FEILREGISTRERT -> opprettBehandlingFeilregistretTask(behandling.id)
+ BehandlingEventType.BEHANDLING_FEILREGISTRERT -> opprettBehandlingFeilregistrertTask(behandling.id)
}
}
}
- private fun opprettBehandlingFeilregistretTask(behandlingId: UUID) {
+ private fun opprettBehandlingFeilregistrertTask(behandlingId: UUID) {
taskService.save(BehandlingFeilregistrertTask.opprettTask(behandlingId))
}
@@ -95,10 +91,6 @@ class BehandlingEventService(
null
}
- private fun behandleAnkeAvsluttet(behandling: Behandling, behandlingEvent: BehandlingEvent) {
- opprettOppgaveTask(behandling, behandlingEvent)
- }
-
private fun behandleKlageAvsluttet(behandling: Behandling, behandlingEvent: BehandlingEvent) {
when (behandling.status) {
BehandlingStatus.FERDIGSTILT -> logger.error("Mottatt event på ferdigstilt behandling $behandlingEvent - event kan være lest fra før")
@@ -109,7 +101,7 @@ class BehandlingEventService(
}
}
- private fun opprettOppgaveTask(behandling: Behandling, behandlingEvent: BehandlingEvent) {
+ fun opprettOppgaveTask(behandling: Behandling, behandlingEvent: BehandlingEvent) {
val fagsakDomain = fagsakRepository.finnFagsakForBehandlingId(behandling.id)
?: error("Finner ikke fagsak for behandlingId: ${behandling.id}")
val saksbehandlerIdent = behandling.sporbar.endret.endretAv
diff --git a/src/main/kotlin/no/nav/familie/klage/personopplysninger/fullmakt/FullmaktClient.kt b/src/main/kotlin/no/nav/familie/klage/personopplysninger/fullmakt/FullmaktClient.kt
index a4e94cb4..4fbd736e 100644
--- a/src/main/kotlin/no/nav/familie/klage/personopplysninger/fullmakt/FullmaktClient.kt
+++ b/src/main/kotlin/no/nav/familie/klage/personopplysninger/fullmakt/FullmaktClient.kt
@@ -2,7 +2,6 @@ package no.nav.familie.klage.personopplysninger.fullmakt
import no.nav.familie.http.client.AbstractRestClient
import org.apache.hc.client5.http.utils.Base64
-import org.slf4j.LoggerFactory
import org.springframework.beans.factory.annotation.Qualifier
import org.springframework.beans.factory.annotation.Value
import org.springframework.stereotype.Component
diff --git a/src/main/kotlin/no/nav/familie/klage/test/TestController.kt b/src/main/kotlin/no/nav/familie/klage/test/TestController.kt
index 236e53e3..c9f3f82c 100644
--- a/src/main/kotlin/no/nav/familie/klage/test/TestController.kt
+++ b/src/main/kotlin/no/nav/familie/klage/test/TestController.kt
@@ -27,7 +27,7 @@ class TestController(
private val fagsakPersonService: FagsakPersonService,
private val fagsakRepository: FagsakRepository,
private val opprettBehandlingService: OpprettBehandlingService,
- private val behandleSakOppgaveRepository: BehandleSakOppgaveRepository
+ private val behandleSakOppgaveRepository: BehandleSakOppgaveRepository,
) {
@PostMapping("opprett")
@@ -49,7 +49,7 @@ class TestController(
),
)
- val behandleSakOppgave = BehandleSakOppgave(
+ val behandleSakOppgave = BehandleSakOppgave(
behandlingId,
123,
)
@@ -57,7 +57,7 @@ class TestController(
behandleSakOppgaveRepository.insert(behandleSakOppgave)
return Ressurs.success(
- behandlingId
+ behandlingId,
)
}
diff --git a/src/test/kotlin/no/nav/familie/klage/infrastruktur/config/FamilieIntegrasjonerMock.kt b/src/test/kotlin/no/nav/familie/klage/infrastruktur/config/FamilieIntegrasjonerMock.kt
index 3800ae66..4efb55f1 100644
--- a/src/test/kotlin/no/nav/familie/klage/infrastruktur/config/FamilieIntegrasjonerMock.kt
+++ b/src/test/kotlin/no/nav/familie/klage/infrastruktur/config/FamilieIntegrasjonerMock.kt
@@ -99,7 +99,7 @@ class FamilieIntegrasjonerMock(integrasjonerConfig: IntegrasjonerConfig) {
.withQueryParam("variantFormat", equalTo("ARKIV"))
.willReturn(okJson(objectMapper.writeValueAsString(Ressurs.success(pdfAsBase64String)))),
get(urlPathMatching("${integrasjonerConfig.oppgaveUri.path}/([0-9]*)"))
- .willReturn(okJson(objectMapper.writeValueAsString(Ressurs.success(Oppgave(Random.nextLong().absoluteValue, tilordnetRessurs = "Z994152", tema = Tema.ENF, status = StatusEnum.UNDER_BEHANDLING),)))),
+ .willReturn(okJson(objectMapper.writeValueAsString(Ressurs.success(Oppgave(Random.nextLong().absoluteValue, tilordnetRessurs = "Z994152", tema = Tema.ENF, status = StatusEnum.UNDER_BEHANDLING))))),
get(urlPathMatching("${integrasjonerConfig.saksbehandlerUri.path}/Z994152"))
.willReturn(okJson(objectMapper.writeValueAsString(Ressurs.success(Saksbehandler(UUID.randomUUID(), "Z994152", "Luke", "Skywalker", "4405"))))),
put(urlMatching("${integrasjonerConfig.dokarkivUri.path}.*"))
diff --git a/src/test/kotlin/no/nav/familie/klage/kabal/event/BehandlingEventServiceTest.kt b/src/test/kotlin/no/nav/familie/klage/kabal/event/BehandlingEventServiceTest.kt
index 61fd2f7b..4a7d509d 100644
--- a/src/test/kotlin/no/nav/familie/klage/kabal/event/BehandlingEventServiceTest.kt
+++ b/src/test/kotlin/no/nav/familie/klage/kabal/event/BehandlingEventServiceTest.kt
@@ -12,6 +12,7 @@ import no.nav.familie.klage.integrasjoner.FamilieIntegrasjonerClient
import no.nav.familie.klage.kabal.AnkeITrygderettenbehandlingOpprettetDetaljer
import no.nav.familie.klage.kabal.AnkebehandlingOpprettetDetaljer
import no.nav.familie.klage.kabal.BehandlingDetaljer
+import no.nav.familie.klage.kabal.BehandlingEtterTrygderettenOpphevetAvsluttetDetaljer
import no.nav.familie.klage.kabal.BehandlingEvent
import no.nav.familie.klage.kabal.BehandlingFeilregistrertDetaljer
import no.nav.familie.klage.kabal.BehandlingFeilregistrertTask
@@ -19,6 +20,7 @@ import no.nav.familie.klage.kabal.KlagebehandlingAvsluttetDetaljer
import no.nav.familie.klage.kabal.KlageresultatRepository
import no.nav.familie.klage.kabal.Type
import no.nav.familie.klage.kabal.domain.KlageinstansResultat
+import no.nav.familie.klage.oppgave.OpprettKabalEventOppgaveTask
import no.nav.familie.klage.testutil.DomainUtil
import no.nav.familie.kontrakter.felles.klage.BehandlingEventType
import no.nav.familie.kontrakter.felles.klage.BehandlingStatus
@@ -138,6 +140,23 @@ internal class BehandlingEventServiceTest {
assertThat(klageinstansResultatSlot.captured.type).isEqualTo(BehandlingEventType.ANKE_I_TRYGDERETTENBEHANDLING_OPPRETTET)
}
+ @Test
+ internal fun `Skal kunne lagre resultat for behandlingsevent BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET`() {
+ val klageinstansResultatSlot = slot()
+
+ behandlingEventService.handleEvent(
+ lagBehandlingEvent(
+ BehandlingEventType.BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET,
+ BehandlingDetaljer(behandlingEtterTrygderettenOpphevetAvsluttet = BehandlingEtterTrygderettenOpphevetAvsluttetDetaljer(LocalDateTime.of(2023, 6, 21, 1, 1), KlageinstansUtfall.HEVET, emptyList())),
+ ),
+ )
+
+ verify(exactly = 1) { behandlingRepository.findByEksternBehandlingId(any()) }
+ verify(exactly = 1) { klageresultatRepository.insert(capture(klageinstansResultatSlot)) }
+
+ assertThat(klageinstansResultatSlot.captured.type).isEqualTo(BehandlingEventType.BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET)
+ }
+
@Test
internal fun `Skal ikke ferdigstille behandling for behandlingsevent ANKE_I_TRYGDERETTENBEHANDLING_OPPRETTET`() {
val klageinstansResultatSlot = slot()
@@ -167,6 +186,20 @@ internal class BehandlingEventServiceTest {
assertThat(taskSlot.captured.payload).isEqualTo(behandlingMedStatusVenter.id.toString())
}
+ @Test
+ internal fun `Skal lage OpprettOppgave-task for behandlingsevent BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET`() {
+ val taskSlot = slot()
+
+ val behandlingEtterTrygderettenOpphevetAvsluttetDetaljer = BehandlingEtterTrygderettenOpphevetAvsluttetDetaljer(LocalDateTime.now(), KlageinstansUtfall.HEVET, emptyList())
+
+ every { taskService.save(capture(taskSlot)) } returns mockk()
+
+ behandlingEventService.handleEvent(lagBehandlingEvent(BehandlingEventType.BEHANDLING_ETTER_TRYGDERETTEN_OPPHEVET_AVSLUTTET, BehandlingDetaljer(behandlingEtterTrygderettenOpphevetAvsluttet = behandlingEtterTrygderettenOpphevetAvsluttetDetaljer)))
+
+ assertThat(taskSlot.captured.type).isEqualTo(OpprettKabalEventOppgaveTask.TYPE)
+ assertThat(taskSlot.captured.payload).contains("Hendelse fra klage av type behandling etter trygderetten opphevet avsluttet med utfall: HEVET mottatt.")
+ }
+
private fun lagBehandlingEvent(
behandlingEventType: BehandlingEventType = BehandlingEventType.KLAGEBEHANDLING_AVSLUTTET,
behandlingDetaljer: BehandlingDetaljer? = null,