Skip to content

Omgjoeringskrav based on journalpost #1403

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
May 7, 2025
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,21 @@ class KabinApiController(
)
}

@PostMapping("/createklage")
fun createKlage(
@RequestBody input: CreateKlageBasedOnKabinInput
): CreatedBehandlingResponse {
logMethodDetails(
methodName = ::createKlage.name,
innloggetIdent = innloggetSaksbehandlerService.getInnloggetIdent(),
logger = logger
)

return kabinApiService.createKlage(
input = input
)
}

@PostMapping("/createankefromcompleteinput")
fun createAnkeFromCompleteInput(
@RequestBody input: CreateAnkeBasedOnCompleteKabinInput
Expand All @@ -148,33 +163,33 @@ class KabinApiController(
)
}

@PostMapping("/searchusedjournalpostid")
fun getUsedJournalpostIdListForPerson(
@RequestBody input: SearchUsedJournalpostIdInput,
): List<String> {
@PostMapping("/create-omgjoeringskrav-based-on-journalpost")
fun createOmgjoeringskravBasedOnJournalpost(
@RequestBody input: CreateOmgjoeringskravBasedOnJournalpostInput
): CreatedBehandlingResponse {
logMethodDetails(
methodName = ::getUsedJournalpostIdListForPerson.name,
methodName = ::createOmgjoeringskravBasedOnJournalpost.name,
innloggetIdent = innloggetSaksbehandlerService.getInnloggetIdent(),
logger = logger
)

return mottakService.getUsedJournalpostIdList(
sakenGjelder = input.fnr
return kabinApiService.createOmgjoeringskravBasedOnJournalpost(
input = input
)
}

@PostMapping("/createklage")
fun createKlage(
@RequestBody input: CreateKlageBasedOnKabinInput
): CreatedBehandlingResponse {
@PostMapping("/searchusedjournalpostid")
fun getUsedJournalpostIdListForPerson(
@RequestBody input: SearchUsedJournalpostIdInput,
): List<String> {
logMethodDetails(
methodName = ::createKlage.name,
methodName = ::getUsedJournalpostIdListForPerson.name,
innloggetIdent = innloggetSaksbehandlerService.getInnloggetIdent(),
logger = logger
)

return kabinApiService.createKlage(
input = input
return mottakService.getUsedJournalpostIdList(
sakenGjelder = input.fnr
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ class BehandlingMapper(
gosysOppgaveId = klagebehandling.gosysOppgaveId,
tilbakekreving = klagebehandling.tilbakekreving,
timesPreviouslyExtended = klagebehandling.getTimesPreviouslyExtended(),
requiresGosysOppgave = !klagebehandling.fagsystem.modernized,
)
}

Expand Down Expand Up @@ -199,6 +200,7 @@ class BehandlingMapper(
kommentarFraVedtaksinstans = null,
tilbakekreving = omgjoeringskravbehandling.tilbakekreving,
timesPreviouslyExtended = omgjoeringskravbehandling.getTimesPreviouslyExtended(),
requiresGosysOppgave = omgjoeringskravbehandling is OmgjoeringskravbehandlingBasedOnJournalpost || !omgjoeringskravbehandling.fagsystem.modernized
)
}

Expand Down Expand Up @@ -318,6 +320,7 @@ class BehandlingMapper(
gosysOppgaveId = ankebehandling.gosysOppgaveId,
tilbakekreving = ankebehandling.tilbakekreving,
timesPreviouslyExtended = ankebehandling.getTimesPreviouslyExtended(),
requiresGosysOppgave = !ankebehandling.fagsystem.modernized,
)
}

Expand Down Expand Up @@ -388,6 +391,7 @@ class BehandlingMapper(
gosysOppgaveId = ankeITrygderettenbehandling.gosysOppgaveId,
tilbakekreving = ankeITrygderettenbehandling.tilbakekreving,
timesPreviouslyExtended = ankeITrygderettenbehandling.getTimesPreviouslyExtended(),
requiresGosysOppgave = !ankeITrygderettenbehandling.fagsystem.modernized,
)
}

Expand Down Expand Up @@ -465,6 +469,7 @@ class BehandlingMapper(
gosysOppgaveId = behandlingEtterTrygderettenOpphevet.gosysOppgaveId,
tilbakekreving = behandlingEtterTrygderettenOpphevet.tilbakekreving,
timesPreviouslyExtended = behandlingEtterTrygderettenOpphevet.getTimesPreviouslyExtended(),
requiresGosysOppgave = !behandlingEtterTrygderettenOpphevet.fagsystem.modernized
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ data class BehandlingDetaljerView(
val previousSaksbehandler: SaksbehandlerView?,
val varsletFrist: LocalDate?,
val gosysOppgaveId: Long?,
val requiresGosysOppgave: Boolean,
val tilbakekreving: Boolean,
val timesPreviouslyExtended: Int,
) {
Expand Down
66 changes: 31 additions & 35 deletions src/main/kotlin/no/nav/klage/oppgave/api/view/kabin/KabinRequest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,7 @@ data class CreateBehandlingBasedOnKabinInput(
val svarbrevInput: SvarbrevInput?,
val hjemmelIdList: List<String>,
val gosysOppgaveId: Long?,
) {
data class OversendtPartId(
val type: OversendtPartIdType,
val value: String
)

enum class OversendtPartIdType { PERSON, VIRKSOMHET }
}
)

@JsonIgnoreProperties(ignoreUnknown = true)
data class CreateAnkeBasedOnCompleteKabinInput(
Expand All @@ -64,22 +57,21 @@ data class CreateAnkeBasedOnCompleteKabinInput(
val saksbehandlerIdent: String?,
val svarbrevInput: SvarbrevInput?,
val gosysOppgaveId: Long?,
) {
data class OversendtPartId(
val type: OversendtPartIdType,
val value: String
)

fun OversendtPartId.toPartId(): PartId {
return PartId(
type = PartIdType.of(type.name),
value = value
)
}
)
data class OversendtPartId(
val type: OversendtPartIdType,
val value: String
)

enum class OversendtPartIdType { PERSON, VIRKSOMHET }
fun OversendtPartId.toPartId(): PartId {
return PartId(
type = PartIdType.of(type.name),
value = value
)
}

enum class OversendtPartIdType { PERSON, VIRKSOMHET }

@JsonIgnoreProperties(ignoreUnknown = true)
data class CreateKlageBasedOnKabinInput(
val sakenGjelder: OversendtPartId,
Expand All @@ -98,21 +90,25 @@ data class CreateKlageBasedOnKabinInput(
val saksbehandlerIdent: String?,
val svarbrevInput: SvarbrevInput?,
val gosysOppgaveId: Long?,
) {
data class OversendtPartId(
val type: OversendtPartIdType,
val value: String
)

fun OversendtPartId.toPartId(): PartId {
return PartId(
type = PartIdType.of(type.name),
value = value
)
}
)

enum class OversendtPartIdType { PERSON, VIRKSOMHET }
}
data class CreateOmgjoeringskravBasedOnJournalpostInput(
val sakenGjelder: OversendtPartId,
val klager: OversendtPartId?,
val fullmektig: OversendtPartId?,
val fagsakId: String,
val fagsystemId: String,
val hjemmelIdList: List<String>,
val forrigeBehandlendeEnhet: String,
val receivedDocumentJournalpostId: String,
val mottattNav: LocalDate,
val frist: LocalDate,
val ytelseId: String,
val kildereferanse: String,
val saksbehandlerIdent: String?,
val svarbrevInput: SvarbrevInput?,
val gosysOppgaveId: Long?,
)

data class SvarbrevInput(
val title: String,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,8 @@ import java.util.*
//const val KLAGEENHET_PREFIX = "42"

@Entity
@DiscriminatorValue("omgjoeringskrav")
@Audited
class Omgjoeringskravbehandling(
abstract class Omgjoeringskravbehandling(
@Column(name = "klage_behandlende_enhet")
val klageBehandlendeEnhet: String,
@Column(name = "mottak_id")
Expand All @@ -30,8 +29,6 @@ class Omgjoeringskravbehandling(
val kakaKvalitetsvurderingVersion: Int,
@Embedded
override var varsletBehandlingstid: VarsletBehandlingstid?,
@Column(name = "source_behandling_id")
var sourceBehandlingId: UUID?,
@OneToOne(cascade = [CascadeType.ALL], optional = true)
@JoinColumn(name = "forlenget_behandlingstid_draft_id", referencedColumnName = "id")
@NotAudited
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
package no.nav.klage.oppgave.domain.klage

import jakarta.persistence.DiscriminatorValue
import jakarta.persistence.Entity
import no.nav.klage.kodeverk.Fagsystem
import no.nav.klage.kodeverk.FlowState
import no.nav.klage.kodeverk.Type
import no.nav.klage.kodeverk.Utfall
import no.nav.klage.kodeverk.hjemmel.Hjemmel
import no.nav.klage.kodeverk.hjemmel.Registreringshjemmel
import no.nav.klage.kodeverk.ytelse.Ytelse
import org.hibernate.envers.Audited
import java.time.LocalDate
import java.time.LocalDateTime
import java.util.*

//const val KLAGEENHET_PREFIX = "42"

@Entity
@DiscriminatorValue("omgjoeringskrav-based-on-journalpost")
@Audited
class OmgjoeringskravbehandlingBasedOnJournalpost(

//Common properties between klage/anke
id: UUID = UUID.randomUUID(),
klager: Klager,
sakenGjelder: SakenGjelder,
prosessfullmektig: Prosessfullmektig?,
ytelse: Ytelse,
type: Type,
kildeReferanse: String,
dvhReferanse: String? = null,
fagsystem: Fagsystem,
fagsakId: String,
mottattKlageinstans: LocalDateTime,
frist: LocalDate,
tildeling: Tildeling? = null,
created: LocalDateTime = LocalDateTime.now(),
modified: LocalDateTime = LocalDateTime.now(),
saksdokumenter: MutableSet<Saksdokument> = mutableSetOf(),
hjemler: Set<Hjemmel> = emptySet(),
sattPaaVent: SattPaaVent? = null,
feilregistrering: Feilregistrering? = null,
utfall: Utfall? = null,
extraUtfallSet: Set<Utfall> = emptySet(),
registreringshjemler: MutableSet<Registreringshjemmel> = mutableSetOf(),
medunderskriver: MedunderskriverTildeling? = null,
medunderskriverFlowState: FlowState = FlowState.NOT_SENT,
ferdigstilling: Ferdigstilling? = null,
rolIdent: String? = null,
rolFlowState: FlowState = FlowState.NOT_SENT,
rolReturnedDate: LocalDateTime? = null,
tildelingHistorikk: MutableSet<TildelingHistorikk> = mutableSetOf(),
medunderskriverHistorikk: MutableSet<MedunderskriverHistorikk> = mutableSetOf(),
rolHistorikk: MutableSet<RolHistorikk> = mutableSetOf(),
klagerHistorikk: MutableSet<KlagerHistorikk> = mutableSetOf(),
fullmektigHistorikk: MutableSet<FullmektigHistorikk> = mutableSetOf(),
sattPaaVentHistorikk: MutableSet<SattPaaVentHistorikk> = mutableSetOf(),
previousSaksbehandlerident: String?,
oppgaveId: Long?,
gosysOppgaveId: Long?,
gosysOppgaveUpdate: GosysOppgaveUpdate? = null,
tilbakekreving: Boolean = false,
ignoreGosysOppgave: Boolean = false,
klageBehandlendeEnhet: String,
mottakId: UUID,
kakaKvalitetsvurderingId: UUID,
kakaKvalitetsvurderingVersion: Int,
varsletBehandlingstid: VarsletBehandlingstid?,
forlengetBehandlingstidDraft: ForlengetBehandlingstidDraft?,
) : BehandlingWithVarsletBehandlingstid, Omgjoeringskravbehandling(
id = id,
klager = klager,
sakenGjelder = sakenGjelder,
prosessfullmektig = prosessfullmektig,
ytelse = ytelse,
type = type,
kildeReferanse = kildeReferanse,
mottattKlageinstans = mottattKlageinstans,
modified = modified,
created = created,
tildeling = tildeling,
frist = frist,
fagsakId = fagsakId,
fagsystem = fagsystem,
dvhReferanse = dvhReferanse,
saksdokumenter = saksdokumenter,
hjemler = hjemler,
sattPaaVent = sattPaaVent,
feilregistrering = feilregistrering,
utfall = utfall,
extraUtfallSet = extraUtfallSet,
registreringshjemler = registreringshjemler,
medunderskriver = medunderskriver,
medunderskriverFlowState = medunderskriverFlowState,
ferdigstilling = ferdigstilling,
rolIdent = rolIdent,
rolFlowState = rolFlowState,
rolReturnedDate = rolReturnedDate,
tildelingHistorikk = tildelingHistorikk,
medunderskriverHistorikk = medunderskriverHistorikk,
rolHistorikk = rolHistorikk,
klagerHistorikk = klagerHistorikk,
fullmektigHistorikk = fullmektigHistorikk,
sattPaaVentHistorikk = sattPaaVentHistorikk,
previousSaksbehandlerident = previousSaksbehandlerident,
gosysOppgaveId = gosysOppgaveId,
gosysOppgaveUpdate = gosysOppgaveUpdate,
tilbakekreving = tilbakekreving,
ignoreGosysOppgave = ignoreGosysOppgave,
klageBehandlendeEnhet = klageBehandlendeEnhet,
mottakId = mottakId,
kakaKvalitetsvurderingId = kakaKvalitetsvurderingId,
kakaKvalitetsvurderingVersion = kakaKvalitetsvurderingVersion,
varsletBehandlingstid = varsletBehandlingstid,
forlengetBehandlingstidDraft = forlengetBehandlingstidDraft,
oppgaveId = oppgaveId,
) {

override fun toString(): String {
return "OmgjoeringskravbehandlingBasedOnJournalpost(id=$id, " +
"modified=$modified, " +
"created=$created)"
}

override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false

other as OmgjoeringskravbehandlingBasedOnJournalpost

return id == other.id
}

override fun hashCode(): Int {
return id.hashCode()
}
}
Loading