|
1 | 1 | package no.nav.ung.sak.formidling;
|
2 | 2 |
|
3 | 3 |
|
4 |
| -import java.time.Duration; |
5 |
| -import java.time.Instant; |
6 |
| -import java.util.Objects; |
7 |
| - |
8 |
| -import org.slf4j.Logger; |
9 |
| -import org.slf4j.LoggerFactory; |
10 |
| - |
| 4 | +import io.opentelemetry.instrumentation.annotations.WithSpan; |
11 | 5 | import jakarta.enterprise.context.ApplicationScoped;
|
12 | 6 | import jakarta.inject.Inject;
|
13 | 7 | import no.nav.fpsak.tidsserie.LocalDateTimeline;
|
|
27 | 21 | import no.nav.ung.sak.typer.AktørId;
|
28 | 22 | import no.nav.ung.sak.ytelse.DagsatsOgUtbetalingsgrad;
|
29 | 23 | import no.nav.ung.sak.ytelse.beregning.TilkjentYtelseUtleder;
|
| 24 | +import org.slf4j.Logger; |
| 25 | +import org.slf4j.LoggerFactory; |
| 26 | + |
| 27 | +import java.util.Objects; |
30 | 28 |
|
31 | 29 | @ApplicationScoped
|
32 | 30 | public class BrevGenerererTjeneste {
|
@@ -60,38 +58,32 @@ public BrevGenerererTjeneste(
|
60 | 58 | public BrevGenerererTjeneste() {
|
61 | 59 | }
|
62 | 60 |
|
| 61 | + @WithSpan |
63 | 62 | public GenerertBrev genererVedtaksbrev(Long behandlingId) {
|
64 |
| - Instant metodeStart = Instant.now(); |
| 63 | + return BrevGenereringSemafor.begrensetParallellitet( () -> doGenererVedtaksbrev(behandlingId)); |
| 64 | + } |
65 | 65 |
|
| 66 | + @WithSpan //WithSpan her for å kunne skille ventetid på semafor i opentelemetry |
| 67 | + private GenerertBrev doGenererVedtaksbrev(Long behandlingId) { |
66 | 68 | var behandling = behandlingRepository.hentBehandling(behandlingId);
|
67 | 69 | if (!behandling.erAvsluttet()) {
|
68 | 70 | throw new IllegalStateException("Behandling må være avsluttet for å kunne bestille vedtaksbrev");
|
69 | 71 | }
|
70 | 72 |
|
71 |
| - LocalDateTimeline<DagsatsOgUtbetalingsgrad> tilkjentYtelseTidslinje = |
72 |
| - tilkjentYtelseUtleder.utledTilkjentYtelseTidslinje(behandlingId); |
| 73 | + LocalDateTimeline<DagsatsOgUtbetalingsgrad> tilkjentYtelseTidslinje = tilkjentYtelseUtleder.utledTilkjentYtelseTidslinje(behandlingId); |
73 | 74 | if (tilkjentYtelseTidslinje.isEmpty()) {
|
74 | 75 | LOG.warn("Behandling har ingen tilkjent ytelse. Støtter ikke vedtaksbrev for avslag foreløpig. BehandlingResultat={}", behandling.getBehandlingResultatType());
|
75 | 76 | return null;
|
76 | 77 | }
|
77 |
| - |
78 | 78 | var pdlMottaker = hentMottaker(behandling);
|
79 |
| - |
80 |
| - var innholdTid = Instant.now(); |
81 | 79 | var resultat = innvilgelseInnholdBygger.bygg(behandling);
|
82 |
| - LOG.info("Tid bygger: {} ms", Duration.between(innholdTid, Instant.now()).toMillis()); |
83 |
| - |
84 |
| - |
85 | 80 | var input = new TemplateInput(resultat.templateType(),
|
86 | 81 | new TemplateDto(
|
87 | 82 | FellesDto.automatisk(new MottakerDto(pdlMottaker.navn(), pdlMottaker.fnr())),
|
88 | 83 | resultat.templateInnholdDto()
|
89 | 84 | )
|
90 | 85 | );
|
91 |
| - |
92 | 86 | PdfGenDokument dokument = pdfGen.lagDokument(input);
|
93 |
| - |
94 |
| - LOG.info("Tid vedtaksbrev: {} ms", Duration.between(metodeStart, Instant.now()).toMillis()); |
95 | 87 | return new GenerertBrev(
|
96 | 88 | dokument,
|
97 | 89 | pdlMottaker,
|
|
0 commit comments