Skip to content

Commit

Permalink
Legg til journalpostId+BrevbestillingId på brevstatus fra tilbakekrev…
Browse files Browse the repository at this point in the history
…ingsbrev
  • Loading branch information
hestad committed Dec 15, 2023
1 parent 8841aa2 commit e4ce153
Show file tree
Hide file tree
Showing 6 changed files with 99 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,11 @@ class JournalførDokumentHendelserKonsument(
JournalførBrevCommand(
fnr = sakInfo.fnr,
saksnummer = sakInfo.saksnummer,
dokument = relatertHendelse.dokumentUtenFil.toDokumentMedMetadata(relatertFil.fil),
dokument = relatertHendelse.dokumentUtenFil.toDokumentMedMetadata(
pdf = relatertFil.fil,
journalpostId = ,
brevbestillingId=,
),
sakstype = sakInfo.type,
navn = navn,
),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
package dokument.domain

import arrow.core.NonEmptyList
import dokument.domain.brev.BrevbestillingId
import dokument.domain.hendelser.DistribuertDokumentHendelse
import dokument.domain.hendelser.DokumentHendelse
import dokument.domain.hendelser.GenerertDokumentHendelse
import dokument.domain.hendelser.JournalførtDokumentHendelse
import no.nav.su.se.bakover.common.journal.JournalpostId
import no.nav.su.se.bakover.hendelse.domain.HendelseFil
import no.nav.su.se.bakover.hendelse.domain.HendelseId
import java.util.UUID

data class DokumentHendelseSerie(
Expand Down Expand Up @@ -33,6 +37,42 @@ data class DokumentHendelseSerie(
}
}

fun tilDokumentMedMetadata(
hentDokumentForHendelseId: (HendelseId) -> HendelseFil?,
): Dokument.MedMetadata {
val generertDokumentHendelse = generertDokument()
val fil = hentDokumentForHendelseId(generertDokumentHendelse.hendelseId)!!
return generertDokumentHendelse.dokumentUtenFil.toDokumentMedMetadata(
pdf = fil.fil,
journalpostId = journalpostIdOrNull(),
brevbestillingId = brevbestillingIdOrNull(),
)
}

fun generertDokument(): GenerertDokumentHendelse {
return dokumenter.first() as GenerertDokumentHendelse
}

fun journalpostIdOrNull(): JournalpostId? {
// init garanterer dette
return journalpostHendelseOrNull()?.journalpostId
}

fun journalpostHendelseOrNull(): JournalførtDokumentHendelse? {
// init garanterer dette
return dokumenter.getOrNull(1) as JournalførtDokumentHendelse?
}

fun brevbestillingIdOrNull(): BrevbestillingId? {
// init garanterer dette
return distribuertDokumentHendelse()?.brevbestillingId
}

fun distribuertDokumentHendelse(): DistribuertDokumentHendelse? {
// init garanterer dette
return dokumenter.getOrNull(2) as DistribuertDokumentHendelse?
}

init {
dokumenter.map { it.sakId }.distinct().let {
require(listOf(sakId) == it) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
package dokument.domain

import arrow.core.nonEmptyListOf
import dokument.domain.brev.BrevbestillingId
import dokument.domain.hendelser.DistribuertDokumentHendelse
import dokument.domain.hendelser.DokumentHendelse
import dokument.domain.hendelser.GenerertDokumentHendelse
import dokument.domain.hendelser.JournalførtDokumentHendelse
import no.nav.su.se.bakover.common.journal.JournalpostId
import no.nav.su.se.bakover.hendelse.domain.HendelseFil
import no.nav.su.se.bakover.hendelse.domain.HendelseId
import java.util.UUID

Expand Down Expand Up @@ -36,6 +39,16 @@ data class DokumentHendelser(
return serier.flatMap { it.dokumenter }.filterIsInstance<GenerertDokumentHendelse>()
}

fun tilDokumenterMedMetadata(
hentDokumentForHendelseId: (HendelseId) -> HendelseFil?,
): List<Dokument.MedMetadata> {
return serier.map {
it.tilDokumentMedMetadata(
hentDokumentForHendelseId = hentDokumentForHendelseId,
)
}
}

companion object {
fun empty(sakId: UUID) = DokumentHendelser(sakId = sakId, serier = emptyList())

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package dokument.domain

import dokument.domain.brev.BrevbestillingId
import no.nav.su.se.bakover.common.domain.PdfA
import no.nav.su.se.bakover.common.journal.JournalpostId
import no.nav.su.se.bakover.common.tid.Tidspunkt
import java.util.UUID

Expand All @@ -21,24 +23,41 @@ data class DokumentMedMetadataUtenFil(
val generertDokumentJson: String,
) {

fun toDokumentMedMetadata(pdf: PdfA): Dokument.MedMetadata = when (distribusjonstype) {
Distribusjonstype.VEDTAK -> Dokument.MedMetadata.Vedtak(
utenMetadata = toDokumentUtenMetadata(pdf),
metadata = metadata,
)
fun toDokumentMedMetadata(
pdf: PdfA,
journalpostId: JournalpostId?,
brevbestillingId: BrevbestillingId?,
): Dokument.MedMetadata {
return when (distribusjonstype) {
Distribusjonstype.VEDTAK -> Dokument.MedMetadata.Vedtak(
utenMetadata = toDokumentUtenMetadata(pdf),
metadata = metadata.copy(
journalpostId = journalpostId?.toString(),
brevbestillingId = brevbestillingId?.toString(),
),
)

Distribusjonstype.VIKTIG -> Dokument.MedMetadata.Informasjon.Viktig(
utenMetadata = toDokumentUtenMetadata(pdf),
metadata = metadata,
)
Distribusjonstype.VIKTIG -> Dokument.MedMetadata.Informasjon.Viktig(
utenMetadata = toDokumentUtenMetadata(pdf),
metadata = metadata.copy(
journalpostId = journalpostId?.toString(),
brevbestillingId = brevbestillingId?.toString(),
),
)

Distribusjonstype.ANNET -> Dokument.MedMetadata.Informasjon.Annet(
utenMetadata = toDokumentUtenMetadata(pdf),
metadata = metadata,
)
Distribusjonstype.ANNET -> Dokument.MedMetadata.Informasjon.Annet(
utenMetadata = toDokumentUtenMetadata(pdf),
metadata = metadata.copy(
journalpostId = journalpostId?.toString(),
brevbestillingId = brevbestillingId?.toString(),
),
)
}
}

private fun toDokumentUtenMetadata(pdf: PdfA): Dokument.UtenMetadata = when (distribusjonstype) {
private fun toDokumentUtenMetadata(
pdf: PdfA
): Dokument.UtenMetadata = when (distribusjonstype) {
Distribusjonstype.VEDTAK -> Dokument.UtenMetadata.Vedtak(
id = id,
opprettet = opprettet,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class DokumentMedMetadataUtenFilTest {
val pdf = PdfA("content".toByteArray())

dokumentUtenFil().let {
it.toDokumentMedMetadata(pdf) shouldBe
it.toDokumentMedMetadata(pdf, harJournalført(), harDistribuert()) shouldBe
Dokument.MedMetadata.Vedtak(
utenMetadata = Dokument.UtenMetadata.Vedtak(
id = it.id,
Expand All @@ -47,7 +47,7 @@ class DokumentMedMetadataUtenFilTest {
dokumentUtenFil(
distribusjonstype = Distribusjonstype.VIKTIG,
).let {
it.toDokumentMedMetadata(pdf) shouldBe
it.toDokumentMedMetadata(pdf, harJournalført(), harDistribuert()) shouldBe
Dokument.MedMetadata.Informasjon.Viktig(
utenMetadata = Dokument.UtenMetadata.Informasjon.Viktig(
id = it.id,
Expand All @@ -63,7 +63,7 @@ class DokumentMedMetadataUtenFilTest {
dokumentUtenFil(
distribusjonstype = Distribusjonstype.ANNET,
).let {
it.toDokumentMedMetadata(pdf) shouldBe
it.toDokumentMedMetadata(pdf, harJournalført(), harDistribuert()) shouldBe
Dokument.MedMetadata.Informasjon.Annet(
utenMetadata = Dokument.UtenMetadata.Informasjon.Annet(
id = it.id,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,12 +89,11 @@ class DokumentPostgresRepo(
override fun hentForSak(id: UUID): List<Dokument.MedMetadata> {
return dbMetrics.timeQuery("hentDokumentMedMetadataForSakId") {
sessionFactory.withSessionContext { ct ->
val genererte = dokumentHendelseRepo.hentForSak(id, ct).hentGenererte()
val dokumenterFraHendelser = genererte.map {
val fil = dokumentHendelseRepo.hentFilFor(it.hendelseId, ct)!!
it.dokumentUtenFil.toDokumentMedMetadata(fil.fil)
}

val dokumenterFraHendelser = dokumentHendelseRepo.hentForSak(id, ct).tilDokumenterMedMetadata(
hentDokumentForHendelseId = { hendelseId ->
dokumentHendelseRepo.hentFilFor(hendelseId, ct)
},
)
(
ct.withSession {
"""
Expand Down

0 comments on commit e4ce153

Please sign in to comment.