Skip to content

Commit

Permalink
Oppdater ventefrister som utløper hver 30 minutt (#2019)
Browse files Browse the repository at this point in the history
* Oppdater ventefrister som utløper hver 8 time

* Endre til 30 minutt

* Fjerne gammel manuell på vent
  • Loading branch information
jolarsen authored Oct 22, 2023
1 parent 7d63f18 commit f935dfd
Show file tree
Hide file tree
Showing 8 changed files with 12 additions and 116 deletions.
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package no.nav.foreldrepenger.los.statistikk.oppgavebeholdning;

import java.util.List;

import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;

import java.util.List;

@ApplicationScoped
public class OppgaveBeholdningStatistikkTjeneste {

Expand All @@ -27,10 +27,6 @@ public List<OppgaverForAvdelingPerDato> hentAntallOppgaverForAvdelingPerDato(Str
return statisikkRepository.hentAlleOppgaverForAvdelingPerDato(avdeling);
}

public List<OppgaverForAvdelingSattManueltPåVent> hentAntallOppgaverForAvdelingSattManueltPåVent(String avdeling) {
return statisikkRepository.hentAntallOppgaverForAvdelingSattManueltPåVent(avdeling);
}

public List<OppgaverForFørsteStønadsdag> hentOppgaverPerFørsteStønadsdag(String avdeling) {
return statisikkRepository.hentOppgaverPerFørsteStønadsdag(avdeling);
}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.persistence.EntityManager;
import no.nav.foreldrepenger.los.hendelse.hendelsehåndterer.oppgaveeventlogg.OppgaveEventType;
import no.nav.foreldrepenger.los.oppgave.AndreKriterierType;
import no.nav.foreldrepenger.los.oppgave.BehandlingType;
import no.nav.foreldrepenger.los.oppgave.FagsakYtelseType;
Expand Down Expand Up @@ -62,35 +61,6 @@ AND NOT (o.AKTIV='N' AND trunc(datoer.dato) > trunc(o.ENDRET_TID))
""").setParameter(AVDELING_ENHET, avdelingEnhet).getResultStream().map(row -> mapOppgaverForAvdelingPerDato((Object[]) row)).toList();
}

@SuppressWarnings("unchecked")
public List<OppgaverForAvdelingSattManueltPåVent> hentAntallOppgaverForAvdelingSattManueltPåVent(String avdelingEnhet) {
return entityManager.createNativeQuery("""
select COALESCE(trunc(oel.FRIST_TID), trunc(oel.OPPRETTET_TID + 28)) ESTIMERT_FRIST, o.FAGSAK_YTELSE_TYPE, count(1) as ANTALL
from oppgave_event_logg oel
join (
select behandling_id, fagsak_ytelse_type
from oppgave
where BEHANDLENDE_ENHET = :behandlendeEnhet
group by behandling_id, fagsak_ytelse_type
) o on o.behandling_id = oel.behandling_id
where oel.event_type = :eventType
and oel.opprettet_tid > systimestamp - 90
and not exists (
select 1
from oppgave_event_logg oel_nyere
where oel_nyere.behandling_id = oel.behandling_id
and oel_nyere.opprettet_tid > oel.opprettet_tid
and oel_nyere.opprettet_tid > systimestamp - 90
)
group by COALESCE(trunc(oel.FRIST_TID), trunc(oel.OPPRETTET_TID + 28)), o.fagsak_ytelse_type
""")
.setParameter("behandlendeEnhet", avdelingEnhet)
.setParameter("eventType", OppgaveEventType.MANU_VENT.name())
.getResultStream()
.map(row -> mapOppgaverForAvdelingSattManueltPåVent((Object[]) row))
.toList();
}

@SuppressWarnings("unchecked")
public List<OppgaverForFørsteStønadsdag> hentOppgaverPerFørsteStønadsdag(String avdeling) {
// Tilpass til tidligste dato før termin - 18u = 1296. Vurder trunc('IW') + 4 (=fredag) for evt ukesvisning
Expand All @@ -114,13 +84,6 @@ select trunc(o.FORSTE_STONADSDAG) as fstonad FROM OPPGAVE o INNER JOIN avdeling
return new OppgaverForFørsteStønadsdag(date, resultat);
}

private static OppgaverForAvdelingSattManueltPåVent mapOppgaverForAvdelingSattManueltPåVent(Object[] row) {
var fagsakYtelseType = FagsakYtelseType.fraKode((String) row[1]); // NOSONAR
var estimertFrist = ((Date) row[0]).toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); // NOSONAR
var antall = ((BigDecimal) row[2]).longValue(); // NOSONAR
return new OppgaverForAvdelingSattManueltPåVent(fagsakYtelseType, estimertFrist, antall);
}

private static OppgaverForAvdeling mapOppgaverForAvdeling(Object[] row) {
var fagsakYtelseType = FagsakYtelseType.fraKode((String) row[0]); // NOSONAR
var behandlingType = BehandlingType.fraKode((String) row[1]); // NOSONAR
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.util.List;

import io.swagger.v3.oas.annotations.Operation;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.transaction.Transactional;
Expand All @@ -11,12 +12,9 @@
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;

import io.swagger.v3.oas.annotations.Operation;
import no.nav.foreldrepenger.los.statistikk.oppgavebeholdning.OppgaveBeholdningStatistikkTjeneste;
import no.nav.foreldrepenger.los.statistikk.oppgavebeholdning.OppgaverForAvdeling;
import no.nav.foreldrepenger.los.statistikk.oppgavebeholdning.OppgaverForAvdelingPerDato;
import no.nav.foreldrepenger.los.statistikk.oppgavebeholdning.OppgaverForAvdelingSattManueltPåVent;
import no.nav.foreldrepenger.los.statistikk.oppgavebeholdning.OppgaverForFørsteStønadsdag;
import no.nav.foreldrepenger.los.web.app.tjenester.avdelingsleder.dto.AvdelingEnhetDto;
import no.nav.vedtak.sikkerhet.abac.BeskyttetRessurs;
Expand Down Expand Up @@ -57,15 +55,6 @@ public List<OppgaverForAvdelingPerDato> getAntallOppgaverForAvdelingPerDato(@Not
return oppgaveBeholdningStatistikkTjeneste.hentAntallOppgaverForAvdelingPerDato(avdelingEnhet.getAvdelingEnhet());
}

@GET
@Path("/behandlinger-manuelt-vent-historikk")
@Produces("application/json")
@Operation(description = "ManueltVent Historikk", tags = "AvdelingslederTall")
@BeskyttetRessurs(actionType = ActionType.READ, resourceType = ResourceType.OPPGAVESTYRING_AVDELINGENHET)
public List<OppgaverForAvdelingSattManueltPåVent> getAntallOppgaverSattPåManuellVentForAvdeling(@NotNull @QueryParam("avdelingEnhet") @Valid AvdelingEnhetDto avdelingEnhet) {
return oppgaveBeholdningStatistikkTjeneste.hentAntallOppgaverForAvdelingSattManueltPåVent(avdelingEnhet.getAvdelingEnhet());
}

@GET
@Path("/behandlinger-første-stønadsdag")
@Produces("application/json")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ public class NøkkeltallBehandlingerVentestatus {
private FpsakKlient fpsakRestKlient;
private Map<String, List<NøkkeltallBehandlingFørsteUttakDto>> enhetStatistikkMapUttaksdato;
private Map<String, List<NøkkeltallBehandlingVentefristUtløperDto>> enhetStatistikkMapVentefrist;
private LocalDateTime nesteOppdateringEtter;
private LocalDateTime nesteFørsteUttakOppdateringEtter;
private LocalDateTime nesteVentefristOppdateringEtter;

public NøkkeltallBehandlingerVentestatus() {
}
Expand All @@ -33,13 +34,14 @@ public class NøkkeltallBehandlingerVentestatus {
}

public List<NøkkeltallBehandlingFørsteUttakDto> hentBehandlingVentestatusNøkkeltall(String avdeling) {
if (enhetStatistikkMapUttaksdato == null || LocalDateTime.now().isAfter(nesteOppdateringEtter)) {
if (enhetStatistikkMapUttaksdato == null || LocalDateTime.now().isAfter(nesteFørsteUttakOppdateringEtter)) {
enhetStatistikkMapUttaksdato = fpsakRestKlient.hentBehandlingFørsteUttakNøkkeltall()
.stream()
.collect(Collectors.groupingBy(NøkkeltallBehandlingFørsteUttakDto::behandlendeEnhet, Collectors.toUnmodifiableList()));
nesteOppdateringEtter = LocalDateTime.now().plusMinutes(45);
nesteFørsteUttakOppdateringEtter = LocalDateTime.now().plusMinutes(45);
if (LOG.isInfoEnabled()) {
LOG.info("Hentet statistikk fra fpsak, neste hentes etter {}. Antall unike uttaksmåneder per enhet: {}", nesteOppdateringEtter,
LOG.info("Hentet statistikk fra fpsak, neste hentes etter {}. Antall unike uttaksmåneder per enhet: {}",
nesteFørsteUttakOppdateringEtter,
antallFørsteUttakMånederPerEnhet());
}
}
Expand All @@ -48,13 +50,13 @@ public class NøkkeltallBehandlingerVentestatus {
}

public List<NøkkeltallBehandlingVentefristUtløperDto> hentVentefristNøkkeltall(String avdeling) {
if (enhetStatistikkMapVentefrist == null || LocalDateTime.now().isAfter(nesteOppdateringEtter)) {
if (enhetStatistikkMapVentefrist == null || LocalDateTime.now().isAfter(nesteVentefristOppdateringEtter)) {
enhetStatistikkMapVentefrist = fpsakRestKlient.hentVentefristerNøkkeltall()
.stream()
.collect(Collectors.groupingBy(NøkkeltallBehandlingVentefristUtløperDto::behandlendeEnhet, Collectors.toUnmodifiableList()));
nesteOppdateringEtter = LocalDateTime.now().plusMinutes(45);
nesteVentefristOppdateringEtter = LocalDateTime.now().plusMinutes(30);
if (LOG.isInfoEnabled()) {
LOG.info("Hentet friststatistikk fra fpsak, neste hentes etter {}.", nesteOppdateringEtter);
LOG.info("Hentet friststatistikk fra fpsak, neste hentes etter {}.", nesteVentefristOppdateringEtter);
}
}
var resultat = enhetStatistikkMapVentefrist.get(avdeling);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@

import static no.nav.foreldrepenger.los.organisasjon.Avdeling.AVDELING_DRAMMEN_ENHET;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatNoException;

import java.time.DayOfWeek;
import java.time.LocalDate;

import org.junit.jupiter.api.BeforeEach;
Expand Down Expand Up @@ -140,12 +138,6 @@ void hentAntallOppgaverForAvdelingPerDatoTest2() {
assertThat(resultater.get(0).opprettetDato()).isEqualTo(LocalDate.now().minusDays(27));
}

@Test
void hentHentStatistikkForManueltPåVent() {
assertThatNoException().isThrownBy(() -> oppgaveBeholdningStatistikkTjeneste.hentAntallOppgaverForAvdelingSattManueltPåVent(AVDELING_DRAMMEN_ENHET));
}


@Test
void hentOppgaverPerFørsteStønadsdag() {
leggInnEttSettMedOppgaver();
Expand Down

0 comments on commit f935dfd

Please sign in to comment.