Skip to content

Commit

Permalink
Sjekk beslutter mot den som foreslo. Fjerne ubrukt event (#2828)
Browse files Browse the repository at this point in the history
* Sjekk beslutter mot den som foreslo. Fjerne ubrukt event

* Piprepository oppdatert

* Litt mer sikring

* Ikke sett saksbehandler ved gjenopptak

* Endre til å sjekke om behandling under behnadling
  • Loading branch information
jolarsen committed Jun 13, 2024
1 parent a81394d commit 2e3c65d
Show file tree
Hide file tree
Showing 9 changed files with 61 additions and 148 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,6 @@ private void oppdaterBehandlingStegStatus(Behandling behandling,
if (erForskjellig(førsteStegStatus, nyStegStatus)) {
InternalManipulerBehandling.forceOppdaterBehandlingSteg(behandling, stegType, nyStegStatus, BehandlingStegStatus.UTFØRT);
behandlingRepository.lagre(behandling, kontekst.getSkriveLås());
eventPubliserer.fireEvent(kontekst, stegType, førsteStegStatus, nyStegStatus);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,15 @@
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.event.Event;
import jakarta.inject.Inject;

import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.BehandlingskontrollKontekst;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.events.AksjonspunktStatusEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.events.BehandlingStatusEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.events.BehandlingStegOvergangEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.events.BehandlingStegStatusEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.events.BehandlingTransisjonEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.events.BehandlingskontrollEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.BehandlingEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.BehandlingStatus;
import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.BehandlingStegStatus;
import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.BehandlingStegType;


/**
Expand Down Expand Up @@ -53,15 +51,6 @@ public void fireEvent(BehandlingTransisjonEvent event) {
doFireEvent(event);
}

public void fireEvent(BehandlingskontrollKontekst kontekst, BehandlingStegType stegType, BehandlingStegStatus forrigeStatus,
BehandlingStegStatus nyStatus) {
if (Objects.equals(forrigeStatus, nyStatus)) {
// gjør ingenting
return;
}
doFireEvent(new BehandlingStegStatusEvent(kontekst, stegType, forrigeStatus, nyStatus));
}

public void fireEvent(BehandlingskontrollKontekst kontekst, BehandlingStatus gammelStatus, BehandlingStatus nyStatus) {
if (Objects.equals(gammelStatus, nyStatus)) {
// gjør ingenting
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@

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

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

import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.BehandlingModell;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.BehandlingModellVisitor;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.BehandlingStegKonfigurasjon;
Expand Down Expand Up @@ -54,6 +58,8 @@
@RequestScoped // må være RequestScoped sålenge ikke nøstet prosessering støttes.
public class BehandlingskontrollTjeneste {

private static final Logger LOG = LoggerFactory.getLogger(BehandlingskontrollTjeneste.class);

private AksjonspunktKontrollRepository aksjonspunktKontrollRepository;
private BehandlingRepository behandlingRepository;
private BehandlingresultatRepository behandlingresultatRepository;
Expand Down Expand Up @@ -422,7 +428,17 @@ public void avsluttBehandling(BehandlingskontrollKontekst kontekst) {
public Aksjonspunkt settBehandlingPåVent(Behandling behandling, AksjonspunktDefinisjon aksjonspunktDefinisjonIn,
BehandlingStegType stegType, LocalDateTime fristTid, Venteårsak venteårsak) {
var kontekst = initBehandlingskontroll(behandling);
behandling.setAnsvarligSaksbehandler(null);
// Nullstill ansvarlig saksbehandler dersom settes på vent utenom i sluttfasen
if (!behandling.erOrdinærSaksbehandlingAvsluttet()) {
behandling.setAnsvarligSaksbehandler(null);
} else {
// Finn ut hvor dette oppstår
try {
throw new IllegalStateException("Satt på vent mens ligger hos beslutter");
} catch (Exception e) {
LOG.info("FPTILBAKE: Satt på vent mens status {}", behandling.getStatus(), e);
}
}
var aksjonspunkt = aksjonspunktKontrollRepository.settBehandlingPåVent(behandling, aksjonspunktDefinisjonIn, stegType, fristTid,
venteårsak);
behandlingRepository.lagre(behandling, kontekst.getSkriveLås());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.BehandlingStegTilstandSnapshot;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.BehandlingskontrollKontekst;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.events.BehandlingStegOvergangEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.events.BehandlingStegStatusEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.events.BehandlingskontrollEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.spi.BehandlingskontrollServiceProvider;
import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.Behandling;
Expand Down Expand Up @@ -100,35 +99,6 @@ void skal_fyre_event_for_behandlingskontroll_startet_stoppet_ved_prosessering()

}

@Test
void skal_fyre_event_for_behandlingskontroll_behandlingsteg_status_endring_ved_prosessering() {
// Arrange
ScenarioSimple scenario = nyttScenario(STEG_1);

Behandling behandling = scenario.lagre(repositoryProvider);

BehandlingskontrollKontekst kontekst = kontrollTjeneste.initBehandlingskontroll(behandling.getId());

// Act
kontrollTjeneste.prosesserBehandling(kontekst);

// Assert

BehandlingStegStatusEvent steg1StatusEvent0 = new BehandlingStegStatusEvent(kontekst, STEG_1, null, BehandlingStegStatus.STARTET);
BehandlingStegStatusEvent steg1StatusEvent1 = new BehandlingStegStatusEvent(kontekst, STEG_1, BehandlingStegStatus.STARTET, BehandlingStegStatus.UTFØRT);
BehandlingStegStatusEvent steg2StatusEvent0 = new BehandlingStegStatusEvent(kontekst, STEG_2, null, BehandlingStegStatus.STARTET);
BehandlingStegStatusEvent steg2StatusEvent = new BehandlingStegStatusEvent(kontekst, STEG_2, BehandlingStegStatus.STARTET, BehandlingStegStatus.UTFØRT);
BehandlingStegStatusEvent steg3StatusEvent0 = new BehandlingStegStatusEvent(kontekst, STEG_2, null, BehandlingStegStatus.STARTET);
BehandlingStegStatusEvent steg3StatusEvent = new BehandlingStegStatusEvent(kontekst, STEG_3, BehandlingStegStatus.STARTET, BehandlingStegStatus.UTFØRT);
BehandlingStegStatusEvent steg4StatusEvent0 = new BehandlingStegStatusEvent(kontekst, STEG_4, null, BehandlingStegStatus.STARTET);
BehandlingStegStatusEvent steg4StatusEvent = new BehandlingStegStatusEvent(kontekst, STEG_3, BehandlingStegStatus.STARTET, BehandlingStegStatus.UTGANG);
TestEventObserver.containsExactly(steg1StatusEvent0, steg1StatusEvent1 //
, steg2StatusEvent0, steg2StatusEvent//
, steg3StatusEvent0, steg3StatusEvent//
, steg4StatusEvent0, steg4StatusEvent//
);
}

@Test
void skal_fyre_event_for_behandlingskontroll_tilbakeføring_ved_prosessering() {
// Arrange
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.events.AksjonspunktStatusEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.events.BehandlingStatusEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.events.BehandlingStegOvergangEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.events.BehandlingStegStatusEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingskontroll.events.BehandlingskontrollEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.BehandlingEvent;
import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.aksjonspunkt.Aksjonspunkt;
Expand Down Expand Up @@ -63,10 +62,6 @@ public void observer(@Observes BehandlingskontrollEvent event) {
addEvent(event);
}

public void observer(@Observes BehandlingStegStatusEvent event) {
addEvent(event);
}

public static void containsExactly(AksjonspunktDefinisjon[]... ads) {
List<AksjonspunktStatusEvent> aksjonspunkterEvents = getEvents(AksjonspunktStatusEvent.class);
Assertions.assertThat(aksjonspunkterEvents).hasSize(ads.length);
Expand Down Expand Up @@ -110,16 +105,6 @@ public static void containsExactly(BehandlingStegOvergangEvent... bsoe) {
}
}

public static void containsExactly(BehandlingStegStatusEvent... bsoe) {
List<BehandlingStegStatusEvent> behandlingStegStatusEvents = getEvents(BehandlingStegStatusEvent.class);
Assertions.assertThat(behandlingStegStatusEvents).hasSize(bsoe.length);
for (int i = 0; i < bsoe.length; i++) {
BehandlingStegStatusEvent minEvent = bsoe[i];
assertThat(behandlingStegStatusEvents.get(i).getForrigeStatus()).as("%s:%s", i, minEvent.getStegType()).isEqualTo(minEvent.getForrigeStatus());
assertThat(behandlingStegStatusEvents.get(i).getNyStatus()).as("%s:%s", i, minEvent.getStegType()).isEqualTo(minEvent.getNyStatus());
}
}

private static String hentKode(Optional<BehandlingStegTilstandSnapshot> behandlingStegTilstand) {
return behandlingStegTilstand
.map(BehandlingStegTilstandSnapshot::getStatus)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;

import org.hibernate.annotations.NaturalId;

import jakarta.persistence.CascadeType;
import jakarta.persistence.Column;
import jakarta.persistence.ColumnResult;
Expand All @@ -35,6 +33,9 @@
import jakarta.persistence.SqlResultSetMapping;
import jakarta.persistence.Table;
import jakarta.persistence.Version;

import org.hibernate.annotations.NaturalId;

import no.nav.foreldrepenger.tilbakekreving.behandlingslager.BaseEntitet;
import no.nav.foreldrepenger.tilbakekreving.behandlingslager.SaksbehandlingType;
import no.nav.foreldrepenger.tilbakekreving.behandlingslager.aktør.OrganisasjonsEnhet;
Expand Down Expand Up @@ -442,6 +443,14 @@ public boolean erSaksbehandlingAvsluttet() {
return erAvsluttet() || erUnderIverksettelse();
}

public boolean erOrdinærSaksbehandlingAvsluttet() {
return erAvsluttet() || erUnderIverksettelse() || erTilBeslutter();
}

public boolean erTilBeslutter() {
return Objects.equals(BehandlingStatus.FATTER_VEDTAK, getStatus());
}

public boolean erUnderIverksettelse() {
return Objects.equals(BehandlingStatus.IVERKSETTER_VEDTAK, getStatus());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@
import jakarta.inject.Inject;
import jakarta.persistence.EntityManager;
import jakarta.persistence.Query;

import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.aksjonspunkt.AksjonspunktKodeDefinisjon;
import no.nav.foreldrepenger.tilbakekreving.behandlingslager.behandling.aksjonspunkt.AksjonspunktStatus;
import no.nav.foreldrepenger.tilbakekreving.domene.typer.BehandlingInfo;

@ApplicationScoped
Expand Down Expand Up @@ -55,16 +58,19 @@ private Optional<BehandlingInfo> hentInternBehandlingData(long behandlingId) {
, f.saksnummer as saksnummer
, u.aktoer_id as aktørId
, b.behandling_status as behandlingstatus
, b.ansvarlig_saksbehandler as ansvarligSaksbehandler
, coalesce(b.ansvarlig_saksbehandler, ap.endret_av) as ansvarligSaksbehandler
from behandling b
left join fagsak f on f.id = b.fagsak_id
left join bruker u on u.id = f.bruker_id
left join aksjonspunkt ap on (ap.behandling_id = b.id and aksjonspunkt_def = :foreslå and aksjonspunkt_status = :utført)
where b.id = :behandlingId
""";

// PipBehandlingInfo-mappingen er definert i Behandling entiteten
Query query = entityManager.createNativeQuery(sql, "PipBehandlingInfo");
query.setParameter("behandlingId", behandlingId);
Query query = entityManager.createNativeQuery(sql, "PipBehandlingInfo")
.setParameter("behandlingId", behandlingId)
.setParameter("foreslå", AksjonspunktKodeDefinisjon.FORESLÅ_VEDTAK)
.setParameter("utført", AksjonspunktStatus.UTFØRT.getKode());

List resultater = query.getResultList();
if (resultater.isEmpty()) {
Expand All @@ -83,16 +89,19 @@ private Optional<BehandlingInfo> hentInternBehandlingData(UUID behandlingUuid) {
, f.saksnummer as saksnummer
, u.aktoer_id as aktørId
, b.behandling_status as behandlingstatus
, b.ansvarlig_saksbehandler as ansvarligSaksbehandler
, coalesce(b.ansvarlig_saksbehandler, ap.endret_av) as ansvarligSaksbehandler
from behandling b
left join fagsak f on f.id = b.fagsak_id
left join bruker u on u.id = f.bruker_id
left join aksjonspunkt ap on (ap.behandling_id = b.id and aksjonspunkt_def = :foreslå and aksjonspunkt_status = :utført)
where b.uuid = :behandlingUuid
""";

// PipBehandlingInfo-mappingen er definert i Behandling entiteten
Query query = entityManager.createNativeQuery(sql, "PipBehandlingInfo");
query.setParameter("behandlingUuid", behandlingUuid);
Query query = entityManager.createNativeQuery(sql, "PipBehandlingInfo")
.setParameter("behandlingUuid", behandlingUuid)
.setParameter("foreslå", AksjonspunktKodeDefinisjon.FORESLÅ_VEDTAK)
.setParameter("utført", AksjonspunktStatus.UTFØRT.getKode());

List resultater = query.getResultList();
if (resultater.isEmpty()) {
Expand Down
Loading

0 comments on commit 2e3c65d

Please sign in to comment.