Skip to content

Commit

Permalink
Lagt til erFerdigstilt boolean i Journalpostinfo (#993)
Browse files Browse the repository at this point in the history
* Lagt til erFerdigstilt boolean i Journalpostinfo

* Lagt til kommentar som førklarer bruk
  • Loading branch information
albrektsson authored Sep 11, 2023
1 parent bed145e commit f1c6024
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 19 deletions.
50 changes: 34 additions & 16 deletions src/main/kotlin/no/nav/k9punsj/journalpost/JournalpostRoutes.kt
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,8 @@ internal class JournalpostRoutes(
internal const val Dokument = "/journalpost/{$JournalpostIdKey}/dokument/{$DokumentIdKey}"
internal const val HentJournalposter = "/journalpost/hent"
internal const val SettPåVent = "/journalpost/vent/{$JournalpostIdKey}"
@Deprecated("Skall fjernes") internal const val SkalTilK9sak = "/journalpost/skaltilk9sak"
@Deprecated("Skall fjernes")
internal const val SkalTilK9sak = "/journalpost/skaltilk9sak"
internal const val SettBehandlingsAar = "/journalpost/settBehandlingsAar/{$JournalpostIdKey}"
internal const val LukkJournalpost = "/journalpost/lukk/{$JournalpostIdKey}"
internal const val KopierJournalpost = "/journalpost/kopier/{$JournalpostIdKey}"
Expand Down Expand Up @@ -121,6 +122,9 @@ internal class JournalpostRoutes(
val kanOpprettesJournalforingsOppgave =
(journalpostInfo.journalpostType == SafDtos.JournalpostType.I.name &&
journalpostInfo.journalpostStatus == SafDtos.Journalstatus.MOTTATT.name)
val erFerdigstiltEllerJournalfoert = (
journalpostInfo.journalpostStatus == SafDtos.Journalstatus.FERDIGSTILT.name ||
journalpostInfo.journalpostStatus == SafDtos.Journalstatus.JOURNALFOERT.name)

val journalpostInfoDto = JournalpostInfoDto(
journalpostId = journalpostInfo.journalpostId,
Expand All @@ -133,7 +137,8 @@ internal class JournalpostRoutes(
erInngående = journalpostInfo.erInngående,
gosysoppgaveId = punsjJournalpost?.gosysoppgaveId,
kanOpprettesJournalføringsoppgave = kanOpprettesJournalforingsOppgave,
journalpostStatus = journalpostInfo.journalpostStatus
journalpostStatus = journalpostInfo.journalpostStatus,
erFerdigstilt = erFerdigstiltEllerJournalfoert
)

utvidJournalpostMedMottattDato(
Expand Down Expand Up @@ -219,10 +224,11 @@ internal class JournalpostRoutes(
behandlingsAar = dto.periode?.fom?.year
)

val journalpostErFerdigstilt = journalpostService.hentSafJournalPost(oppdatertJournalpost.journalpostId)?.journalstatus == SafDtos.Journalstatus.FERDIGSTILT.name
val journalpostErFerdigstilt =
journalpostService.hentSafJournalPost(oppdatertJournalpost.journalpostId)?.journalstatus == SafDtos.Journalstatus.FERDIGSTILT.name

// Oppdater og ferdigstill journalpost hvis vi har saksnummer
if(!journalpostErFerdigstilt && dto.saksnummer != null) {
if (!journalpostErFerdigstilt && dto.saksnummer != null) {
journalpostService.oppdaterOgFerdigstillForMottak(dto)
}

Expand Down Expand Up @@ -417,24 +423,31 @@ internal class JournalpostRoutes(
return@RequestContext ServerResponse
.status(HttpStatus.BAD_REQUEST)
.json()
.bodyValueAndAwait(ResultatDto("Alle er ferdig behandlet i punsj eller finnes ikke i punsj: " +
"$alleredeLukketIPunsjTekst $fantIkkeIPunsjTekst"))
.bodyValueAndAwait(
ResultatDto(
"Alle er ferdig behandlet i punsj eller finnes ikke i punsj: " +
"$alleredeLukketIPunsjTekst $fantIkkeIPunsjTekst"
)
)
}



val medSafStatus =
uferdigePunsj.associateWith { journalpostService.hentSafJournalPost(it)!!.journalstatus }
val ferdigStatuser =
arrayOf(SafDtos.Journalstatus.FERDIGSTILT.name, SafDtos.Journalstatus.JOURNALFOERT.name)
val ferdigeSaf = medSafStatus.filter { it.value in ferdigStatuser }.keys
val ikkeLukketISafTekst = diffTekst(uferdigePunsj, ferdigeSaf, "Ikke lukket i SAF så disse ble ikke ferdigstilt")
val ikkeLukketISafTekst =
diffTekst(uferdigePunsj, ferdigeSaf, "Ikke lukket i SAF så disse ble ikke ferdigstilt")
if (ferdigeSaf.isEmpty()) {
return@RequestContext ServerResponse
.status(HttpStatus.BAD_REQUEST)
.json()
.bodyValueAndAwait(ResultatDto("Alle er ferdig behandlet i punsj, finnes ikke i punsj eller ikke lukket i SAF. " +
"$ikkeLukketISafTekst. $fantIkkeIPunsjTekst $alleredeLukketIPunsjTekst"))
.bodyValueAndAwait(
ResultatDto(
"Alle er ferdig behandlet i punsj, finnes ikke i punsj eller ikke lukket i SAF. " +
"$ikkeLukketISafTekst. $fantIkkeIPunsjTekst $alleredeLukketIPunsjTekst"
)
)
}

aksjonspunktService.settUtførtPåAltSendLukkOppgaveTilK9Los(ferdigeSaf, false, null)
Expand Down Expand Up @@ -600,10 +613,13 @@ internal class JournalpostRoutes(
}

val k9FagsakYtelseType = journalpost?.ytelse?.let {
journalpost.utledK9sakFagsakYtelseType(k9sakFagsakYtelseType = no.nav.k9.kodeverk.behandling.FagsakYtelseType.fraKode(it))
journalpost.utledK9sakFagsakYtelseType(
k9sakFagsakYtelseType = no.nav.k9.kodeverk.behandling.FagsakYtelseType.fraKode(
it
)
)
} ?: return@RequestContext kanIkkeKopieres("Finner ikke ytelse for journalpost.")


val fagsakYtelseType = FagsakYtelseType.fromKode(journalpost.ytelse)

if (journalpost?.type != null && journalpost.type == PunsjInnsendingType.INNTEKTSMELDING_UTGÅTT.kode) {
Expand Down Expand Up @@ -674,14 +690,16 @@ internal class JournalpostRoutes(
private fun ServerRequest.dokumentId(): String = pathVariable(DokumentIdKey)

internal data class JournalpostIderRequest(val journalpostIder: List<String>)
private suspend fun ServerRequest.journalpostIder(): JournalpostIderRequest = body(BodyExtractors.toMono(JournalpostIderRequest::class.java)).awaitFirst()

private suspend fun ServerRequest.journalpostIder(): JournalpostIderRequest =
body(BodyExtractors.toMono(JournalpostIderRequest::class.java)).awaitFirst()

private suspend fun ServerRequest.ident() = body(BodyExtractors.toMono(IdentDto::class.java)).awaitFirst()

private suspend fun ServerRequest.søknadId() = body(BodyExtractors.toMono(SettPåVentDto::class.java)).awaitFirst()
private suspend fun ServerRequest.lukkJournalpostRequest() = body(BodyExtractors.toMono(LukkJournalpostDto::class.java)).awaitFirst()
private suspend fun ServerRequest.lukkJournalpostRequest() =
body(BodyExtractors.toMono(LukkJournalpostDto::class.java)).awaitFirst()

private suspend fun ServerRequest.identOgJournalpost() =
body(BodyExtractors.toMono(IdentOgJournalpost::class.java)).awaitFirst()

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,6 @@ data class JournalpostInfoDto(
val journalpostStatus: String,
val kanOpprettesJournalføringsoppgave: Boolean, // Brukes av frontend
val kanKopieres: Boolean = punsjInnsendingType != PunsjInnsendingType.KOPI && erInngående, // Brukes av frontend,
val erFerdigstilt: Boolean, // Brukes av frontend for å bestemme om ytelse å fagsak må settes før punsjing. (Ref: Postmottak)
val gosysoppgaveId: String?,
)
34 changes: 33 additions & 1 deletion src/test/kotlin/no/nav/k9punsj/K9PunsjApplicationTests.kt
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,8 @@ class K9PunsjApplicationTests {
"journalpostStatus": "MOTTATT",
"kanOpprettesJournalføringsoppgave": true,
"kanKopieres": true,
"gosysoppgaveId": null
"gosysoppgaveId": null,
"erFerdigstilt": false
}
""".trimIndent(),
body,
Expand Down Expand Up @@ -127,4 +128,35 @@ class K9PunsjApplicationTests {

assertEquals(HttpStatus.FORBIDDEN, httpStatus)
}

@Test
fun `journalposter med status ferdigstilt eller journalfort for erFerdigstilt true`(): Unit = runBlocking {
val body: String = client.get().uri {
it.pathSegment("api", "journalpost", "7523521").build()
}.header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader).awaitBodyWithType()

JSONAssert.assertEquals(
"""{
"journalpostId": "7523521",
"norskIdent": "02020050123",
"dokumenter": [
{
"dokumentId": "470164680"
},
],
"venter": null,
"punsjInnsendingType": null,
"kanSendeInn": true,
"erSaksbehandler": true,
"journalpostStatus": "FERDIGSTILT",
"kanOpprettesJournalføringsoppgave": false,
"kanKopieres": false,
"gosysoppgaveId": null,
"erFerdigstilt": true
}
""".trimIndent(),
body,
true
)
}
}
2 changes: 1 addition & 1 deletion src/test/kotlin/no/nav/k9punsj/wiremock/SafMocks.kt
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ private object SafMockResponses {
"saksbehandlerHarTilgang": true
}
]
},
}
],
"avsenderMottaker": {
"id": "02020050123",
Expand Down
2 changes: 1 addition & 1 deletion src/test/kotlin/no/nav/k9punsj/wiremock/WireMocks.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ fun initWireMock(
.build()
.stubSaksbehandlerAccessToken()
.stubNavHeader()
.stubSafPunsjbolleHentFerdigstillJournalpostOk()
.stubSafHenteDokumentOk()
.stubSafHenteDokumentOkForside()
.stubSafHenteDokumentOkDelingAvOmsorgsdager()
Expand All @@ -37,6 +36,7 @@ fun initWireMock(
.stubNaisStsTokenResponseGet()
.stubNaisStsTokenResponsePost()
.stubNaisStsTokenResponsePut()
.stubSafPunsjbolleHentFerdigstillJournalpostOk()
.stubPdlHenteAktøridOkPost()
.stubGosys()
.stubAareg()
Expand Down

0 comments on commit f1c6024

Please sign in to comment.