Skip to content
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

Mer beskrivende dokumentbeskrivelse #618

Merged
merged 4 commits into from
Jan 21, 2025
Merged
Show file tree
Hide file tree
Changes from 3 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 @@ -41,7 +41,11 @@ data class Sak(
val arkivsaksystem: String? = null,
)

fun mapOppdaterRequest(fnr: String): OppdaterJournalpostRequest =
fun mapOppdaterRequest(
fnr: String,
dokumentId: String,
dokumentTittel: String,
): OppdaterJournalpostRequest =
OppdaterJournalpostRequest(
bruker =
Bruker(
Expand All @@ -50,4 +54,5 @@ fun mapOppdaterRequest(fnr: String): OppdaterJournalpostRequest =
),
sak = Sak("GENERELL_SAK"),
tema = "SYK",
dokumenter = listOf(Dokument(dokumentId, dokumentTittel)),
)
14 changes: 14 additions & 0 deletions src/main/kotlin/no/nav/syfo/domain/Periode.kt
Original file line number Diff line number Diff line change
@@ -1,8 +1,22 @@
package no.nav.syfo.domain

import java.time.LocalDate
import java.time.format.DateTimeFormatter

data class Periode(
val fom: LocalDate,
val tom: LocalDate,
)

val norskDatoFormat: DateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy")

fun LocalDate.tilNorskFormat(): String = format(norskDatoFormat)

fun List<Periode>.tilKortFormat(emptyArrayString: String): String =
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

emptyArrayString høres litt ut som en String som beskriver en tom array.. Kan det kanskje være fallbackverdiHvisManglerPeriode eller defaultHvisTom eller noe slikt?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jeg ville returnert null ved tom liste, så defaulte der funksjonen kalles.

if (isEmpty()) {
emptyArrayString
} else if (size < 2) {
"${first().fom.tilNorskFormat()} - ${first().tom.tilNorskFormat()}"
} else {
"${first().fom.tilNorskFormat()} - [...] - ${last().tom.tilNorskFormat()}"
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import no.nav.syfo.client.dokarkiv.DokArkivClient
import no.nav.syfo.client.dokarkiv.mapFeilregistrertRequest
import no.nav.syfo.client.dokarkiv.mapOppdaterRequest
import no.nav.syfo.domain.InngaendeJournalpost
import no.nav.syfo.domain.inntektsmelding.Inntektsmelding
import no.nav.syfo.util.tilDokumentbeskrivelse

class BehandleInngaaendeJournalConsumer(
private val dokArkivClient: DokArkivClient,
Expand All @@ -15,16 +17,16 @@ class BehandleInngaaendeJournalConsumer(
*/

fun oppdaterJournalpost(
fnr: String,
inntektsmelding: Inntektsmelding,
inngaendeJournalpost: InngaendeJournalpost,
feilregistrert: Boolean,
) {
val journalpostId = inngaendeJournalpost.journalpostId
val req =
if (feilregistrert) {
mapFeilregistrertRequest(fnr, inngaendeJournalpost.dokumentId)
mapFeilregistrertRequest(inntektsmelding.fnr, inngaendeJournalpost.dokumentId)
} else {
mapOppdaterRequest(fnr)
mapOppdaterRequest(inntektsmelding.fnr, inngaendeJournalpost.dokumentId, inntektsmelding.tilDokumentbeskrivelse())
}
runBlocking {
dokArkivClient.oppdaterJournalpost(
Expand Down
4 changes: 2 additions & 2 deletions src/main/kotlin/no/nav/syfo/service/JournalpostService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class JournalpostService(

fun ferdigstillJournalpost(inntektsmelding: Inntektsmelding) {
val journalpost = hentInngaendeJournalpost(inntektsmelding)
behandleInngaaendeJournalConsumer.oppdaterJournalpost(inntektsmelding.fnr, journalpost, false)
behandleInngaaendeJournalConsumer.oppdaterJournalpost(inntektsmelding, journalpost, false)
behandleInngaaendeJournalConsumer.ferdigstillJournalpost(journalpost)
metrikk.tellInntektsmeldingerJournalfort()
}
Expand All @@ -37,7 +37,7 @@ class JournalpostService(

fun feilregistrerJournalpost(inntektsmelding: Inntektsmelding) {
val journalpost = hentInngaendeJournalpost(inntektsmelding)
behandleInngaaendeJournalConsumer.oppdaterJournalpost(inntektsmelding.fnr, journalpost, true)
behandleInngaaendeJournalConsumer.oppdaterJournalpost(inntektsmelding, journalpost, true)
behandleInngaaendeJournalConsumer.ferdigstillJournalpost(journalpost)
behandleInngaaendeJournalConsumer.feilregistrerJournalpost(inntektsmelding.journalpostId)
}
Expand Down
10 changes: 10 additions & 0 deletions src/main/kotlin/no/nav/syfo/util/DokumentbeskrivelseUtils.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package no.nav.syfo.util

import no.nav.syfo.domain.inntektsmelding.Inntektsmelding
import no.nav.syfo.domain.tilKortFormat

fun Inntektsmelding.tilDokumentbeskrivelse(): String {
val orgnr = this.arbeidsgiverOrgnummer.let { if (it.isNullOrBlank()) "(ingen orgnr)" else it }
val agp = this.arbeidsgiverperioder.tilKortFormat("(ingen agp)")
return "Inntektsmelding-$orgnr-$agp"
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class DokArkivClientTest {
fun `Skal oppdatere journalpost når man får status OK`() {
dokArkivClient = DokArkivClient("", buildHttpClientText(HttpStatusCode.OK), ::mockAccessToken)
runBlocking {
val req = mapOppdaterRequest("123")
val req = mapOppdaterRequest("123", "dok123", "nyDokumentTittel")
val resultat = dokArkivClient.oppdaterJournalpost("111", req, "")
assertEquals(HttpStatusCode.OK, resultat)
}
Expand All @@ -54,7 +54,7 @@ class DokArkivClientTest {
@Test
fun `Skal håndtere at oppdatering av journalpost feiler`() {
dokArkivClient = DokArkivClient("", buildHttpClientText(HttpStatusCode.InternalServerError, ""), ::mockAccessToken)
val req = mapOppdaterRequest("123")
val req = mapOppdaterRequest("123", "dok123", "nyDokumentTittel")
runBlocking {
assertThrows<Exception> {
dokArkivClient.oppdaterJournalpost("111", req, "")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package no.nav.syfo.service

import io.mockk.coVerifySequence
import io.mockk.mockk
import io.mockk.verify
import kotlinx.coroutines.runBlocking
import no.nav.syfo.client.dokarkiv.DokArkivClient
import no.nav.syfo.domain.InngaendeJournalpost
import no.nav.syfo.grunnleggendeInntektsmelding
import org.junit.jupiter.api.Test

class BehandleInngaaendeJournalConsumerTest {
Expand Down Expand Up @@ -40,11 +42,10 @@ class BehandleInngaaendeJournalConsumerTest {
dokumentId = "dokumentId",
journalpostId = "journalpostId",
)
behandleInngaaendeJournalConsumer.oppdaterJournalpost("fnr", inngaendeJournalpost, false)
verify {
runBlocking {
dokArkivClient.oppdaterJournalpost("journalpostId", any(), any())
}
val dokumentTittel = "Inntektsmelding-(ingen orgnr)-01.01.2019 - 01.02.2019"
behandleInngaaendeJournalConsumer.oppdaterJournalpost(grunnleggendeInntektsmelding.copy(arbeidsgiverOrgnummer = null), inngaendeJournalpost, false)
coVerifySequence {
dokArkivClient.oppdaterJournalpost("journalpostId", match { it.dokumenter!!.first().tittel == dokumentTittel }, any())
}
// TODO - Asserten under må virke
// assertThat(captor.captured.inngaaendeJournalpost.avsender.avsenderId).isEqualTo("10101033333")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package no.nav.syfo.util

import no.nav.syfo.grunnleggendeInntektsmelding
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test

class DokumentbeskrivelseUtilsTest {
@Test
fun `1 agp i dokumentbeskrivelse`() {
assertThat(grunnleggendeInntektsmelding.tilDokumentbeskrivelse())
.isEqualTo("Inntektsmelding-1234-01.01.2019 - 01.02.2019")
}

@Test
fun `2 agp i dokumentbeskrivelse`() {
val periode = grunnleggendeInntektsmelding.arbeidsgiverperioder.first()
assertThat(grunnleggendeInntektsmelding.copy(arbeidsgiverperioder = listOf(periode, periode)).tilDokumentbeskrivelse())
.isEqualTo("Inntektsmelding-1234-01.01.2019 - [...] - 01.02.2019")
}

@Test
fun `ingen agp i dokumentbeskrivelse`() {
assertThat(grunnleggendeInntektsmelding.copy(arbeidsgiverperioder = emptyList()).tilDokumentbeskrivelse())
.isEqualTo("Inntektsmelding-1234-(ingen agp)")
}

@Test
fun `ingen orgnr i dokumentbeskrivelse`() {
assertThat(grunnleggendeInntektsmelding.copy(arbeidsgiverOrgnummer = null).tilDokumentbeskrivelse())
.isEqualTo("Inntektsmelding-(ingen orgnr)-01.01.2019 - 01.02.2019")
}

@Test
fun `tom string orgnr i dokumentbeskrivelse`() {
assertThat(grunnleggendeInntektsmelding.copy(arbeidsgiverOrgnummer = "").tilDokumentbeskrivelse())
.isEqualTo("Inntektsmelding-(ingen orgnr)-01.01.2019 - 01.02.2019")
}
}
Loading