diff --git a/src/main/kotlin/no/nav/klage/oppgave/api/controller/BehandlingController.kt b/src/main/kotlin/no/nav/klage/oppgave/api/controller/BehandlingController.kt index 64413325b..521cd5f4d 100644 --- a/src/main/kotlin/no/nav/klage/oppgave/api/controller/BehandlingController.kt +++ b/src/main/kotlin/no/nav/klage/oppgave/api/controller/BehandlingController.kt @@ -79,7 +79,8 @@ class BehandlingController( @PostMapping("/{behandlingId}/fullfoer") fun fullfoerBehandling( - @PathVariable("behandlingId") behandlingId: UUID + @PathVariable("behandlingId") behandlingId: UUID, + @RequestParam(value = "nybehandling", required = false) nyBehandling: Boolean = false ): BehandlingFullfoertView { logKlagebehandlingMethodDetails( ::fullfoerBehandling.name, @@ -89,8 +90,9 @@ class BehandlingController( ) val klagebehandling = behandlingService.ferdigstillBehandling( - behandlingId, - innloggetSaksbehandlerService.getInnloggetIdent() + behandlingId = behandlingId, + innloggetIdent = innloggetSaksbehandlerService.getInnloggetIdent(), + nyBehandling = nyBehandling, ) return behandlingMapper.mapToBehandlingFullfoertView(klagebehandling) } @@ -216,7 +218,7 @@ class BehandlingController( logger ) - behandlingService.validateBehandlingBeforeFinalize(behandlingId) + behandlingService.validateBehandlingBeforeFinalize(behandlingId, false) return ValidationPassedResponse() } diff --git a/src/main/kotlin/no/nav/klage/oppgave/service/BehandlingService.kt b/src/main/kotlin/no/nav/klage/oppgave/service/BehandlingService.kt index 2e47e7f42..8f5ace332 100644 --- a/src/main/kotlin/no/nav/klage/oppgave/service/BehandlingService.kt +++ b/src/main/kotlin/no/nav/klage/oppgave/service/BehandlingService.kt @@ -77,7 +77,8 @@ class BehandlingService( fun ferdigstillBehandling( behandlingId: UUID, - innloggetIdent: String + innloggetIdent: String, + nyBehandling: Boolean ): Behandling { val behandling = getBehandlingForUpdate( behandlingId = behandlingId @@ -86,7 +87,11 @@ class BehandlingService( if (behandling.avsluttetAvSaksbehandler != null) throw BehandlingFinalizedException("Behandlingen er avsluttet") //Forretningsmessige krav før vedtak kan ferdigstilles - validateBehandlingBeforeFinalize(behandlingId) + validateBehandlingBeforeFinalize(behandlingId = behandlingId, nyBehandling = nyBehandling) + + if (nyBehandling) { + return setNyAnkebehandlingKA(behandlingId, innloggetIdent) + } //Her settes en markør som så brukes async i kallet klagebehandlingRepository.findByAvsluttetIsNullAndAvsluttetAvSaksbehandlerIsNotNull return markerBehandlingSomAvsluttetAvSaksbehandler(behandling, innloggetIdent) @@ -101,12 +106,22 @@ class BehandlingService( return behandling } - fun validateBehandlingBeforeFinalize(behandlingId: UUID) { + fun validateBehandlingBeforeFinalize(behandlingId: UUID, nyBehandling: Boolean) { val behandling = getBehandling(behandlingId) val dokumentValidationErrors = mutableListOf() val behandlingValidationErrors = mutableListOf() val sectionList = mutableListOf() + if (nyBehandling) { + if (behandling is AnkeITrygderettenbehandling) { + if (behandling.utfall != Utfall.OPPHEVET) { + throw IllegalOperation("Ny ankebehandling kan kun opprettes hvis utfall er 'Opphevet'.") + } + } else { + throw IllegalOperation("Ny ankebehandling kan kun brukes på en Anke i trygderetten-sak.") + } + } + val unfinishedDocuments = dokumentUnderArbeidRepository.findByBehandlingIdAndMarkertFerdigIsNull(behandling.id) @@ -582,7 +597,7 @@ class BehandlingService( fun setNyAnkebehandlingKA( behandlingId: UUID, utfoerendeSaksbehandlerIdent: String - ): LocalDateTime { + ): Behandling { val behandling = getBehandlingForUpdate(behandlingId = behandlingId) if (behandling is AnkeITrygderettenbehandling) { @@ -597,7 +612,7 @@ class BehandlingService( ) ) - return behandling.modified + return behandling } else throw IllegalOperation("Dette feltet kan bare settes i ankesaker i Trygderetten") } diff --git a/src/test/kotlin/no/nav/klage/oppgave/service/BehandlingServiceTest.kt b/src/test/kotlin/no/nav/klage/oppgave/service/BehandlingServiceTest.kt index 5a4b67bff..4da6f292c 100644 --- a/src/test/kotlin/no/nav/klage/oppgave/service/BehandlingServiceTest.kt +++ b/src/test/kotlin/no/nav/klage/oppgave/service/BehandlingServiceTest.kt @@ -308,8 +308,9 @@ class BehandlingServiceTest { assertThrows { behandlingService.ferdigstillBehandling( - behandling.id, - SAKSBEHANDLER_IDENT + behandlingId = behandling.id, + innloggetIdent = SAKSBEHANDLER_IDENT, + nyBehandling = false, ) } } @@ -341,7 +342,7 @@ class BehandlingServiceTest { ) assertThrows { - behandlingService.validateBehandlingBeforeFinalize(behandling.id) + behandlingService.validateBehandlingBeforeFinalize(behandling.id, nyBehandling = false,) } } @@ -350,7 +351,7 @@ class BehandlingServiceTest { val behandling = simpleInsert(fullfoert = false, utfall = false) assertThrows { - behandlingService.validateBehandlingBeforeFinalize(behandling.id) + behandlingService.validateBehandlingBeforeFinalize(behandling.id, nyBehandling = false,) } } @@ -360,7 +361,7 @@ class BehandlingServiceTest { simpleInsert(fullfoert = false, utfall = true, hjemler = false) assertThrows { - behandlingService.validateBehandlingBeforeFinalize(behandling.id) + behandlingService.validateBehandlingBeforeFinalize(behandling.id, nyBehandling = false,) } } @@ -373,7 +374,7 @@ class BehandlingServiceTest { trukket = true ) - behandlingService.validateBehandlingBeforeFinalize(behandling.id) + behandlingService.validateBehandlingBeforeFinalize(behandling.id, nyBehandling = false,) } }