diff --git a/behandlingslager/domene/src/main/java/no/nav/foreldrepenger/tilbakekreving/grunnlag/KravgrunnlagValidator.java b/behandlingslager/domene/src/main/java/no/nav/foreldrepenger/tilbakekreving/grunnlag/KravgrunnlagValidator.java index 8955f9395..2af6c6a38 100644 --- a/behandlingslager/domene/src/main/java/no/nav/foreldrepenger/tilbakekreving/grunnlag/KravgrunnlagValidator.java +++ b/behandlingslager/domene/src/main/java/no/nav/foreldrepenger/tilbakekreving/grunnlag/KravgrunnlagValidator.java @@ -13,10 +13,13 @@ import no.nav.foreldrepenger.tilbakekreving.domene.typer.Henvisning; import no.nav.foreldrepenger.tilbakekreving.felles.Periode; import no.nav.foreldrepenger.tilbakekreving.grunnlag.kodeverk.KlasseType; -import no.nav.vedtak.exception.IntegrasjonException; +import no.nav.vedtak.exception.VLException; public class KravgrunnlagValidator { + private KravgrunnlagValidator() { + } + private static final List> VALIDATORER = List.of( KravgrunnlagValidator::validerPeriodeInnenforMåned, KravgrunnlagValidator::validerOverlappendePerioder, @@ -75,7 +78,7 @@ private static void validerOverlappendePerioder(Kravgrunnlag431 kravgrunnlag) { List sortertePerioder = kravgrunnlag.getPerioder().stream() .map(KravgrunnlagPeriode432::getPeriode) .sorted(Comparator.comparing(Periode::getFom)) - .collect(Collectors.toList()); + .toList(); for (int i = 1; i < sortertePerioder.size(); i++) { Periode forrige = sortertePerioder.get(i - 1); Periode denne = sortertePerioder.get(i); @@ -173,59 +176,59 @@ private static void validerYtelPosteringTilbakekrevesMotNyttOgOpprinneligUtbetal return YearMonth.of(fom.getYear(), fom.getMonth()); } - public static class UgyldigKravgrunnlagException extends IntegrasjonException { + public static class UgyldigKravgrunnlagException extends VLException { public UgyldigKravgrunnlagException(String kode, String message) { - super(kode, message); + super(kode, message, null); } } public static class KravgrunnlagFeil { - static IntegrasjonException manglerFelt(String felt, Periode periode) { + static UgyldigKravgrunnlagException manglerFelt(String felt, Periode periode) { return new UgyldigKravgrunnlagException("FPT-879715", String.format("Ugyldig kravgrunnlag. Mangler forventet felt %s for periode %s.", felt, periode)); } - static IntegrasjonException manglerReferanse(String kravgrunnlagId) { + static UgyldigKravgrunnlagException manglerReferanse(String kravgrunnlagId) { return new UgyldigKravgrunnlagException("FPT-879716", String.format("Ugyldig kravgrunnlag for kravgrunnlagId %s. Mangler referanse.", kravgrunnlagId)); } - static IntegrasjonException overlappendePerioder(String kravgrunnlagId, Periode a, Periode b) { + static UgyldigKravgrunnlagException overlappendePerioder(String kravgrunnlagId, Periode a, Periode b) { return new UgyldigKravgrunnlagException("FPT-936521", String.format("Ugyldig kravgrunnlag for kravgrunnlagId %s. Overlappende perioder %s og %s.", kravgrunnlagId, a, b)); } - static IntegrasjonException manglerKlasseTypeFeil(String kravgrunnlagId, Periode periode) { + static UgyldigKravgrunnlagException manglerKlasseTypeFeil(String kravgrunnlagId, Periode periode) { return new UgyldigKravgrunnlagException("FPT-727260", String.format("Ugyldig kravgrunnlag for kravgrunnlagId %s. Perioden %s mangler postering med klasseType=FEIL.", kravgrunnlagId, periode)); } - static IntegrasjonException manglerKlasseTypeYtel(String kravgrunnlagId, Periode periode) { + static UgyldigKravgrunnlagException manglerKlasseTypeYtel(String kravgrunnlagId, Periode periode) { return new UgyldigKravgrunnlagException("FPT-727261", String.format("Ugyldig kravgrunnlag for kravgrunnlagId %s. Perioden %s mangler postering med klasseType=YTEL.", kravgrunnlagId, periode)); } - static IntegrasjonException periodeIkkInnenforMåned(String kravgrunnlagId, Periode periode) { + static UgyldigKravgrunnlagException periodeIkkInnenforMåned(String kravgrunnlagId, Periode periode) { return new UgyldigKravgrunnlagException("FPT-438893", String.format("Ugyldig kravgrunnlag for kravgrunnlagId %s. Perioden %s er ikke innenfor en kalendermåned.", kravgrunnlagId, periode)); } - static IntegrasjonException manglerMaksSkatt(YearMonth måned) { + static UgyldigKravgrunnlagException manglerMaksSkatt(YearMonth måned) { return new UgyldigKravgrunnlagException("FPT-734548", String.format("Ugyldig kravgrunnlag. Mangler max skatt for måned %s", måned)); } - static IntegrasjonException feilSkatt(YearMonth måned) { + static UgyldigKravgrunnlagException feilSkatt(YearMonth måned) { return new UgyldigKravgrunnlagException("FPT-560295", String.format("Ugyldig kravgrunnlag. For måned %s er opplyses ulike verdier maks skatt i ulike perioder", måned)); } - static IntegrasjonException feilSkatt(YearMonth måned, BigDecimal maxSkatt, BigDecimal maxUtregnbarSkatt) { + static UgyldigKravgrunnlagException feilSkatt(YearMonth måned, BigDecimal maxSkatt, BigDecimal maxUtregnbarSkatt) { return new UgyldigKravgrunnlagException("FPT-930235", String.format("Ugyldig kravgrunnlag. For måned %s er maks skatt %s, men maks tilbakekreving ganget med skattesats blir %s", måned, maxSkatt, maxUtregnbarSkatt)); } - static IntegrasjonException feilYtelseEllerFeilutbetaling(String kravgrunnlagId, Periode periode, BigDecimal sumTilbakekrevingYtel, BigDecimal belopNyttFraFeilpostering) { + static UgyldigKravgrunnlagException feilYtelseEllerFeilutbetaling(String kravgrunnlagId, Periode periode, BigDecimal sumTilbakekrevingYtel, BigDecimal belopNyttFraFeilpostering) { return new UgyldigKravgrunnlagException("FPT-361605", String.format("Ugyldig kravgrunnlag for kravgrunnlagId %s. For periode %s er sum tilkakekreving fra YTEL %s, mens belopNytt i FEIL er %s. Det er forventet at disse er like.", kravgrunnlagId, periode, sumTilbakekrevingYtel, belopNyttFraFeilpostering)); } - static IntegrasjonException ytelPosteringHvorTilbakekrevesIkkeStemmerMedNyttOgOpprinneligBeløp(String kravgrunnlagId, Periode periode, BigDecimal tilbakekrevesBeløp, BigDecimal nyttBeløp, BigDecimal opprinneligBeløp) { + static UgyldigKravgrunnlagException ytelPosteringHvorTilbakekrevesIkkeStemmerMedNyttOgOpprinneligBeløp(String kravgrunnlagId, Periode periode, BigDecimal tilbakekrevesBeløp, BigDecimal nyttBeløp, BigDecimal opprinneligBeløp) { return new UgyldigKravgrunnlagException("FPT-615761", String.format("Ugyldig kravgrunnlag for kravgrunnlagId %s. For perioden %s finnes YTEL-postering med tilbakekrevesBeløp %s som er større enn differanse mellom nyttBeløp %s og opprinneligBeløp %s", kravgrunnlagId, periode, tilbakekrevesBeløp, nyttBeløp, opprinneligBeløp)); } - static IntegrasjonException feilBeløp(String kravgrunnlagId, Periode periode) { + static UgyldigKravgrunnlagException feilBeløp(String kravgrunnlagId, Periode periode) { return new UgyldigKravgrunnlagException("FPT-930247", String.format("Ugyldig kravgrunnlag for kravgrunnlagId %s. Perioden %s har FEIL postering med negativ beløp", kravgrunnlagId, periode)); } } diff --git a/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/henleggelse/HenleggBehandlingTjeneste.java b/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/henleggelse/HenleggBehandlingTjeneste.java index 980e3faf7..7a9dd2f7e 100644 --- a/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/henleggelse/HenleggBehandlingTjeneste.java +++ b/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/henleggelse/HenleggBehandlingTjeneste.java @@ -1,6 +1,7 @@ package no.nav.foreldrepenger.tilbakekreving.behandling.steg.henleggelse; import java.time.LocalDate; +import java.util.UUID; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; @@ -35,7 +36,6 @@ public class HenleggBehandlingTjeneste { private BehandlingskontrollTjeneste behandlingskontrollTjeneste; private HistorikkinnslagTjeneste historikkinnslagTjeneste; - static final TaskType HENLEGGELSESBREV_TASK_TYPE = TaskType.forProsessTask(SendHenleggelsesbrevTask.class); private static final long OPPRETTELSE_DAGER_BEGRENSNING = 6L; HenleggBehandlingTjeneste() { @@ -106,9 +106,10 @@ private void doHenleggBehandling(long behandlingId, BehandlingResultatType årsa } private void sendHenleggelsesbrev(Behandling behandling, String fritekst) { - var henleggelseBrevTask = ProsessTaskData.forTaskType(HENLEGGELSESBREV_TASK_TYPE); + var henleggelseBrevTask = ProsessTaskData.forTaskType(TaskType.forProsessTask(SendHenleggelsesbrevTask.class)); henleggelseBrevTask.setBehandling(behandling.getFagsakId(), behandling.getId(), behandling.getAktørId().getId()); henleggelseBrevTask.setPayload(fritekst); + henleggelseBrevTask.setProperty(SendHenleggelsesbrevTask.BESTILLING_UUID, UUID.randomUUID().toString()); // Brukes som eksternReferanseId ved journalføring av brev henleggelseBrevTask.setCallIdFraEksisterende(); taskTjeneste.lagre(henleggelseBrevTask); } diff --git a/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/iverksettvedtak/ProsessTaskIverksett.java b/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/iverksettvedtak/ProsessTaskIverksett.java index a160ed59f..08e0435e0 100644 --- a/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/iverksettvedtak/ProsessTaskIverksett.java +++ b/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/iverksettvedtak/ProsessTaskIverksett.java @@ -1,5 +1,7 @@ package no.nav.foreldrepenger.tilbakekreving.behandling.steg.iverksettvedtak; +import java.util.UUID; + import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.Behandling; @@ -26,7 +28,7 @@ public void opprettIverksettingstasker(Behandling behandling, boolean sendVedtak var taskGruppe = new ProsessTaskGruppe(); taskGruppe.addNesteSekvensiell(ProsessTaskData.forProsessTask(SendVedtakTilOppdragsystemetTask.class)); if (sendVedtaksbrev) { - taskGruppe.addNesteSekvensiell(ProsessTaskData.forProsessTask(SendVedtaksbrevTask.class)); + opprettVedtaksbrevProsessTask(taskGruppe); } taskGruppe.addNesteSekvensiell(ProsessTaskData.forProsessTask(AvsluttBehandlingTask.class)); taskGruppe.setBehandling(behandling.getFagsakId(), behandling.getId(), behandling.getAktørId().getId()); @@ -36,10 +38,17 @@ public void opprettIverksettingstasker(Behandling behandling, boolean sendVedtak taskTjeneste.lagre(taskGruppe); } + private static void opprettVedtaksbrevProsessTask(ProsessTaskGruppe taskGruppe) { + var taskData = ProsessTaskData.forProsessTask(SendVedtaksbrevTask.class); + taskData.setProperty(SendVedtaksbrevTask.BESTILLING_UUID, + UUID.randomUUID().toString()); // Brukes som eksternReferanseId ved journalføring av brev + taskGruppe.addNesteSekvensiell(taskData); + } + private void opprettDvhProsessTask(Behandling behandling, ProsessTaskGruppe taskGruppe) { - ProsessTaskData dvhProsessTaskData = ProsessTaskData.forProsessTask(SendVedtakHendelserTilDvhTask.class); - dvhProsessTaskData.setBehandling(behandling.getFagsakId(), behandling.getId(), behandling.getAktørId().getId()); - taskGruppe.addNesteSekvensiell(dvhProsessTaskData); + var taskData = ProsessTaskData.forProsessTask(SendVedtakHendelserTilDvhTask.class); + taskData.setBehandling(behandling.getFagsakId(), behandling.getId(), behandling.getAktørId().getId()); + taskGruppe.addNesteSekvensiell(taskData); } } diff --git a/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/iverksettvedtak/SendVedtaksbrevTask.java b/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/iverksettvedtak/SendVedtaksbrevTask.java index a6e8bfb61..63498c836 100644 --- a/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/iverksettvedtak/SendVedtaksbrevTask.java +++ b/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/iverksettvedtak/SendVedtaksbrevTask.java @@ -16,11 +16,16 @@ import no.nav.vedtak.felles.prosesstask.api.ProsessTaskHandler; import no.nav.vedtak.log.mdc.MdcExtendedLogContext; +import java.util.Optional; +import java.util.UUID; + @ApplicationScoped @ProsessTask("iverksetteVedtak.sendVedtaksbrev") @FagsakProsesstaskRekkefølge(gruppeSekvens = false) public class SendVedtaksbrevTask implements ProsessTaskHandler { + public static final String BESTILLING_UUID = "bestillingUuid"; + private static final Logger log = LoggerFactory.getLogger(SendVedtaksbrevTask.class); private static final MdcExtendedLogContext LOG_CONTEXT = MdcExtendedLogContext.getContext("prosess"); @@ -41,11 +46,12 @@ public SendVedtaksbrevTask(VergeRepository vergeRepository, @Override public void doTask(ProsessTaskData prosessTaskData) { Long behandlingId = ProsessTaskDataWrapper.wrap(prosessTaskData).getBehandlingId(); + var unikBestillingUuid = UUID.fromString(Optional.ofNullable(prosessTaskData.getPropertyValue(BESTILLING_UUID)).orElse(UUID.randomUUID().toString())); LOG_CONTEXT.add("behandling", behandlingId); if (vergeRepository.finnesVerge(behandlingId)) { - vedtaksbrevTjeneste.sendVedtaksbrev(behandlingId, BrevMottaker.VERGE); + vedtaksbrevTjeneste.sendVedtaksbrev(behandlingId, BrevMottaker.VERGE, unikBestillingUuid); } - vedtaksbrevTjeneste.sendVedtaksbrev(behandlingId, BrevMottaker.BRUKER); + vedtaksbrevTjeneste.sendVedtaksbrev(behandlingId, BrevMottaker.BRUKER, unikBestillingUuid); log.info("Utført for behandling: {}", behandlingId); } } diff --git a/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/sendvarsel/VarselSteg.java b/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/sendvarsel/VarselSteg.java index 44d35d946..2dd5ba320 100644 --- a/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/sendvarsel/VarselSteg.java +++ b/behandlingsprosess/src/main/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/sendvarsel/VarselSteg.java @@ -3,13 +3,13 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Optional; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; +import java.util.UUID; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.BehandleStegResultat; import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.BehandlingSteg; import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.BehandlingStegRef; @@ -106,6 +106,8 @@ private void opprettSendVarselTask(Behandling behandling) { private void sendVarsel(Behandling behandling, ProsessTaskGruppe taskGruppe) { ProsessTaskData sendVarselbrev = ProsessTaskData.forProsessTask(SendVarselbrevTask.class); sendVarselbrev.setBehandling(behandling.getFagsakId(), behandling.getId(), behandling.getAktørId().getId()); + sendVarselbrev.setProperty(SendVarselbrevTask.BESTILLING_UUID, UUID.randomUUID().toString()); // Brukes som eksternReferanseId ved journalføring av brev + sendVarselbrev.setCallIdFraEksisterende(); taskGruppe.addNesteSekvensiell(sendVarselbrev); } diff --git a/behandlingsprosess/src/test/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/henleggelse/HenleggBehandlingTjenesteTest.java b/behandlingsprosess/src/test/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/henleggelse/HenleggBehandlingTjenesteTest.java index cae26053f..8d2be9f2a 100644 --- a/behandlingsprosess/src/test/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/henleggelse/HenleggBehandlingTjenesteTest.java +++ b/behandlingsprosess/src/test/java/no/nav/foreldrepenger/tilbakekreving/behandling/steg/henleggelse/HenleggBehandlingTjenesteTest.java @@ -14,6 +14,8 @@ import java.time.LocalDateTime; import java.util.List; +import no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.henleggelse.SendHenleggelsesbrevTask; +import no.nav.vedtak.felles.prosesstask.api.TaskType; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -194,7 +196,7 @@ void kan_sende_henleggelsesbrev() { verify(taskTjeneste, times(1)).lagre(captor.capture()); var prosessTaskData = captor.getAllValues(); assertThat(prosessTaskData).isNotEmpty(); - assertThat(prosessTaskData.get(0).taskType()).isEqualTo(HenleggBehandlingTjeneste.HENLEGGELSESBREV_TASK_TYPE); + assertThat(prosessTaskData.get(0).taskType()).isEqualTo(TaskType.forProsessTask(SendHenleggelsesbrevTask.class)); assertHenleggelse(internBehandlingId); } @@ -208,7 +210,7 @@ void kan_sende_henleggelsesbrev_for_tilbakekreving_revurdering_med_henlagt_feilo verify(taskTjeneste, times(1)).lagre(captor.capture()); var prosessTaskData = captor.getAllValues(); assertThat(prosessTaskData).isNotEmpty(); - assertThat(prosessTaskData.get(0).taskType()).isEqualTo(HenleggBehandlingTjeneste.HENLEGGELSESBREV_TASK_TYPE); + assertThat(prosessTaskData.get(0).taskType()).isEqualTo(TaskType.forProsessTask(SendHenleggelsesbrevTask.class)); assertHenleggelse(revuderingBehandlingId); } diff --git a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/brevmaler/DokumentBehandlingTjeneste.java b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/brevmaler/DokumentBehandlingTjeneste.java index eae69b729..350b8150b 100644 --- a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/brevmaler/DokumentBehandlingTjeneste.java +++ b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/brevmaler/DokumentBehandlingTjeneste.java @@ -2,6 +2,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.UUID; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; @@ -122,10 +123,10 @@ private boolean sjekkOmTilgjengelig(Behandling behandling, DokumentMalType mal) var sendVarselbrev = ProsessTaskData.forProsessTask(SendManueltVarselbrevTask.class); sendVarselbrev.setProperty(SendManueltVarselbrevTask.MAL_TYPE, malType.getKode()); + sendVarselbrev.setProperty(SendManueltVarselbrevTask.BESTILLING_UUID, UUID.randomUUID().toString()); // Brukes som eksternReferanseId ved journalføring av brev sendVarselbrev.setPayload(fritekst); sendVarselbrev.setBehandling(behandling.getFagsakId(), behandlingId, behandling.getAktørId().getId()); sendVarselbrev.setCallIdFraEksisterende(); - taskTjeneste.lagre(sendVarselbrev); } @@ -136,9 +137,10 @@ private boolean sjekkOmTilgjengelig(Behandling behandling, DokumentMalType mal) } var sendInnhentDokumentasjonBrev = ProsessTaskData.forProsessTask(InnhentDokumentasjonbrevTask.class); + sendInnhentDokumentasjonBrev.setProperty(InnhentDokumentasjonbrevTask.BESTILLING_UUID, UUID.randomUUID().toString()); // Brukes som eksternReferanseId ved journalføring av brev sendInnhentDokumentasjonBrev.setPayload(fritekst); sendInnhentDokumentasjonBrev.setBehandling(behandling.getFagsakId(), behandlingId, behandling.getAktørId().getId()); - + sendInnhentDokumentasjonBrev.setCallIdFraEksisterende(); taskTjeneste.lagre(sendInnhentDokumentasjonBrev); } } diff --git "a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/felles/pdf/Journalf\303\270ringTjeneste.java" "b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/felles/pdf/Journalf\303\270ringTjeneste.java" index 224049013..658937e32 100644 --- "a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/felles/pdf/Journalf\303\270ringTjeneste.java" +++ "b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/felles/pdf/Journalf\303\270ringTjeneste.java" @@ -1,11 +1,13 @@ package no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.felles.pdf; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; +import java.util.Objects; +import java.util.UUID; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import no.nav.foreldrepenger.tilbakekreving.behandlingslager.aktør.Adresseinfo; import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.Behandling; import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.repository.BehandlingRepository; @@ -74,10 +76,12 @@ private AvsenderMottaker lagMottakerVerge(Long behandlingId) { } } - public JournalpostIdOgDokumentId journalførUtgåendeBrev(Long behandlingId, String dokumentkategori, BrevMetadata brevMetadata, BrevMottaker brevMottaker, byte[] vedleggPdf) { + public JournalpostIdOgDokumentId journalførUtgåendeBrev(Long behandlingId, String dokumentkategori, BrevMetadata brevMetadata, BrevMottaker brevMottaker, byte[] vedleggPdf, + UUID unikBestillingUuid) { LOG.info("Starter journalføring av {} til {} for behandlingId={}", dokumentkategori, brevMottaker, behandlingId); - boolean forsøkFerdigstill = true; + Objects.requireNonNull(unikBestillingUuid, "Bestilling UUID kan ikke være null"); + Behandling behandling = behandlingRepository.hentBehandling(behandlingId); var request = OpprettJournalpostRequest.nyUtgående() .medTema(utledTema(behandling.getFagsak().getFagsakYtelseType())) @@ -92,9 +96,10 @@ private AvsenderMottaker lagMottakerVerge(Long behandlingId) { .medTittel(brevMetadata.getTittel()) .medBrevkode(brevMetadata.getFagsaktype().getKode() + "-TILB") .leggTilDokumentvariant(new Dokumentvariant(Dokumentvariant.Variantformat.ARKIV, Dokumentvariant.Filtype.PDFA, vedleggPdf))) + .medEksternReferanseId(unikBestillingUuid + "-" + brevMottaker.name()) //Brev til bruker og ev. verge produseres med lik bestillingUuid fra samme task. .build(); - var response = dokArkivKlient.opprettJournalpost(request, forsøkFerdigstill); + var response = dokArkivKlient.opprettJournalpost(request, true); JournalpostId journalpostId = new JournalpostId(response.journalpostId()); if (response.dokumenter().size() != 1) { throw uforventetAntallDokumenterIRespons(response.dokumenter().size()); diff --git a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/felles/pdf/PdfBrevTjeneste.java b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/felles/pdf/PdfBrevTjeneste.java index b398644bc..44a29d88a 100644 --- a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/felles/pdf/PdfBrevTjeneste.java +++ b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/felles/pdf/PdfBrevTjeneste.java @@ -2,9 +2,7 @@ import java.nio.charset.StandardCharsets; import java.util.Base64; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.util.UUID; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; @@ -26,8 +24,6 @@ @ApplicationScoped public class PdfBrevTjeneste { - private static final Logger LOG = LoggerFactory.getLogger(PdfBrevTjeneste.class); - private JournalføringTjeneste journalføringTjeneste; private PdfGenerator pdfGenerator = new PdfGenerator(); @@ -50,15 +46,16 @@ public PdfBrevTjeneste(JournalføringTjeneste journalføringTjeneste, Behandling return pdfGenerator.genererPDFMedLogo(html, DokumentVariant.UTKAST); } - public void sendBrev(Long behandlingId, DetaljertBrevType detaljertBrevType, BrevData data) { - sendBrev(behandlingId, detaljertBrevType, null, null, data); + public void sendBrev(Long behandlingId, DetaljertBrevType detaljertBrevType, BrevData data, UUID unikBestillingUuid) { + sendBrev(behandlingId, detaljertBrevType, null, null, data, unikBestillingUuid); } - public void sendBrev(Long behandlingId, DetaljertBrevType detaljertBrevType, Long varsletBeløp, String fritekst, BrevData data) { + public void sendBrev(Long behandlingId, DetaljertBrevType detaljertBrevType, Long varsletBeløp, String fritekst, BrevData data, + UUID unikBestillingUuid) { valider(detaljertBrevType, varsletBeløp); valider(detaljertBrevType, data); - var dokumentreferanse = lagOgJournalførBrev(behandlingId, detaljertBrevType, data); + var dokumentreferanse = lagOgJournalførBrev(behandlingId, detaljertBrevType, data, unikBestillingUuid); lagTaskerForUtsendingOgSporing(behandlingId, detaljertBrevType, varsletBeløp, fritekst, data, dokumentreferanse); } @@ -73,10 +70,10 @@ private void lagTaskerForUtsendingOgSporing(Long behandlingId, DetaljertBrevType taskTjeneste.lagre(taskGruppe); } - private JournalpostIdOgDokumentId lagOgJournalførBrev(Long behandlingId, DetaljertBrevType detaljertBrevType, BrevData data) { + private JournalpostIdOgDokumentId lagOgJournalførBrev(Long behandlingId, DetaljertBrevType detaljertBrevType, BrevData data, UUID unikBestillingUuid) { var html = lagHtml(data); var pdf = pdfGenerator.genererPDFMedLogo(html, DokumentVariant.ENDELIG); - return journalføringTjeneste.journalførUtgåendeBrev(behandlingId, mapBrevTypeTilDokumentKategori(detaljertBrevType), data.getMetadata(), data.getMottaker(), pdf); + return journalføringTjeneste.journalførUtgåendeBrev(behandlingId, mapBrevTypeTilDokumentKategori(detaljertBrevType), data.getMetadata(), data.getMottaker(), pdf, unikBestillingUuid); } private ProsessTaskData lagPubliserJournalpostTask(Behandling behandling, BrevData brevdata, JournalpostIdOgDokumentId dokumentreferanse, BrevType brevType) { diff --git a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/fritekst/FritekstbrevSamletInfo.java b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/fritekst/FritekstbrevSamletInfo.java deleted file mode 100644 index f559dc6a2..000000000 --- a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/fritekst/FritekstbrevSamletInfo.java +++ /dev/null @@ -1,34 +0,0 @@ -package no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.fritekst; - -import no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.fritekstbrev.BrevMetadata; - -public class FritekstbrevSamletInfo { - - private BrevMetadata brevMetadata; - private String overskrift; - private String fritekstFraSaksbehandler; - - public BrevMetadata getBrevMetadata() { - return brevMetadata; - } - - public void setBrevMetadata(BrevMetadata brevMetadata) { - this.brevMetadata = brevMetadata; - } - - public String getOverskrift() { - return overskrift; - } - - public void setOverskrift(String overskrift) { - this.overskrift = overskrift; - } - - public String getFritekstFraSaksbehandler() { - return fritekstFraSaksbehandler; - } - - public void setFritekstFraSaksbehandler(String fritekstFraSaksbehandler) { - this.fritekstFraSaksbehandler = fritekstFraSaksbehandler; - } -} diff --git a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/fritekst/FritekstbrevTjeneste.java b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/fritekst/FritekstbrevTjeneste.java deleted file mode 100644 index 1119f842f..000000000 --- a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/fritekst/FritekstbrevTjeneste.java +++ /dev/null @@ -1,143 +0,0 @@ -package no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.fritekst; - -import java.util.Objects; -import java.util.Optional; -import java.util.UUID; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import no.nav.foreldrepenger.tilbakekreving.behandlingslager.aktør.Adresseinfo; -import no.nav.foreldrepenger.tilbakekreving.behandlingslager.aktør.Personinfo; -import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.Behandling; -import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.brev.DetaljertBrevType; -import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.repository.BehandlingRepository; -import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.repository.BehandlingRepositoryProvider; -import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.repository.EksternBehandlingRepository; -import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.repository.VergeRepository; -import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.verge.VergeEntitet; -import no.nav.foreldrepenger.tilbakekreving.behandlingslager.fagsak.FagsakYtelseType; -import no.nav.foreldrepenger.tilbakekreving.behandlingslager.geografisk.Språkkode; -import no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.felles.BrevMottaker; -import no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.felles.BrevMottakerUtil; -import no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.felles.EksternDataForBrevTjeneste; -import no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.felles.YtelseNavn; -import no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.felles.pdf.BrevData; -import no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.felles.pdf.PdfBrevTjeneste; -import no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.fritekstbrev.BrevMetadata; -import no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.fritekstbrev.FritekstbrevData; -import no.nav.foreldrepenger.tilbakekreving.fagsystem.klient.dto.SamletEksternBehandlingInfo; - -@ApplicationScoped -public class FritekstbrevTjeneste { - - private BehandlingRepository behandlingRepository; - private EksternBehandlingRepository eksternBehandlingRepository; - private VergeRepository vergeRepository; - - private EksternDataForBrevTjeneste eksternDataForBrevTjeneste; - private PdfBrevTjeneste pdfBrevTjeneste; - - FritekstbrevTjeneste() { - // for CDI - } - - @Inject - public FritekstbrevTjeneste(BehandlingRepositoryProvider repositoryProvider, - EksternDataForBrevTjeneste eksternDataForBrevTjeneste, - PdfBrevTjeneste pdfBrevTjeneste) { - this.behandlingRepository = repositoryProvider.getBehandlingRepository(); - this.eksternBehandlingRepository = repositoryProvider.getEksternBehandlingRepository(); - this.vergeRepository = repositoryProvider.getVergeRepository(); - - this.eksternDataForBrevTjeneste = eksternDataForBrevTjeneste; - this.pdfBrevTjeneste = pdfBrevTjeneste; - } - - public void sendFritekstbrev(Long behandlingId, String tittel, String overskrift, String fritekst, BrevMottaker brevMottaker) { - Behandling behandling = behandlingRepository.hentBehandling(behandlingId); - sendFritekstbrev(behandling, tittel, overskrift, fritekst, brevMottaker); - } - - public void sendFritekstbrev(Behandling behandling, String tittel, String overskrift, String fritekst, BrevMottaker brevMottaker) { - FritekstbrevSamletInfo fritekstbrevSamletInfo = lagFritekstbrevForSending(behandling, tittel, overskrift, fritekst, brevMottaker); - FritekstbrevData fritekstbrevData = lagFritekstbrev(fritekstbrevSamletInfo); - pdfBrevTjeneste.sendBrev(behandling.getId(), DetaljertBrevType.FRITEKST, BrevData.builder() - .setMottaker(brevMottaker) - .setMetadata(fritekstbrevData.getBrevMetadata()) - .setTittel(fritekstbrevData.getTittel()) - .setOverskrift(fritekstbrevData.getOverskrift()) - .setBrevtekst(fritekstbrevData.getBrevtekst()) - .build()); - } - - public byte[] hentForhåndsvisningFritekstbrev(Behandling behandling, String tittel, String overskrift, String fritekst) { - boolean finnesVerge = vergeRepository.finnesVerge(behandling.getId()); - BrevMottaker brevMottaker = finnesVerge ? BrevMottaker.VERGE : BrevMottaker.BRUKER; - FritekstbrevSamletInfo fritekstbrevSamletInfo = lagFritekstbrevForSending(behandling, tittel, overskrift, fritekst, brevMottaker); - FritekstbrevData fritekstbrevData = lagFritekstbrev(fritekstbrevSamletInfo); - - return pdfBrevTjeneste.genererForhåndsvisning(BrevData.builder() - .setMottaker(brevMottaker) - .setMetadata(fritekstbrevData.getBrevMetadata()) - .setOverskrift(fritekstbrevData.getOverskrift()) - .setBrevtekst(fritekstbrevData.getBrevtekst()) - .build()); - } - - private FritekstbrevSamletInfo lagFritekstbrevForSending(Behandling behandling, String tittel, String overskrift, String fritekst, BrevMottaker brevMottaker) { - Objects.requireNonNull(tittel, "tittel må være satt"); - Objects.requireNonNull(overskrift, "overskrift må være satt"); - Objects.requireNonNull(fritekst, "fritekst må være satt"); - Long behandlingId = behandling.getId(); - - FagsakYtelseType fagsakYtelseType = behandling.getFagsak().getFagsakYtelseType(); - Språkkode språkkode = hentSpråkkode(behandlingId); - Optional vergeEntitet = vergeRepository.finnVergeInformasjon(behandlingId); - boolean finnesVerge = vergeEntitet.isPresent(); - - //Henter data fra tps - YtelseNavn ytelseNavn = eksternDataForBrevTjeneste.hentYtelsenavn(fagsakYtelseType, språkkode); - Personinfo personinfo = eksternDataForBrevTjeneste.hentPerson(behandling.getFagsak().getFagsakYtelseType(), behandling.getAktørId().getId()); - Adresseinfo adresseinfo = eksternDataForBrevTjeneste.hentAdresse(behandling.getFagsak().getFagsakYtelseType(), personinfo, brevMottaker, vergeEntitet); - String vergeNavn = BrevMottakerUtil.getVergeNavn(vergeEntitet, adresseinfo); - - BrevMetadata metadata = new BrevMetadata.Builder() - .medBehandlendeEnhetId(behandling.getBehandlendeEnhetId()) - .medBehandlendeEnhetNavn(behandling.getBehandlendeEnhetNavn()) - .medFagsaktypenavnPåSpråk(ytelseNavn.getNavnPåBrukersSpråk()) - .medFagsaktype(behandling.getFagsak().getFagsakYtelseType()) - .medSprakkode(språkkode) - .medAnsvarligSaksbehandler("VL") - .medSakspartId(personinfo.getPersonIdent().getIdent()) - .medMottakerAdresse(adresseinfo) - .medSaksnummer(behandling.getFagsak().getSaksnummer().getVerdi()) - .medSakspartNavn(personinfo.getNavn()) - .medVergeNavn(vergeNavn) - .medFinnesVerge(finnesVerge) - .medTittel(tittel) - .medBehandlingtype(behandling.getType()) - .build(); - - FritekstbrevSamletInfo fritekstbrevSamletInfo = new FritekstbrevSamletInfo(); - fritekstbrevSamletInfo.setBrevMetadata(metadata); - fritekstbrevSamletInfo.setOverskrift(overskrift); - fritekstbrevSamletInfo.setFritekstFraSaksbehandler(fritekst); - return fritekstbrevSamletInfo; - } - - private Språkkode hentSpråkkode(Long behandlingId) { - UUID fpsakBehandlingUuid = eksternBehandlingRepository.hentForSisteAktivertInternId(behandlingId).getEksternUuid(); - SamletEksternBehandlingInfo samletEksternBehandlingInfo = eksternDataForBrevTjeneste.hentYtelsesbehandlingFraFagsystemet(fpsakBehandlingUuid); - return samletEksternBehandlingInfo.getGrunninformasjon().getSpråkkodeEllerDefault(); - } - - private FritekstbrevData lagFritekstbrev(FritekstbrevSamletInfo fritekstbrevSamletInfo) { - return new FritekstbrevData.Builder() - .medTittel(fritekstbrevSamletInfo.getBrevMetadata().getTittel()) - .medOverskrift(fritekstbrevSamletInfo.getOverskrift()) - .medBrevtekst(fritekstbrevSamletInfo.getFritekstFraSaksbehandler()) - .medMetadata(fritekstbrevSamletInfo.getBrevMetadata()) - .build(); - } - -} diff --git a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/fritekst/SendFritekstbrevTask.java b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/fritekst/SendFritekstbrevTask.java deleted file mode 100644 index 10b4481f5..000000000 --- a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/fritekst/SendFritekstbrevTask.java +++ /dev/null @@ -1,47 +0,0 @@ -package no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.fritekst; - -import java.nio.charset.StandardCharsets; -import java.util.Base64; -import java.util.Objects; - -import jakarta.enterprise.context.Dependent; -import jakarta.inject.Inject; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import no.nav.foreldrepenger.tilbakekreving.behandlingslager.task.ProsessTaskDataWrapper; -import no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.felles.BrevMottaker; -import no.nav.vedtak.felles.prosesstask.api.ProsessTask; -import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData; -import no.nav.vedtak.felles.prosesstask.api.ProsessTaskHandler; - -@Dependent -@ProsessTask("brev.fritekstbrev") -public class SendFritekstbrevTask implements ProsessTaskHandler { - - private static final Logger LOG = LoggerFactory.getLogger(SendFritekstbrevTask.class); - - private FritekstbrevTjeneste fritekstbrevTjeneste; - - @Inject - public SendFritekstbrevTask(FritekstbrevTjeneste fritekstbrevTjeneste) { - this.fritekstbrevTjeneste = fritekstbrevTjeneste; - } - - @Override - public void doTask(ProsessTaskData prosessTaskData) { - Long behandlingId = ProsessTaskDataWrapper.wrap(prosessTaskData).getBehandlingId(); - String fritekst = prosessTaskData.getPayloadAsString(); - String tittel = base64decode(prosessTaskData.getPropertyValue("tittel")); - String overskrift = base64decode(prosessTaskData.getPropertyValue("overskrift")); - BrevMottaker brevMottaker = BrevMottaker.valueOf(prosessTaskData.getPropertyValue("mottaker")); - - fritekstbrevTjeneste.sendFritekstbrev(behandlingId, tittel, overskrift, fritekst, brevMottaker); - LOG.info("Sendte fritekstbrev til {} for {}", brevMottaker, behandlingId); - } - - private static String base64decode(String base64) { - return new String(Base64.getDecoder().decode(Objects.requireNonNull(base64).getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8); - } -} diff --git a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/henleggelse/HenleggelsesbrevTjeneste.java b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/henleggelse/HenleggelsesbrevTjeneste.java index a1d3c6c3e..6efe0e94b 100644 --- a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/henleggelse/HenleggelsesbrevTjeneste.java +++ b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/henleggelse/HenleggelsesbrevTjeneste.java @@ -62,7 +62,7 @@ public HenleggelsesbrevTjeneste(BehandlingRepositoryProvider repositoryProvider, this.pdfBrevTjeneste = pdfBrevTjeneste; } - public void sendHenleggelsebrev(Long behandlingId, String fritekst, BrevMottaker brevMottaker) { + public void sendHenleggelsebrev(Long behandlingId, String fritekst, BrevMottaker brevMottaker, UUID unikBestillingUuid) { Behandling behandling = behandlingRepository.hentBehandling(behandlingId); HenleggelsesbrevSamletInfo henleggelsesbrevSamletInfo = lagHenleggelsebrevForSending(behandling, fritekst, brevMottaker); FritekstbrevData fritekstbrevData = BehandlingType.TILBAKEKREVING.equals(behandling.getType()) ? @@ -72,7 +72,8 @@ public void sendHenleggelsebrev(Long behandlingId, String fritekst, BrevMottaker .setMetadata(fritekstbrevData.getBrevMetadata()) .setOverskrift(fritekstbrevData.getOverskrift()) .setBrevtekst(fritekstbrevData.getBrevtekst()) - .build()); + .build(), + unikBestillingUuid); } public byte[] hentForhåndsvisningHenleggelsebrev(UUID behandlingUuid, String fritekst) { diff --git a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/henleggelse/SendHenleggelsesbrevTask.java b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/henleggelse/SendHenleggelsesbrevTask.java index b344e22ef..88787076e 100644 --- a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/henleggelse/SendHenleggelsesbrevTask.java +++ b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/henleggelse/SendHenleggelsesbrevTask.java @@ -11,11 +11,16 @@ import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskHandler; +import java.util.Optional; +import java.util.UUID; + @Dependent @ProsessTask("brev.sendhenleggelse") @FagsakProsesstaskRekkefølge(gruppeSekvens = false) public class SendHenleggelsesbrevTask implements ProsessTaskHandler { + public static final String BESTILLING_UUID = "bestillingUuid"; + private HenleggelsesbrevTjeneste henleggelsesbrevTjeneste; private VergeRepository vergeRepository; @@ -30,9 +35,11 @@ public SendHenleggelsesbrevTask(HenleggelsesbrevTjeneste henleggelsesbrevTjenest public void doTask(ProsessTaskData prosessTaskData) { Long behandlingId = ProsessTaskDataWrapper.wrap(prosessTaskData).getBehandlingId(); String fritekst = prosessTaskData.getPayloadAsString(); + var unikBestillingUuid = UUID.fromString(Optional.ofNullable(prosessTaskData.getPropertyValue(BESTILLING_UUID)).orElse(UUID.randomUUID().toString())); + if (vergeRepository.finnesVerge(behandlingId)) { - henleggelsesbrevTjeneste.sendHenleggelsebrev(behandlingId, fritekst, BrevMottaker.VERGE); + henleggelsesbrevTjeneste.sendHenleggelsebrev(behandlingId, fritekst, BrevMottaker.VERGE, unikBestillingUuid); } - henleggelsesbrevTjeneste.sendHenleggelsebrev(behandlingId, fritekst, BrevMottaker.BRUKER); + henleggelsesbrevTjeneste.sendHenleggelsebrev(behandlingId, fritekst, BrevMottaker.BRUKER, unikBestillingUuid); } } diff --git a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTask.java b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTask.java index d950a7e67..d28bef9ff 100644 --- a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTask.java +++ b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTask.java @@ -1,6 +1,8 @@ package no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.innhentdokumentasjon; import java.time.LocalDateTime; +import java.util.Optional; +import java.util.UUID; import jakarta.enterprise.context.Dependent; import jakarta.inject.Inject; @@ -25,6 +27,8 @@ @FagsakProsesstaskRekkefølge(gruppeSekvens = false) public class InnhentDokumentasjonbrevTask implements ProsessTaskHandler { + public static final String BESTILLING_UUID = "bestillingUuid"; + private BehandlingRepository behandlingRepository; private VergeRepository vergeRepository; @@ -45,11 +49,12 @@ public InnhentDokumentasjonbrevTask(BehandlingRepositoryProvider repositoryProvi public void doTask(ProsessTaskData prosessTaskData) { Long behandlingId = ProsessTaskDataWrapper.wrap(prosessTaskData).getBehandlingId(); String friTekst = prosessTaskData.getPayloadAsString(); + var unikBestillingUuid = UUID.fromString(Optional.ofNullable(prosessTaskData.getPropertyValue(BESTILLING_UUID)).orElse(UUID.randomUUID().toString())); if (vergeRepository.finnesVerge(behandlingId)) { - innhentDokumentasjonBrevTjeneste.sendInnhentDokumentasjonBrev(behandlingId, friTekst, BrevMottaker.VERGE); + innhentDokumentasjonBrevTjeneste.sendInnhentDokumentasjonBrev(behandlingId, friTekst, BrevMottaker.VERGE, unikBestillingUuid); } - innhentDokumentasjonBrevTjeneste.sendInnhentDokumentasjonBrev(behandlingId, friTekst, BrevMottaker.BRUKER); + innhentDokumentasjonBrevTjeneste.sendInnhentDokumentasjonBrev(behandlingId, friTekst, BrevMottaker.BRUKER, unikBestillingUuid); LocalDateTime fristTid = LocalDateTime.now().plus(Frister.BEHANDLING_TILSVAR).plusDays(1); Behandling behandling = behandlingRepository.hentBehandling(behandlingId); diff --git a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTjeneste.java b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTjeneste.java index d6aaa2853..eb7a8567a 100644 --- a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTjeneste.java +++ b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTjeneste.java @@ -58,7 +58,7 @@ public InnhentDokumentasjonbrevTjeneste(BehandlingRepositoryProvider repositoryP this.pdfBrevTjeneste = pdfBrevTjeneste; } - public void sendInnhentDokumentasjonBrev(Long behandlingId, String fritekst, BrevMottaker brevMottaker) { + public void sendInnhentDokumentasjonBrev(Long behandlingId, String fritekst, BrevMottaker brevMottaker, UUID unikBestillingUuid) { Behandling behandling = behandlingRepository.hentBehandling(behandlingId); InnhentDokumentasjonbrevSamletInfo innhentDokumentasjonBrevSamletInfo = settOppInnhentDokumentasjonBrevSamletInfo(behandling, fritekst, brevMottaker); @@ -69,7 +69,8 @@ public void sendInnhentDokumentasjonBrev(Long behandlingId, String fritekst, Bre .setMetadata(fritekstbrevData.getBrevMetadata()) .setOverskrift(fritekstbrevData.getOverskrift()) .setBrevtekst(fritekstbrevData.getBrevtekst()) - .build()); + .build(), + unikBestillingUuid); } diff --git a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/SendVarselbrevTask.java b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/SendVarselbrevTask.java index 6b8b78db8..55a14ac4d 100644 --- a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/SendVarselbrevTask.java +++ b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/SendVarselbrevTask.java @@ -13,11 +13,16 @@ import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskHandler; +import java.util.Optional; +import java.util.UUID; + @Dependent @ProsessTask(value = "brev.sendVarsel", maxFailedRuns = 5, firstDelay = 60) @FagsakProsesstaskRekkefølge(gruppeSekvens = true) public class SendVarselbrevTask implements ProsessTaskHandler { + public static final String BESTILLING_UUID = "bestillingUuid"; + private VarselbrevTjeneste varselbrevTjeneste; private VergeRepository vergeRepository; @@ -31,9 +36,11 @@ public SendVarselbrevTask(VarselbrevTjeneste varselbrevTjeneste, @Override public void doTask(ProsessTaskData prosessTaskData) { Long behandlingId = ProsessTaskDataWrapper.wrap(prosessTaskData).getBehandlingId(); + var unikBestillingUuid = UUID.fromString(Optional.ofNullable(prosessTaskData.getPropertyValue(BESTILLING_UUID)).orElse(UUID.randomUUID().toString())); + if (vergeRepository.finnesVerge(behandlingId)) { - varselbrevTjeneste.sendVarselbrev(behandlingId, VERGE); + varselbrevTjeneste.sendVarselbrev(behandlingId, VERGE, unikBestillingUuid); } - varselbrevTjeneste.sendVarselbrev(behandlingId, BRUKER); + varselbrevTjeneste.sendVarselbrev(behandlingId, BRUKER, unikBestillingUuid); } } diff --git a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/VarselbrevTjeneste.java b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/VarselbrevTjeneste.java index 971eece5c..8e573ff04 100644 --- a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/VarselbrevTjeneste.java +++ b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/VarselbrevTjeneste.java @@ -71,7 +71,7 @@ public VarselbrevTjeneste(BehandlingRepositoryProvider repositoryProvider, public VarselbrevTjeneste() { } - public void sendVarselbrev(Long behandlingId, BrevMottaker brevMottaker) { + public void sendVarselbrev(Long behandlingId, BrevMottaker brevMottaker, UUID unikBestillingUuid) { VarselbrevSamletInfo varselbrevSamletInfo = lagVarselbrevForSending(behandlingId, brevMottaker); String overskrift = TekstformatererVarselbrev.lagVarselbrevOverskrift(varselbrevSamletInfo.getBrevMetadata()); String brevtekst = TekstformatererVarselbrev.lagVarselbrevFritekst(varselbrevSamletInfo); @@ -87,7 +87,8 @@ public void sendVarselbrev(Long behandlingId, BrevMottaker brevMottaker) { .setMetadata(data.getBrevMetadata()) .setOverskrift(data.getOverskrift()) .setBrevtekst(data.getBrevtekst()) - .build()); + .build(), + unikBestillingUuid); } public byte[] hentForhåndsvisningVarselbrev(HentForhåndsvisningVarselbrevDto hentForhåndsvisningVarselbrevDto) { diff --git a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/ManueltVarselBrevTjeneste.java b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/ManueltVarselBrevTjeneste.java index 1ea82ae39..ca49a4701 100644 --- a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/ManueltVarselBrevTjeneste.java +++ b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/ManueltVarselBrevTjeneste.java @@ -67,7 +67,7 @@ public ManueltVarselBrevTjeneste(BehandlingRepositoryProvider repositoryProvider this.pdfBrevTjeneste = pdfBrevTjeneste; } - public void sendManueltVarselBrev(Long behandlingId, String fritekst, BrevMottaker brevMottaker) { + public void sendManueltVarselBrev(Long behandlingId, String fritekst, BrevMottaker brevMottaker, UUID unikBestillingUuid) { var behandling = behandlingRepository.hentBehandling(behandlingId); var varselbrevSamletInfo = lagVarselBeløpForSending(fritekst, behandling, brevMottaker, false); @@ -79,7 +79,8 @@ public void sendManueltVarselBrev(Long behandlingId, String fritekst, BrevMottak .setMetadata(data.getBrevMetadata()) .setOverskrift(data.getOverskrift()) .setBrevtekst(data.getBrevtekst()) - .build()); + .build(), + unikBestillingUuid); } public byte[] hentForhåndsvisningManueltVarselbrev(Long behandlingId, DokumentMalType malType, String fritekst) { @@ -105,7 +106,7 @@ public void sendManueltVarselBrev(Long behandlingId, String fritekst, BrevMottak .build()); } - public void sendKorrigertVarselBrev(Long behandlingId, String fritekst, BrevMottaker brevMottaker) { + public void sendKorrigertVarselBrev(Long behandlingId, String fritekst, BrevMottaker brevMottaker, UUID unikBestillingUuid) { var behandling = behandlingRepository.hentBehandling(behandlingId); var varselbrevSamletInfo = lagVarselBeløpForSending(fritekst, behandling, brevMottaker, true); var varselInfo = varselRepository.finnEksaktVarsel(behandlingId); @@ -118,7 +119,8 @@ public void sendKorrigertVarselBrev(Long behandlingId, String fritekst, BrevMott .setOverskrift(data.getOverskrift()) .setBrevtekst(data.getBrevtekst()) .setMetadata(data.getBrevMetadata()) - .build()); + .build(), + unikBestillingUuid); } private FritekstbrevData lagManueltVarselBrev(VarselbrevSamletInfo varselbrevSamletInfo) { diff --git a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/SendManueltVarselbrevTask.java b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/SendManueltVarselbrevTask.java index 439466915..824a90bd7 100644 --- a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/SendManueltVarselbrevTask.java +++ b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/SendManueltVarselbrevTask.java @@ -1,6 +1,8 @@ package no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.varsel.manuelt; import java.time.LocalDateTime; +import java.util.Optional; +import java.util.UUID; import jakarta.enterprise.context.Dependent; import jakarta.inject.Inject; @@ -26,6 +28,7 @@ public class SendManueltVarselbrevTask implements ProsessTaskHandler { public static final String MAL_TYPE = "malType"; + public static final String BESTILLING_UUID = "bestillingUuid"; private final BehandlingRepository behandlingRepository; private final VergeRepository vergeRepository; @@ -48,18 +51,20 @@ public void doTask(ProsessTaskData prosessTaskData) { var behandlingId = ProsessTaskDataWrapper.wrap(prosessTaskData).getBehandlingId(); var malType = DokumentMalType.fraKode(prosessTaskData.getPropertyValue(MAL_TYPE)); var friTekst = prosessTaskData.getPayloadAsString(); + var unikBestillingUuid = UUID.fromString(Optional.ofNullable(prosessTaskData.getPropertyValue(BESTILLING_UUID)).orElse(UUID.randomUUID().toString())); + // sjekk om behandlingen har verge var finnesVerge = vergeRepository.finnesVerge(behandlingId); if (DokumentMalType.VARSEL_DOK.equals(malType)) { if (finnesVerge) { - manueltVarselBrevTjeneste.sendManueltVarselBrev(behandlingId, friTekst, BrevMottaker.VERGE); + manueltVarselBrevTjeneste.sendManueltVarselBrev(behandlingId, friTekst, BrevMottaker.VERGE, unikBestillingUuid); } - manueltVarselBrevTjeneste.sendManueltVarselBrev(behandlingId, friTekst, BrevMottaker.BRUKER); + manueltVarselBrevTjeneste.sendManueltVarselBrev(behandlingId, friTekst, BrevMottaker.BRUKER, unikBestillingUuid); } else if (DokumentMalType.KORRIGERT_VARSEL_DOK.equals(malType)) { if (finnesVerge) { - manueltVarselBrevTjeneste.sendKorrigertVarselBrev(behandlingId, friTekst, BrevMottaker.VERGE); + manueltVarselBrevTjeneste.sendKorrigertVarselBrev(behandlingId, friTekst, BrevMottaker.VERGE, unikBestillingUuid); } - manueltVarselBrevTjeneste.sendKorrigertVarselBrev(behandlingId, friTekst, BrevMottaker.BRUKER); + manueltVarselBrevTjeneste.sendKorrigertVarselBrev(behandlingId, friTekst, BrevMottaker.BRUKER, unikBestillingUuid); } var fristTid = LocalDateTime.now().plus(Frister.BEHANDLING_TILSVAR).plusDays(1); diff --git a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/vedtak/VedtaksbrevTjeneste.java b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/vedtak/VedtaksbrevTjeneste.java index 7475a0d0e..7e4e67991 100644 --- a/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/vedtak/VedtaksbrevTjeneste.java +++ b/integrasjontjenester/dokumentbestiller/src/main/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/vedtak/VedtaksbrevTjeneste.java @@ -153,7 +153,7 @@ public VedtaksbrevTjeneste(BehandlingRepositoryProvider behandlingRepositoryProv // for CDI } - public void sendVedtaksbrev(Long behandlingId, BrevMottaker brevMottaker) { + public void sendVedtaksbrev(Long behandlingId, BrevMottaker brevMottaker, UUID unikBestillingUuid) { VedtaksbrevData vedtaksbrevData = hentDataForVedtaksbrev(behandlingId, brevMottaker); HbVedtaksbrevData hbVedtaksbrevData = vedtaksbrevData.getVedtaksbrevData(); FritekstbrevData data = new FritekstbrevData.Builder() @@ -170,7 +170,7 @@ public void sendVedtaksbrev(Long behandlingId, BrevMottaker brevMottaker) { if (vedtaksbrevData.getVedtaksbrevData().getFelles().isMedVedlegg()) { brevData.setVedleggHtml(TekstformatererVedtaksbrev.lagVedtaksbrevVedleggHtml(vedtaksbrevData.getVedtaksbrevData())); } - pdfBrevTjeneste.sendBrev(behandlingId, DetaljertBrevType.VEDTAK, brevData.build()); + pdfBrevTjeneste.sendBrev(behandlingId, DetaljertBrevType.VEDTAK, brevData.build(), unikBestillingUuid); } public byte[] hentForhåndsvisningVedtaksbrevMedVedleggSomPdf(HentForhåndvisningVedtaksbrevPdfDto dto) { diff --git a/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/henleggelse/HenleggelsesbrevTjenesteTest.java b/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/henleggelse/HenleggelsesbrevTjenesteTest.java index a98d6872b..3d1ef525e 100644 --- a/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/henleggelse/HenleggelsesbrevTjenesteTest.java +++ b/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/henleggelse/HenleggelsesbrevTjenesteTest.java @@ -8,6 +8,7 @@ import static org.mockito.Mockito.when; import java.util.Optional; +import java.util.UUID; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -42,6 +43,7 @@ class HenleggelsesbrevTjenesteTest extends DokumentBestillerTestOppsett { private static final String REVURDERING_HENLEGGELSESBREV_FRITEKST = "Revurderingen ble henlagt"; + private static final UUID BESTILLING_UUID = UUID.randomUUID(); private EksternDataForBrevTjeneste mockEksternDataForBrevTjeneste = mock(EksternDataForBrevTjeneste.class); private PdfBrevTjeneste mockPdfBrevTjeneste = mock(PdfBrevTjeneste.class); @@ -88,9 +90,9 @@ void setup() { @Test void skal_sende_henleggelsesbrev() { lagreVarselBrevSporing(); - henleggelsesbrevTjeneste.sendHenleggelsebrev(behandlingId, null, BrevMottaker.BRUKER); + henleggelsesbrevTjeneste.sendHenleggelsebrev(behandlingId, null, BrevMottaker.BRUKER, BESTILLING_UUID); - Mockito.verify(mockPdfBrevTjeneste).sendBrev(eq(behandlingId), eq(DetaljertBrevType.HENLEGGELSE), any(BrevData.class)); + Mockito.verify(mockPdfBrevTjeneste).sendBrev(eq(behandlingId), eq(DetaljertBrevType.HENLEGGELSE), any(BrevData.class), eq(BESTILLING_UUID)); } @Test @@ -108,7 +110,7 @@ void skal_sende_henleggelsesbrev() { @Test void skal_ikke_sende_henleggelsesbrev_hvis_varselbrev_ikke_sendt() { var e = assertThrows(FunksjonellException.class, () -> - henleggelsesbrevTjeneste.sendHenleggelsebrev(behandlingId, null, BrevMottaker.BRUKER)); + henleggelsesbrevTjeneste.sendHenleggelsebrev(behandlingId, null, BrevMottaker.BRUKER, BESTILLING_UUID)); assertThat(e.getMessage()).contains("FPT-110801"); } @@ -116,7 +118,7 @@ void skal_ikke_sende_henleggelsesbrev_hvis_varselbrev_ikke_sendt() { void skal_ikke_sende_henleggelsesbrev_for_tilbakekreving_revurdering_uten_fritekst() { Long revurderingBehandlingId = opprettOgForberedTilbakekrevingRevurdering(); var e = assertThrows(FunksjonellException.class, () -> - henleggelsesbrevTjeneste.sendHenleggelsebrev(revurderingBehandlingId, null, BrevMottaker.BRUKER)); + henleggelsesbrevTjeneste.sendHenleggelsebrev(revurderingBehandlingId, null, BrevMottaker.BRUKER, BESTILLING_UUID)); assertThat(e.getMessage()).contains("FPT-110802"); } diff --git a/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTaskTest.java b/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTaskTest.java index e0b155983..a1675a3e6 100644 --- a/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTaskTest.java +++ b/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTaskTest.java @@ -8,6 +8,8 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; +import java.util.UUID; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -59,6 +61,7 @@ void setup() { innhentDokumentasjonBrevTask.doTask(prosessTaskData); assertThat(behandling.isBehandlingPåVent()).isTrue(); assertThat(behandling.getVenteårsak()).isEqualByComparingTo(Venteårsak.VENT_PÅ_BRUKERTILBAKEMELDING); - verify(mockInnhentDokumentasjonbrevTjeneste, atLeast(2)).sendInnhentDokumentasjonBrev(anyLong(), anyString(), any(BrevMottaker.class)); + verify(mockInnhentDokumentasjonbrevTjeneste, atLeast(2)).sendInnhentDokumentasjonBrev(anyLong(), anyString(), + any(BrevMottaker.class), any(UUID.class)); } } diff --git a/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTjenesteTest.java b/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTjenesteTest.java index 53ae13c05..5949abb7f 100644 --- a/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTjenesteTest.java +++ b/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/innhentdokumentasjon/InnhentDokumentasjonbrevTjenesteTest.java @@ -7,6 +7,7 @@ import static org.mockito.Mockito.when; import java.util.Optional; +import java.util.UUID; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -27,6 +28,7 @@ class InnhentDokumentasjonbrevTjenesteTest extends DokumentBestillerTestOppsett { private static final String FLERE_OPPLYSNINGER = "Vi trenger flere opplysninger"; + private final UUID BESTILLING_UUID = UUID.randomUUID(); private EksternDataForBrevTjeneste mockEksternDataForBrevTjeneste = mock(EksternDataForBrevTjeneste.class); private PdfBrevTjeneste mockPdfBrevTjeneste = mock(PdfBrevTjeneste.class); @@ -60,9 +62,9 @@ void setup() { @Test void skal_sende_innhent_dokumentasjonbrev() { - innhentDokumentasjonBrevTjeneste.sendInnhentDokumentasjonBrev(behandlingId, FLERE_OPPLYSNINGER, BrevMottaker.BRUKER); + innhentDokumentasjonBrevTjeneste.sendInnhentDokumentasjonBrev(behandlingId, FLERE_OPPLYSNINGER, BrevMottaker.BRUKER, BESTILLING_UUID); - Mockito.verify(mockPdfBrevTjeneste).sendBrev(eq(behandlingId), eq(DetaljertBrevType.INNHENT_DOKUMETASJON), any(BrevData.class)); + Mockito.verify(mockPdfBrevTjeneste).sendBrev(eq(behandlingId), eq(DetaljertBrevType.INNHENT_DOKUMETASJON), any(BrevData.class), eq(BESTILLING_UUID)); } @Test diff --git a/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/ManueltVarselBrevTjenesteTest.java b/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/ManueltVarselBrevTjenesteTest.java index e0aeeac79..c45bd14f7 100644 --- a/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/ManueltVarselBrevTjenesteTest.java +++ b/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/ManueltVarselBrevTjenesteTest.java @@ -11,6 +11,7 @@ import java.time.LocalDate; import java.util.List; import java.util.Optional; +import java.util.UUID; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -39,6 +40,8 @@ class ManueltVarselBrevTjenesteTest extends DokumentBestillerTestOppsett { private static final String VARSEL_TEKST = "Sender manuelt varselbrev"; private final String KORRIGERT_VARSEL_TEKST = "Sender korrigert varselbrev"; + private final UUID BESTILLING_UUID = UUID.randomUUID(); + @Inject private VarselRepository varselRepository; @@ -74,38 +77,38 @@ void setup() { @Test void skal_sende_manuelt_varselbrev() { - manueltVarselBrevTjeneste.sendManueltVarselBrev(behandlingId, VARSEL_TEKST, BrevMottaker.BRUKER); + manueltVarselBrevTjeneste.sendManueltVarselBrev(behandlingId, VARSEL_TEKST, BrevMottaker.BRUKER, BESTILLING_UUID); - Mockito.verify(mockPdfBrevTjeneste).sendBrev(eq(behandlingId), eq(DetaljertBrevType.VARSEL), eq(Long.valueOf(9000L)), anyString(), any(BrevData.class)); + Mockito.verify(mockPdfBrevTjeneste).sendBrev(eq(behandlingId), eq(DetaljertBrevType.VARSEL), eq(Long.valueOf(9000L)), anyString(), any(BrevData.class), eq(BESTILLING_UUID)); } @Test void skal_sende_korrigert_varselbrev() { //arrange - manueltVarselBrevTjeneste.sendManueltVarselBrev(behandlingId, VARSEL_TEKST, BrevMottaker.BRUKER); + manueltVarselBrevTjeneste.sendManueltVarselBrev(behandlingId, VARSEL_TEKST, BrevMottaker.BRUKER, BESTILLING_UUID); varselRepository.lagre(behandlingId, VARSEL_TEKST, 100L); Mockito.clearInvocations(mockPdfBrevTjeneste); //act - manueltVarselBrevTjeneste.sendKorrigertVarselBrev(behandlingId, KORRIGERT_VARSEL_TEKST, BrevMottaker.BRUKER); + manueltVarselBrevTjeneste.sendKorrigertVarselBrev(behandlingId, KORRIGERT_VARSEL_TEKST, BrevMottaker.BRUKER, BESTILLING_UUID); //assert - Mockito.verify(mockPdfBrevTjeneste).sendBrev(eq(behandlingId), eq(DetaljertBrevType.KORRIGERT_VARSEL), eq(Long.valueOf(9000L)), anyString(), any(BrevData.class)); + Mockito.verify(mockPdfBrevTjeneste).sendBrev(eq(behandlingId), eq(DetaljertBrevType.KORRIGERT_VARSEL), eq(Long.valueOf(9000L)), anyString(), any(BrevData.class), eq(BESTILLING_UUID)); } @Test void skal_sende_korrigert_varselbrev_med_verge() { //arrange - manueltVarselBrevTjeneste.sendManueltVarselBrev(behandlingId, VARSEL_TEKST, BrevMottaker.BRUKER); + manueltVarselBrevTjeneste.sendManueltVarselBrev(behandlingId, VARSEL_TEKST, BrevMottaker.BRUKER, BESTILLING_UUID); varselRepository.lagre(behandlingId, VARSEL_TEKST, 100L); Mockito.clearInvocations(mockPdfBrevTjeneste); vergeRepository.lagreVergeInformasjon(behandlingId, lagVerge()); //act - manueltVarselBrevTjeneste.sendKorrigertVarselBrev(behandlingId, VARSEL_TEKST, BrevMottaker.VERGE); + manueltVarselBrevTjeneste.sendKorrigertVarselBrev(behandlingId, VARSEL_TEKST, BrevMottaker.VERGE, BESTILLING_UUID); //assert - Mockito.verify(mockPdfBrevTjeneste).sendBrev(eq(behandlingId), eq(DetaljertBrevType.KORRIGERT_VARSEL), eq(Long.valueOf(9000L)), anyString(), any(BrevData.class)); + Mockito.verify(mockPdfBrevTjeneste).sendBrev(eq(behandlingId), eq(DetaljertBrevType.KORRIGERT_VARSEL), eq(Long.valueOf(9000L)), anyString(), any(BrevData.class), eq(BESTILLING_UUID)); } @Test diff --git a/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/SendManueltVarselbrevTaskTest.java b/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/SendManueltVarselbrevTaskTest.java index fc7de67cd..a540f7b4d 100644 --- a/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/SendManueltVarselbrevTaskTest.java +++ b/integrasjontjenester/dokumentbestiller/src/test/java/no/nav/foreldrepenger/tilbakekreving/dokumentbestilling/varsel/manuelt/SendManueltVarselbrevTaskTest.java @@ -20,6 +20,8 @@ import no.nav.foreldrepenger.tilbakekreving.dokumentbestilling.felles.BrevMottaker; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData; +import java.util.UUID; + class SendManueltVarselbrevTaskTest extends DokumentBestillerTestOppsett { private ManueltVarselBrevTjeneste mockManueltVarselBrevTjeneste = mock(ManueltVarselBrevTjeneste.class); @@ -72,6 +74,6 @@ void skal_sende_manuelt_varselbrev_med_verge() { varselbrevTask.doTask(prosessTaskData); assertThat(behandling.isBehandlingPåVent()).isTrue(); assertThat(behandling.getVenteårsak()).isEqualByComparingTo(Venteårsak.VENT_PÅ_BRUKERTILBAKEMELDING); - verify(mockManueltVarselBrevTjeneste, atLeast(2)).sendManueltVarselBrev(anyLong(), anyString(), any(BrevMottaker.class)); + verify(mockManueltVarselBrevTjeneste, atLeast(2)).sendManueltVarselBrev(anyLong(), anyString(), any(BrevMottaker.class), any(UUID.class)); } } diff --git a/integrasjontjenester/kravgrunnlag-queue/src/main/java/no/nav/foreldrepenger/tilbakekreving/kravgrunnlag/queue/consumer/KravgrunnlagAsyncJmsConsumer.java b/integrasjontjenester/kravgrunnlag-queue/src/main/java/no/nav/foreldrepenger/tilbakekreving/kravgrunnlag/queue/consumer/KravgrunnlagAsyncJmsConsumer.java index ff77433c3..bf2b53b35 100644 --- a/integrasjontjenester/kravgrunnlag-queue/src/main/java/no/nav/foreldrepenger/tilbakekreving/kravgrunnlag/queue/consumer/KravgrunnlagAsyncJmsConsumer.java +++ b/integrasjontjenester/kravgrunnlag-queue/src/main/java/no/nav/foreldrepenger/tilbakekreving/kravgrunnlag/queue/consumer/KravgrunnlagAsyncJmsConsumer.java @@ -1,12 +1,11 @@ package no.nav.foreldrepenger.tilbakekreving.kravgrunnlag.queue.consumer; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.enterprise.inject.spi.BeanManager; -import jakarta.inject.Inject; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.enterprise.inject.spi.BeanManager; +import jakarta.inject.Inject; import jakarta.jms.JMSException; import jakarta.jms.Message; import jakarta.jms.TextMessage; @@ -19,7 +18,7 @@ public class KravgrunnlagAsyncJmsConsumer extends QueueConsumer implements Contr private static final Logger LOG = LoggerFactory.getLogger(KravgrunnlagAsyncJmsConsumer.class); - private DatabasePreconditionChecker preconditionChecker; + private PreconditionChecker preconditionChecker; private BeanManager beanManager; KravgrunnlagAsyncJmsConsumer() { @@ -27,7 +26,7 @@ public class KravgrunnlagAsyncJmsConsumer extends QueueConsumer implements Contr } @Inject - public KravgrunnlagAsyncJmsConsumer(DatabasePreconditionChecker preconditionChecker, + public KravgrunnlagAsyncJmsConsumer(PreconditionChecker preconditionChecker, KravgrunnlagJmsConsumerKonfig konfig, BeanManager beanManager) { super(konfig.getJmsKonfig()); diff --git a/pom.xml b/pom.xml index c8fe56217..4ecab6334 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ no.nav.foreldrepenger.felles fp-bom - 2.0.1 + 2.1.0 no.nav.foreldrepenger.tilbakekreving @@ -82,7 +82,7 @@ no.nav.foreldrepenger.felles fp-bom - 2.0.1 + 2.1.0 import pom diff --git a/web/src/test/java/no/nav/foreldrepenger/tilbakekreving/web/app/tjenester/forvaltning/HentKorrigertKravgrunnlagTaskTest.java b/web/src/test/java/no/nav/foreldrepenger/tilbakekreving/web/app/tjenester/forvaltning/HentKorrigertKravgrunnlagTaskTest.java index c681c19c7..a81028caa 100644 --- a/web/src/test/java/no/nav/foreldrepenger/tilbakekreving/web/app/tjenester/forvaltning/HentKorrigertKravgrunnlagTaskTest.java +++ b/web/src/test/java/no/nav/foreldrepenger/tilbakekreving/web/app/tjenester/forvaltning/HentKorrigertKravgrunnlagTaskTest.java @@ -13,18 +13,16 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Optional; import java.util.UUID; -import jakarta.persistence.EntityManager; -import jakarta.persistence.FlushModeType; - import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import jakarta.persistence.EntityManager; +import jakarta.persistence.FlushModeType; import no.nav.foreldrepenger.kontrakter.fpwsproxy.tilbakekreving.kravgrunnlag.request.HentKravgrunnlagDetaljDto; import no.nav.foreldrepenger.kontrakter.fpwsproxy.tilbakekreving.kravgrunnlag.respons.FagOmrådeKode; import no.nav.foreldrepenger.kontrakter.fpwsproxy.tilbakekreving.kravgrunnlag.respons.GjelderType; @@ -51,7 +49,7 @@ import no.nav.foreldrepenger.tilbakekreving.fagsystem.klient.dto.EksternBehandlingsinfoDto; import no.nav.foreldrepenger.tilbakekreving.grunnlag.Kravgrunnlag431; import no.nav.foreldrepenger.tilbakekreving.grunnlag.KravgrunnlagRepository; -import no.nav.vedtak.exception.IntegrasjonException; +import no.nav.foreldrepenger.tilbakekreving.grunnlag.KravgrunnlagValidator; import no.nav.vedtak.exception.TekniskException; import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData; @@ -105,7 +103,7 @@ void setup(EntityManager entityManager) { void skal_ikke_hente_og_lagre_korrigert_kravgrunnlag_når_hentet_grunnlaget_er_ugyldig() { when(økonomiProxyKlient.hentKravgrunnlag(any(HentKravgrunnlagDetaljDto.class))).thenReturn(lagKravgrunnlagNY(false)); ProsessTaskData prosessTaskData = lagProsessTaskData(); - var e = assertThrows(IntegrasjonException.class, () -> hentKorrigertGrunnlagTask.doTask(prosessTaskData)); + var e = assertThrows(KravgrunnlagValidator.UgyldigKravgrunnlagException.class, () -> hentKorrigertGrunnlagTask.doTask(prosessTaskData)); assertThat(e.getMessage()).contains("FPT-930235"); }