Skip to content

Commit

Permalink
Legg til kommentar etter retur fra navno og mapping av adresse fra S…
Browse files Browse the repository at this point in the history
…AF (#433)
  • Loading branch information
ugur93 authored Nov 13, 2023
1 parent 1ccf813 commit db7fe21
Show file tree
Hide file tree
Showing 30 changed files with 390 additions and 146 deletions.

This file was deleted.

23 changes: 23 additions & 0 deletions src/main/java/no/nav/bidrag/dokument/arkiv/BidragDokumentArkiv.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package no.nav.bidrag.dokument.arkiv

import mu.KLogger
import mu.KotlinLogging
import no.nav.security.token.support.spring.api.EnableJwtTokenValidation
import org.springframework.boot.SpringApplication
import org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration

@JvmField
val SECURE_LOGGER: KLogger = KotlinLogging.logger("secureLogger")

@EnableJwtTokenValidation(ignore = ["org.springframework", "org.springdoc"])
@SpringBootApplication(exclude = [SecurityAutoConfiguration::class, ManagementWebSecurityAutoConfiguration::class])
class BidragDokumentArkiv

fun main(args: Array<String>) {
val profile = if (args.isEmpty()) BidragDokumentArkivConfig.PROFILE_LIVE else args[0]
val app = SpringApplication(BidragDokumentArkiv::class.java)
app.setAdditionalProfiles(profile)
app.run(*args)
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package no.nav.bidrag.dokument.arkiv.consumer;

import static no.nav.bidrag.dokument.arkiv.BidragDokumentArkiv.SECURE_LOGGER;
import static no.nav.bidrag.dokument.arkiv.BidragDokumentArkivKt.SECURE_LOGGER;
import static no.nav.bidrag.dokument.arkiv.CacheConfig.PERSON_ADRESSE_CACHE;
import static no.nav.bidrag.dokument.arkiv.CacheConfig.PERSON_CACHE;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import io.swagger.v3.oas.annotations.security.SecurityRequirement
import mu.KotlinLogging
import no.nav.bidrag.commons.util.KildesystemIdenfikator
import no.nav.bidrag.commons.web.EnhetFilter
import no.nav.bidrag.dokument.arkiv.BidragDokumentArkiv
import no.nav.bidrag.dokument.arkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.dto.AvvikshendelseIntern
import no.nav.bidrag.dokument.arkiv.service.AvvikService
import no.nav.bidrag.transport.dokument.AvvikType
Expand All @@ -27,7 +27,7 @@ import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestHeader
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController
import java.util.*
import java.util.Optional

private val LOGGER = KotlinLogging.logger {}

Expand Down Expand Up @@ -129,7 +129,7 @@ class AvvikController(private val avvikService: AvvikService) : BaseController()
avvikshendelse.avvikType,
journalpostId
)
BidragDokumentArkiv.SECURE_LOGGER.info(
SECURE_LOGGER.info(
"Behandle avvik {} for journalpost {}: {}",
avvikshendelse.avvikType,
journalpostId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.responses.ApiResponses
import no.nav.bidrag.commons.util.KildesystemIdenfikator
import no.nav.bidrag.dokument.arkiv.BidragDokumentArkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.consumer.BestemKanalResponse
import no.nav.bidrag.dokument.arkiv.dto.BestemDistribusjonKanalRequest
import no.nav.bidrag.dokument.arkiv.dto.DistribuerJournalpostRequestInternal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.responses.ApiResponses
import io.swagger.v3.oas.annotations.security.SecurityRequirement
import no.nav.bidrag.commons.util.KildesystemIdenfikator
import no.nav.bidrag.commons.web.EnhetFilter
import no.nav.bidrag.dokument.arkiv.BidragDokumentArkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.dto.EndreJournalpostCommandIntern
import no.nav.bidrag.dokument.arkiv.dto.Journalpost
import no.nav.bidrag.dokument.arkiv.model.Discriminator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.responses.ApiResponse
import io.swagger.v3.oas.annotations.responses.ApiResponses
import io.swagger.v3.oas.annotations.security.SecurityRequirement
import no.nav.bidrag.dokument.arkiv.BidragDokumentArkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.dto.validerKanOppretteJournalpost
import no.nav.bidrag.dokument.arkiv.service.OpprettJournalpostService
import no.nav.bidrag.transport.dokument.OpprettJournalpostRequest
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package no.nav.bidrag.dokument.arkiv.kafka;

import static no.nav.bidrag.dokument.arkiv.BidragDokumentArkivKt.SECURE_LOGGER;

import com.google.common.base.Strings;
import io.micrometer.core.instrument.DistributionSummary;
import io.micrometer.core.instrument.MeterRegistry;
import java.util.Optional;
import java.util.stream.Collectors;
import no.nav.bidrag.dokument.arkiv.dto.Dokument;
import no.nav.bidrag.dokument.arkiv.dto.Journalpost;
import no.nav.bidrag.dokument.arkiv.dto.JournalpostKanal;
Expand All @@ -17,10 +20,6 @@
import org.springframework.retry.support.RetryTemplate;
import org.springframework.stereotype.Service;

import java.util.stream.Collectors;

import static no.nav.bidrag.dokument.arkiv.BidragDokumentArkiv.SECURE_LOGGER;

@Service
public class BehandleJournalforingHendelseService {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package no.nav.bidrag.dokument.arkiv.kafka

import io.micrometer.core.instrument.MeterRegistry
import mu.KotlinLogging
import no.nav.bidrag.dokument.arkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.consumer.DokarkivConsumer
import no.nav.bidrag.dokument.arkiv.consumer.OppgaveConsumer
import no.nav.bidrag.dokument.arkiv.dto.Journalpost
Expand Down Expand Up @@ -52,7 +53,12 @@ class BehandleOppgaveHendelseService(
journalpostService
.hentJournalpost(oppgave.journalpostId!!.toLong())?.let { journalpost: Journalpost ->
if (journalpost.manglerReturDetaljForSisteRetur()) {
dokarkivConsumer.endre(OpprettNyReturLoggRequest(journalpost))
dokarkivConsumer.endre(
OpprettNyReturLoggRequest(
journalpost,
opprettKommentarSomLeggesTilReturlogg(journalpost)
)
)
LOGGER.info {
"Lagt til ny returlogg med returdato ${LocalDate.now()} på journalpost ${journalpost.journalpostId} med dokumentdato ${journalpost.hentDatoDokument()}."
}
Expand Down Expand Up @@ -106,12 +112,21 @@ class BehandleOppgaveHendelseService(
oppgave: OppgaveData
) {
try {
val kommentar = opprettKommentarSomLeggesTilOppgave(journalpost)
if (oppgave.saksreferanse != journalpost.hentSaksnummer()) {
oppgaveConsumer.patchOppgaveWithVersionRetry(
OppdaterSakRequest(oppgave, journalpost.hentSaksnummer())
OppdaterSakRequest(
oppgave,
journalpost.hentSaksnummer(),
kommentar
)
)
LOGGER.info {
"Oppdatert retur oppgave ${oppgave.id} saksreferanse til ${journalpost.hentSaksnummer()}. JournalpostId=${journalpost.journalpostId}"
"Oppdatert returoppgave ${oppgave.id} saksreferanse til ${journalpost.hentSaksnummer()} og lagt til kommentar $kommentar. JournalpostId=${journalpost.journalpostId}"
}
} else {
LOGGER.info {
"Returoppgave ${oppgave.id} har allerede saksreferanse ${journalpost.hentSaksnummer()}. Gjør ingen endringer. JournalpostId=${journalpost.journalpostId}"
}
}
} catch (e: Exception) {
Expand All @@ -120,4 +135,18 @@ class BehandleOppgaveHendelseService(
}
}
}

private fun Journalpost.harReturKommetFraNavNo() =
distribuertTilAdresse() == null && tilleggsopplysninger.isOriginalDistribuertDigitalt()

private fun opprettKommentarSomLeggesTilOppgave(journalpost: Journalpost): String? {
SECURE_LOGGER.info(
"Journalpost kommet retur med følgende detaljer origDistDigitalt=${journalpost.tilleggsopplysninger.isOriginalDistribuertDigitalt()} jpId=${journalpost.journalpostId} status=${journalpost.journalstatus} adresse=${journalpost.distribuertTilAdresse()}"
)
return if (journalpost.harReturKommetFraNavNo()) "Mottaker har ikke åpnet forsendelsen via www.nav.no innen 40 timer. Ingen postadresse er registrert. Vurder om mottaker har adresse forsendelsen kan sendes til." else null
}

private fun opprettKommentarSomLeggesTilReturlogg(journalpost: Journalpost): String {
return if (journalpost.harReturKommetFraNavNo()) "Distribusjon feilet, mottaker mangler postadresse" else "Returpost"
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package no.nav.bidrag.dokument.arkiv.kafka

import com.fasterxml.jackson.databind.ObjectMapper
import no.nav.bidrag.dokument.arkiv.BidragDokumentArkiv
import no.nav.bidrag.dokument.arkiv.BidragDokumentArkivConfig
import no.nav.bidrag.dokument.arkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.model.Discriminator
import no.nav.bidrag.dokument.arkiv.model.JournalpostHarIkkeKommetIRetur
import no.nav.bidrag.dokument.arkiv.model.ResourceByDiscriminator
Expand Down Expand Up @@ -31,7 +31,6 @@ import org.springframework.kafka.support.ExponentialBackOffWithMaxRetries
import org.springframework.kafka.support.serializer.ErrorHandlingDeserializer
import org.springframework.util.backoff.ExponentialBackOff
import java.time.Duration
import java.util.*

@Configuration
class BidragDokumentArkivKafkaConfig {
Expand Down Expand Up @@ -72,7 +71,7 @@ class BidragDokumentArkivKafkaConfig {
val offset = rec.offset()
val topic = rec.topic()
val partition = rec.topic()
BidragDokumentArkiv.SECURE_LOGGER.error(
SECURE_LOGGER.error(
"Kafka melding med nøkkel {}, partition {} og topic {} feilet på offset {}. Melding som feilet: {}",
key,
partition,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package no.nav.bidrag.dokument.arkiv.kafka

import com.fasterxml.jackson.core.JsonProcessingException
import com.fasterxml.jackson.databind.ObjectMapper
import no.nav.bidrag.dokument.arkiv.BidragDokumentArkiv
import no.nav.bidrag.dokument.arkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.dto.Journalpost
import no.nav.bidrag.dokument.arkiv.dto.Saksbehandler
import no.nav.bidrag.dokument.arkiv.model.JournalpostHendelseException
Expand Down Expand Up @@ -74,7 +74,7 @@ open class HendelserProducer(
private fun publish(journalpostHendelse: JournalpostHendelse) {
try {
val message = objectMapper.writeValueAsString(journalpostHendelse)
BidragDokumentArkiv.SECURE_LOGGER.info("Publiserer hendelse {}", message)
SECURE_LOGGER.info("Publiserer hendelse {}", message)
LOGGER.info(
"Publiserer hendelse med journalpostId={}",
journalpostHendelse.journalpostId
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package no.nav.bidrag.dokument.arkiv.service

import no.nav.bidrag.dokument.arkiv.BidragDokumentArkiv
import no.nav.bidrag.dokument.arkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.consumer.DokarkivConsumer
import no.nav.bidrag.dokument.arkiv.consumer.PersonConsumer
import no.nav.bidrag.dokument.arkiv.dto.AvsenderMottaker
Expand Down Expand Up @@ -124,7 +124,7 @@ class AvvikService(
else -> throw AvvikNotSupportedException("Avvik ${avvikshendelseIntern.avvikstype} ikke støttet")
}
publiserHendelse(journalpost, avvikshendelseIntern.saksbehandlersEnhet)
BidragDokumentArkiv.SECURE_LOGGER.info(
SECURE_LOGGER.info(
"Avvik {} ble utført på journalpost {} av bruker {} og enhet {} med beskrivelse {} - avvik {}",
avvikshendelseIntern.avvikstype,
avvikshendelseIntern.journalpostId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import com.google.common.base.Strings
import io.micrometer.core.instrument.DistributionSummary
import io.micrometer.core.instrument.MeterRegistry
import mu.KotlinLogging
import no.nav.bidrag.dokument.arkiv.BidragDokumentArkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.consumer.BestemKanalResponse
import no.nav.bidrag.dokument.arkiv.consumer.DistribusjonsKanal
import no.nav.bidrag.dokument.arkiv.consumer.DokdistFordelingConsumer
Expand Down Expand Up @@ -39,7 +39,7 @@ import no.nav.bidrag.transport.dokument.DistribusjonInfoDto
import no.nav.bidrag.transport.dokument.UtsendingsInfoDto
import org.springframework.stereotype.Service
import java.time.LocalDate
import java.util.*
import java.util.Objects

private val LOGGER = KotlinLogging.logger {}

Expand Down Expand Up @@ -224,7 +224,7 @@ class DistribuerJournalpostService(
)

// Distribusjonsløpet oppdaterer journalpost og overskriver alt av tilleggsopplysninger. Hent journalpost på nytt for å unngå overskrive noe som distribusjon har lagret
oppdaterTilleggsopplysninger(journalpostId, journalpost, adresse)
oppdaterTilleggsopplysninger(journalpostId, journalpost, adresse, bestemKanalResponse = distribusjonKanal)
oppdaterDokumentdatoTilIdag(journalpostId, journalpost)
measureDistribution(journalpost, batchId)
return distribuerResponse
Expand Down Expand Up @@ -267,12 +267,15 @@ class DistribuerJournalpostService(
journalpostId: Long,
journalpostFør: Journalpost,
adresse: DistribuerTilAdresse? = null,
erLokalUtskrift: Boolean = false
erLokalUtskrift: Boolean = false,
bestemKanalResponse: BestemKanalResponse? = null
) {
val journalpostEtter = hentJournalpost(journalpostId)
leggTilEksisterendeTilleggsopplysninger(journalpostEtter, journalpostFør)
erLokalUtskrift.ifFalse { adresse?.run { lagreAdresse(adresse, journalpostEtter) } }
erLokalUtskrift.ifFalse { journalpostEtter.tilleggsopplysninger.setDistribusjonBestillt() }
bestemKanalResponse?.distribusjonskanal?.takeIf { it == DistribusjonsKanal.DITT_NAV || it == DistribusjonsKanal.SDP }
?.let { journalpostEtter.tilleggsopplysninger.setOriginalDistribuertDigitalt() }
val saksbehandlerId = saksbehandlerInfoManager.hentSaksbehandlerBrukerId()
saksbehandlerId?.run {
journalpostEtter.tilleggsopplysninger.setDistribuertAvIdent(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package no.nav.bidrag.dokument.arkiv.service

import no.nav.bidrag.dokument.arkiv.BidragDokumentArkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.consumer.OppgaveConsumer
import no.nav.bidrag.dokument.arkiv.consumer.PersonConsumer
import no.nav.bidrag.dokument.arkiv.dto.FerdigstillOppgaveRequest
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package no.nav.bidrag.dokument.arkiv.service

import no.nav.bidrag.dokument.arkiv.BidragDokumentArkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.SECURE_LOGGER
import no.nav.bidrag.dokument.arkiv.consumer.BidragDokumentConsumer
import no.nav.bidrag.dokument.arkiv.consumer.DokarkivConsumer
import no.nav.bidrag.dokument.arkiv.consumer.SafConsumer
Expand Down
Loading

0 comments on commit db7fe21

Please sign in to comment.