Skip to content

Commit

Permalink
Bom 320 (#2072)
Browse files Browse the repository at this point in the history
  • Loading branch information
jolarsen authored Apr 11, 2024
1 parent 968fb1c commit ca10b21
Show file tree
Hide file tree
Showing 11 changed files with 87 additions and 86 deletions.
31 changes: 7 additions & 24 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>no.nav.foreldrepenger.felles</groupId>
<artifactId>fp-bom</artifactId>
<version>3.1.2</version>
<version>3.2.0</version>
</parent>

<groupId>no.nav.foreldrepenger.los</groupId>
Expand All @@ -17,9 +17,9 @@
<sonar.projectName>fp-los</sonar.projectName>
<sonar.projectKey>navikt_fplos</sonar.projectKey>

<fp-kontrakter.version>9.1.8</fp-kontrakter.version>
<felles.version>7.0.10</felles.version>
<prosesstask.version>5.0.5</prosesstask.version>
<fp-kontrakter.version>9.1.12</fp-kontrakter.version>
<felles.version>7.1.2</felles.version>
<prosesstask.version>5.0.8</prosesstask.version>
</properties>

<dependencies>
Expand Down Expand Up @@ -172,23 +172,6 @@
<artifactId>jetty-ee10-cdi</artifactId>
</dependency>

<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_dropwizard</artifactId>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_hotspot</artifactId>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient</artifactId>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_common</artifactId>
</dependency>

<!-- Annet -->
<dependency>
<groupId>ch.qos.logback</groupId>
Expand Down Expand Up @@ -220,8 +203,8 @@
<artifactId>hibernate-validator</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>jakarta.el</artifactId>
<groupId>org.glassfish.expressly</groupId>
<artifactId>expressly</artifactId>
</dependency>
<dependency>
<groupId>jakarta.validation</groupId>
Expand Down Expand Up @@ -253,7 +236,7 @@
<dependency>
<groupId>no.nav.foreldrepenger.felles</groupId>
<artifactId>fp-bom</artifactId>
<version>3.1.2</version>
<version>3.2.0</version>
<scope>import</scope>
<type>pom</type>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package no.nav.foreldrepenger.los.hendelse.hendelsehåndterer.fpsak;

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.function.Predicate;

import no.nav.foreldrepenger.los.felles.util.StreamUtil;
Expand All @@ -17,14 +19,14 @@
import no.nav.vedtak.hendelser.behandling.los.LosFagsakEgenskaperDto.FagsakMarkering;

public class FpsakOppgaveEgenskapFinner implements OppgaveEgenskapFinner {
private final List<AndreKriterierType> andreKriterier = new ArrayList<>();
private final Set<AndreKriterierType> andreKriterier = new LinkedHashSet<>();
private final String saksbehandlerForTotrinn;

public FpsakOppgaveEgenskapFinner(LosBehandlingDto behandling) {
this.saksbehandlerForTotrinn = behandling.ansvarligSaksbehandlerIdent();

if (Optional.ofNullable(behandling.foreldrepengerDto()).filter(LosBehandlingDto.LosForeldrepengerDto::gradering).isPresent()) {
this.andreKriterier.add(AndreKriterierType.SØKT_GRADERING);
if (harBehandlingsegenskap(behandling, LokalBehandlingEgenskap.SYKDOMSVURDERING)) {
this.andreKriterier.add(AndreKriterierType.VURDER_SYKDOM);
}
if (Optional.ofNullable(behandling.foreldrepengerDto()).filter(LosBehandlingDto.LosForeldrepengerDto::sykdomsvurdering).isPresent()) {
this.andreKriterier.add(AndreKriterierType.VURDER_SYKDOM);
Expand All @@ -35,29 +37,29 @@ public FpsakOppgaveEgenskapFinner(LosBehandlingDto behandling) {
if (behandling.behandlingsårsaker().stream().anyMatch(Behandlingsårsak.BERØRT::equals)) {
this.andreKriterier.add(AndreKriterierType.BERØRT_BEHANDLING);
}
if (!behandling.refusjonskrav()) {
if (!behandling.refusjonskrav() || harBehandlingsegenskap(behandling, LokalBehandlingEgenskap.DIREKTE_UTBETALING)) {
this.andreKriterier.add(AndreKriterierType.UTBETALING_TIL_BRUKER);
}
if (Ytelse.FORELDREPENGER.equals(behandling.ytelse()) && Behandlingstype.REVURDERING.equals(behandling.behandlingstype())
&& behandling.behandlingsårsaker().stream().anyMatch(Behandlingsårsak.SØKNAD::equals)) {
this.andreKriterier.add(AndreKriterierType.ENDRINGSSØKNAD);
}
if (behandling.faresignaler()) {
if (behandling.faresignaler() || harBehandlingsegenskap(behandling, LokalBehandlingEgenskap.FARESIGNALER)) {
this.andreKriterier.add(AndreKriterierType.VURDER_FARESIGNALER);
}
if (behandling.behandlingsårsaker().stream().anyMatch(Behandlingsårsak.KLAGE_TILBAKEBETALING::equals)) {
this.andreKriterier.add(AndreKriterierType.KLAGE_PÅ_TILBAKEBETALING);
}
if (FagsakEgenskaper.fagsakErMarkertEØSBosattNorge(behandling)) {
if (FagsakEgenskaper.fagsakErMarkertEØSBosattNorge(behandling) || harSaksegenskap(behandling, LokalFagsakEgenskap.EØS_BOSATT_NORGE)) {
this.andreKriterier.add(AndreKriterierType.EØS_SAK);
}
if (FagsakEgenskaper.fagsakErMarkertBosattUtland(behandling)) {
if (FagsakEgenskaper.fagsakErMarkertBosattUtland(behandling) || harSaksegenskap(behandling, LokalFagsakEgenskap.BOSATT_UTLAND)) {
this.andreKriterier.add(AndreKriterierType.UTLANDSSAK);
}
if (FagsakEgenskaper.fagsakErMarkertSammensattKontroll(behandling)) {
if (FagsakEgenskaper.fagsakErMarkertSammensattKontroll(behandling) || harSaksegenskap(behandling, LokalFagsakEgenskap.SAMMENSATT_KONTROLL)) {
this.andreKriterier.add(AndreKriterierType.SAMMENSATT_KONTROLL);
}
if (FagsakEgenskaper.fagsakErMarkertDød(behandling)) {
if (FagsakEgenskaper.fagsakErMarkertDød(behandling) || harSaksegenskap(behandling, LokalFagsakEgenskap.DØD)) {
this.andreKriterier.add(AndreKriterierType.DØD);
}
var aksjonspunkter = behandling.aksjonspunkt().stream().map(Aksjonspunkt::aksjonspunktFra).toList();
Expand All @@ -68,7 +70,7 @@ public FpsakOppgaveEgenskapFinner(LosBehandlingDto behandling) {
if (matchAksjonspunkt(aksjonspunkter, Aksjonspunkt::erRegistrerPapirSøknad)) {
this.andreKriterier.add(AndreKriterierType.PAPIRSØKNAD);
}
if (skalVurdereBehovForSED(aksjonspunkter, behandling.fagsakEgenskaper())) {
if (skalVurdereBehovForSED(aksjonspunkter, behandling)) {
this.andreKriterier.add(AndreKriterierType.VURDER_EØS_OPPTJENING);
}
if (matchAksjonspunkt(aksjonspunkter, Aksjonspunkt::skalVurdereArbeidInntekt)) {
Expand All @@ -81,31 +83,52 @@ public FpsakOppgaveEgenskapFinner(LosBehandlingDto behandling) {
if (FagsakEgenskaper.fagsakErMarkertNæring(behandling) && matchAksjonspunkt(aksjonspunkter, Aksjonspunkt::skalVurdereNæring)) {
this.andreKriterier.add(AndreKriterierType.NÆRING);
}
if (FagsakEgenskaper.fagsakErMarkertUtsettelse(behandling)) {
if (harSaksegenskap(behandling, LokalFagsakEgenskap.PRAKSIS_UTSETTELSE) && matchAksjonspunkt(aksjonspunkter, Aksjonspunkt::skalVurdereNæring)) {
this.andreKriterier.add(AndreKriterierType.NÆRING);
}
if (FagsakEgenskaper.fagsakErMarkertUtsettelse(behandling) || harSaksegenskap(behandling, LokalFagsakEgenskap.PRAKSIS_UTSETTELSE)) {
this.andreKriterier.add(AndreKriterierType.PRAKSIS_UTSETTELSE);
}
}

public enum LokalFagsakEgenskap {
NASJONAL, EØS_BOSATT_NORGE, BOSATT_UTLAND, SAMMENSATT_KONTROLL, DØD, NÆRING, PRAKSIS_UTSETTELSE
}

public enum LokalBehandlingEgenskap {
SYKDOMSVURDERING, BARE_FAR_RETT, FARESIGNALER, DIREKTE_UTBETALING
}

@Override
public List<AndreKriterierType> getAndreKriterier() {
return andreKriterier;
return new ArrayList<>(andreKriterier);
}

@Override
public String getSaksbehandlerForTotrinn() {
return saksbehandlerForTotrinn;
}

private static boolean skalVurdereBehovForSED(List<Aksjonspunkt> aksjonspunkt, LosFagsakEgenskaperDto dto) {
private static boolean skalVurdereBehovForSED(List<Aksjonspunkt> aksjonspunkt, LosBehandlingDto dto) {
var skalVurdereInnhentingAvSED = matchAksjonspunkt(aksjonspunkt, Aksjonspunkt::skalVurdereInnhentingAvSED);
var fagsakErMarkertNasjonal = Optional.ofNullable(dto)
var fagsakErMarkertNasjonal = Optional.ofNullable(dto).map(LosBehandlingDto::fagsakEgenskaper)
.map(LosFagsakEgenskaperDto::fagsakMarkering)
.filter(FagsakMarkering.NASJONAL::equals)
.isPresent();
.isPresent() || harSaksegenskap(dto, LokalFagsakEgenskap.NASJONAL);
return skalVurdereInnhentingAvSED && !fagsakErMarkertNasjonal;
}

private static boolean matchAksjonspunkt(List<Aksjonspunkt> aksjonspunkt, Predicate<Aksjonspunkt> predicate) {
return StreamUtil.safeStream(aksjonspunkt).anyMatch(predicate);
}

private static boolean harSaksegenskap(LosBehandlingDto dto, LokalFagsakEgenskap egenskap) {
return Optional.ofNullable(dto).map(LosBehandlingDto::saksegenskaper).orElse(List.of()).stream()
.anyMatch(s -> s.equalsIgnoreCase(egenskap.name()));
}

private static boolean harBehandlingsegenskap(LosBehandlingDto dto, LokalBehandlingEgenskap egenskap) {
return Optional.ofNullable(dto).map(LosBehandlingDto::behandlingsegenskaper).orElse(List.of()).stream()
.anyMatch(s -> s.equalsIgnoreCase(egenskap.name()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import java.util.Set;

import io.prometheus.client.hotspot.DefaultExports;
import jakarta.ws.rs.ApplicationPath;
import jakarta.ws.rs.core.Application;
import no.nav.foreldrepenger.los.server.PrometheusRestService;
Expand All @@ -14,8 +13,6 @@ public class InternalApiConfig extends Application {
public static final String API_URI = "/internal";

public InternalApiConfig() {
// CDI
DefaultExports.initialize();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package no.nav.foreldrepenger.los.server;

import io.prometheus.client.hotspot.DefaultExports;
import no.nav.vedtak.log.metrics.Controllable;
import static java.util.concurrent.CompletableFuture.runAsync;

import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -10,13 +14,7 @@
import jakarta.enterprise.inject.Any;
import jakarta.enterprise.inject.Instance;
import jakarta.inject.Inject;

import java.util.Set;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

import static java.util.concurrent.CompletableFuture.runAsync;
import no.nav.vedtak.log.metrics.Controllable;

@ApplicationScoped
public class ApplicationServiceStarter {
Expand All @@ -42,9 +40,6 @@ public ApplicationServiceStarter(@Any Instance<Controllable> services) {
}

public void startServices() {
// Prometheus
DefaultExports.initialize();

// Services
LOGGER.info("Starter {} services", services.size());
CompletableFuture.allOf(services.stream().map(service -> runAsync(service::start)).toArray(CompletableFuture[]::new)).join();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,13 @@ int slettUtdaterte() {
return deletedRows;
}

int slettLøseKriterier() {
var query = entityManager.createNativeQuery("delete from FILTRERING_ANDRE_KRITERIER where oppgave_filtrering_id not in (select id from OPPGAVE_FILTRERING)");
int deletedRows = query.executeUpdate();
entityManager.flush();
return deletedRows;
}

private static NyeOgFerdigstilteOppgaver map(Object objectArray) {
var objects = (Object[]) objectArray;
var datoFra = localDate(objects[0]);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,7 @@ public SlettUtdatertKoStatistikkTask(KøStatistikkRepository køStatistikkReposi
public void doTask(ProsessTaskData prosessTaskData) {
var slettet = køStatistikkRepository.slettUtdaterte();
LOG.info("Slettet {} rader i køstatistikk-tabellen", slettet);
var utdatert = køStatistikkRepository.slettLøseKriterier();
LOG.info("Slettet {} løse kriterier i filtrering-kriterier-tabellen", utdatert);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.mock;

import java.math.BigDecimal;
import java.time.LocalDate;
Expand All @@ -11,7 +10,6 @@
import java.util.List;
import java.util.stream.Collectors;

import no.nav.foreldrepenger.los.DBTestUtil;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
Expand All @@ -20,14 +18,15 @@
import org.mockito.junit.jupiter.MockitoExtension;

import jakarta.persistence.EntityManager;
import no.nav.foreldrepenger.los.DBTestUtil;
import no.nav.foreldrepenger.los.JpaExtension;
import no.nav.foreldrepenger.los.domene.typer.BehandlingId;
import no.nav.foreldrepenger.los.domene.typer.aktør.AktørId;
import no.nav.foreldrepenger.los.felles.BaseEntitet;
import no.nav.foreldrepenger.los.hendelse.hendelsehåndterer.fpsak.Aksjonspunkt;
import no.nav.foreldrepenger.los.hendelse.hendelsehåndterer.oppgaveeventlogg.OppgaveEventLogg;
import no.nav.foreldrepenger.los.hendelse.hendelsehåndterer.oppgaveeventlogg.OppgaveEventType;
import no.nav.foreldrepenger.los.hendelse.hendelsehåndterer.tilbakekreving.TilbakekrevingHendelseHåndterer;
import no.nav.foreldrepenger.los.hendelse.hendelsehåndterer.fpsak.Aksjonspunkt;
import no.nav.foreldrepenger.los.oppgave.AndreKriterierType;
import no.nav.foreldrepenger.los.oppgave.Oppgave;
import no.nav.foreldrepenger.los.oppgave.OppgaveEgenskap;
Expand Down Expand Up @@ -276,7 +275,7 @@ private static LosBehandlingDto hendelse(List<Aksjonspunkt> aksjonspunkter, Beha
return new LosBehandlingDto(behandlingId.toUUID(), Kildesystem.FPTILBAKE, "123", Ytelse.FORELDREPENGER,
new no.nav.vedtak.hendelser.behandling.AktørId(AktørId.dummy().getId()), Behandlingstype.TILBAKEBETALING, Behandlingsstatus.OPPRETTET,
LocalDateTime.now(), "0300", null, "saksbehandler", ap, List.of(),
false, false, fagsakEgenskaperDto, null,
false, false, List.of(), fagsakEgenskaperDto, null, List.of(),
new LosBehandlingDto.LosTilbakeDto(BigDecimal.valueOf(500), LocalDate.now()));
}

Expand Down
Loading

0 comments on commit ca10b21

Please sign in to comment.