Skip to content

Commit

Permalink
TFP-5942 task for å sende forlenget saksbehandlingstid brev (#7031)
Browse files Browse the repository at this point in the history
  • Loading branch information
palfi authored Jan 28, 2025
1 parent 8053927 commit 511938a
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public enum DokumentMalType implements Kodeverdi {
ETTERLYS_INNTEKTSMELDING("ELYSIM"),
ENDRING_UTBETALING("ENDUTB"), // Denne brukes kun for å utlede tittel når overstyrer vedtaksbrev pga fordeling av ytelsen
FORELDREPENGER_FEIL_PRAKSIS_UTSETTELSE_INFOBREV("INFOPU"),
FORELDREPENGER_FEIL_PRAKSIS_UTSETTELSE_FORLENGET_SAKSBEHANDLINGSTID("FORPUS"),

// Må gjeninnføre for å flytte anker
@Deprecated KLAGE_AVVIST_DOK("KLAGAV"),
Expand Down Expand Up @@ -165,6 +166,7 @@ private static String utledDokumentTittel(DokumentMalType mal) {
case ANKE_OPPHEVET -> "Ankebrev om beslutning om oppheving";
case ENDRING_UTBETALING -> "Endring i fordeling av ytelsen";
case FORELDREPENGER_FEIL_PRAKSIS_UTSETTELSE_INFOBREV -> "Melding om ny vurdering av tidligere avslag";
case FORELDREPENGER_FEIL_PRAKSIS_UTSETTELSE_FORLENGET_SAKSBEHANDLINGSTID -> "Forlenget saksbehandlingstid - Fedrekvotesaken";
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public static DokumentMal mapDokumentMal(DokumentMalType bestillingDokumentMal)
case ETTERLYS_INNTEKTSMELDING -> DokumentMal.ETTERLYS_INNTEKTSMELDING;
case ENDRING_UTBETALING -> DokumentMal.ENDRING_UTBETALING;
case FORELDREPENGER_FEIL_PRAKSIS_UTSETTELSE_INFOBREV -> DokumentMal.FORELDREPENGER_FEIL_PRAKSIS_UTSETTELSE_INFOBREV;
case FORELDREPENGER_FEIL_PRAKSIS_UTSETTELSE_FORLENGET_SAKSBEHANDLINGSTID -> DokumentMal.FORELDREPENGER_FEIL_PRAKSIS_UTSETTELSE_FORLENGET_SAKSBEHANDLINGSTID;
case KLAGE_AVVIST_DOK,
KLAGE_AVVIST_FRITEKST,
KLAGE_HJEMSENDT_DOK,
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
<felles.version>7.4.4</felles.version>
<prosesstask.version>5.1.1</prosesstask.version>

<fp-kontrakter.version>9.2.1</fp-kontrakter.version>
<fp-kontrakter.version>9.2.2</fp-kontrakter.version>
<abakus-kontrakt.version>2.2.1</abakus-kontrakt.version>
<kalkulus.version>0.0.14</kalkulus.version>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
package no.nav.foreldrepenger.web.app.tjenester.forvaltning.praksisutsettelse;

import java.util.List;
import java.util.Optional;
import java.util.Set;

import jakarta.enterprise.context.Dependent;
import jakarta.inject.Inject;
import jakarta.persistence.EntityManager;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import no.nav.foreldrepenger.behandlingslager.behandling.Behandling;
import no.nav.foreldrepenger.behandlingslager.behandling.BehandlingType;
import no.nav.foreldrepenger.behandlingslager.behandling.BehandlingÅrsakType;
import no.nav.foreldrepenger.behandlingslager.fagsak.FagsakProsesstaskRekkefølge;
import no.nav.foreldrepenger.dokumentbestiller.DokumentBehandlingTjeneste;
import no.nav.foreldrepenger.dokumentbestiller.DokumentBestillerTjeneste;
import no.nav.foreldrepenger.dokumentbestiller.DokumentBestilling;
import no.nav.foreldrepenger.dokumentbestiller.DokumentMalType;
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(value = "behandling.feilpraksisutsettelse.forlenget", prioritet = 4, maxFailedRuns = 1)
@FagsakProsesstaskRekkefølge(gruppeSekvens = false)
class FeilPraksisForlengetSaksbehandlingstidTask implements ProsessTaskHandler {

private static final Logger LOG = LoggerFactory.getLogger(FeilPraksisForlengetSaksbehandlingstidTask.class);
private static final String DRY_RUN = "dryRun";

private final DokumentBestillerTjeneste dokumentBestillerTjeneste;
private final EntityManager entityManager;
private final DokumentBehandlingTjeneste dokumentBehandlingTjeneste;


@Inject
FeilPraksisForlengetSaksbehandlingstidTask(DokumentBestillerTjeneste dokumentBestillerTjeneste,
EntityManager entityManager,
DokumentBehandlingTjeneste dokumentBehandlingTjeneste) {
this.dokumentBestillerTjeneste = dokumentBestillerTjeneste;
this.entityManager = entityManager;
this.dokumentBehandlingTjeneste = dokumentBehandlingTjeneste;
}

@Override
public void doTask(ProsessTaskData prosessTaskData) {
var kandidater = finnKandidater();
var dryRun = Optional.ofNullable(prosessTaskData.getPropertyValue(DRY_RUN)).filter("false"::equalsIgnoreCase).isEmpty();
kandidater.forEach(k -> opprettBestillingTask(k, dryRun));
}

private List<Behandling> finnKandidater() {
return entityManager.createQuery("""
select b from Behandling b
join BehandlingÅrsak ba on ba.behandling = b
where ba.behandlingÅrsakType =:årsak
and not exists (select 1 from Behandling b2 where b2.avsluttetDato is null and b2.fagsak = b.fagsak and b2.behandlingType in (:ikkeTyper))
and b.avsluttetDato is null
""", Behandling.class)
.setParameter("årsak", BehandlingÅrsakType.FEIL_PRAKSIS_UTSETTELSE)
.setParameter("ikkeTyper", Set.of(BehandlingType.KLAGE, BehandlingType.ANKE))
.getResultList();
}

private void opprettBestillingTask(Behandling behandling, boolean dryRun) {
if (dokumentBehandlingTjeneste.erDokumentBestiltForFagsak(behandling.getFagsakId(),
DokumentMalType.FORELDREPENGER_FEIL_PRAKSIS_UTSETTELSE_FORLENGET_SAKSBEHANDLINGSTID)) {
LOG.info("Brev allerede bestilt for {}", behandling.getSaksnummer());
return;
}

var saksnummer = behandling.getSaksnummer();
LOG.info("Bestiller forlenget saksbehandlingstid brev for {} {}", saksnummer, behandling.getId());
var behandlingUuid = behandling.getUuid();
var bestilling = DokumentBestilling.builder()
.medBehandlingUuid(behandlingUuid)
.medSaksnummer(saksnummer)
.medDokumentMal(DokumentMalType.FORELDREPENGER_FEIL_PRAKSIS_UTSETTELSE_FORLENGET_SAKSBEHANDLINGSTID)
.build();
if (!dryRun) {
dokumentBestillerTjeneste.bestillDokument(bestilling);
}
}
}

0 comments on commit 511938a

Please sign in to comment.