Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ public interface BehandlingProsesseringTjeneste {
void tvingInnhentingRegisteropplysninger(Behandling behandling);

/** Innhenter registerdata hvis utdatert. */
ProsessTaskGruppe lagOppdaterFortsettTasksForPolling(Behandling behandling);
ProsessTaskGruppe lagOppdaterFortsettTasksForPolling(Behandling behandling, boolean manuellFortsettelse);

/** Returnerer tasks for oppdatering/fortsett for bruk med BehandlingskontrollAsynkTjeneste. Blir ikke lagret her */
ProsessTaskGruppe lagOppdaterFortsettTasksForPolling(Behandling behandling, boolean forceInnhent);
ProsessTaskGruppe lagOppdaterFortsettTasksForPolling(Behandling behandling, boolean forceInnhent, boolean manuellFortsettelse);

// Til bruk for å kjøre behandlingsprosessen videre. Lagrer tasks. Returnerer gruppe-handle
String opprettTasksForFortsettBehandling(Behandling behandling);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,24 +95,24 @@ public void tvingInnhentingRegisteropplysninger(Behandling behandling) {
}

@Override
public ProsessTaskGruppe lagOppdaterFortsettTasksForPolling(Behandling behandling) {
public ProsessTaskGruppe lagOppdaterFortsettTasksForPolling(Behandling behandling, boolean manuellFortsettelse) {
boolean innhentRegisterdata = skalHenteInnRegisterData(behandling);
if (innhentRegisterdata) {
log.info("Innhenter registerdata på nytt, grunnlg er utdatert");
}
return doOppfriskingTaskOgFortsattBehandling(behandling, innhentRegisterdata);
return doOppfriskingTaskOgFortsattBehandling(behandling, innhentRegisterdata, manuellFortsettelse);
}

@Override
public ProsessTaskGruppe lagOppdaterFortsettTasksForPolling(Behandling behandling, boolean forceInnhent) {
public ProsessTaskGruppe lagOppdaterFortsettTasksForPolling(Behandling behandling, boolean forceInnhent, boolean manuellFortsettelse) {
if (forceInnhent) {
log.warn("Innhenter registerdata på nytt (force), selv om data er hentet tidligere i dag");
return doOppfriskingTaskOgFortsattBehandling(behandling, forceInnhent);
return doOppfriskingTaskOgFortsattBehandling(behandling, forceInnhent, manuellFortsettelse);
}
return lagOppdaterFortsettTasksForPolling(behandling);
return lagOppdaterFortsettTasksForPolling(behandling, manuellFortsettelse);
}

private ProsessTaskGruppe doOppfriskingTaskOgFortsattBehandling(Behandling behandling, boolean innhentRegisterdataFørst) {
private ProsessTaskGruppe doOppfriskingTaskOgFortsattBehandling(Behandling behandling, boolean innhentRegisterdataFørst, boolean manuellFortsettelse) {
if (behandling.erSaksbehandlingAvsluttet()) {
throw new IllegalStateException("Utvikler feil: Kan ikke oppdater behandling med nye data når er allerede i iverksettelse/avsluttet. behandlingId=" + behandling.getId()
+ ", behandlingStatus=" + behandling.getStatus()
Expand All @@ -137,10 +137,11 @@ private ProsessTaskGruppe doOppfriskingTaskOgFortsattBehandling(Behandling behan
ProsessTaskData fortsettBehandlingTask;
if (oppfriskKontrollbehandlingEnabled) {
fortsettBehandlingTask = ProsessTaskData.forProsessTask(FortsettBehandlingDersomIkkePåVentTask.class);

} else {
fortsettBehandlingTask = ProsessTaskData.forProsessTask(FortsettBehandlingTask.class);
fortsettBehandlingTask.setProperty(FortsettBehandlingTask.MANUELL_FORTSETTELSE, String.valueOf(true));
Comment on lines 138 to -142
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blir det feil å bruke FortsettBehandlingTask for manuell gjenopptagelse?

if (oppfriskKontrollbehandlingEnabled && !manuellFortsettelse) {

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nei, det burde fungere greit med FortsettBehandlingTask og MANUELL_FORTSETTELSE lik true. Det er slik det fungerer i k9-sak

}
fortsettBehandlingTask.setProperty(FortsettBehandlingTask.MANUELL_FORTSETTELSE, String.valueOf(manuellFortsettelse));
fortsettBehandlingTask.setBehandling(behandling.getFagsakId(), behandling.getId(), behandling.getAktørId().getId());
gruppe.addNesteSekvensiell(fortsettBehandlingTask);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,7 @@ public String asynkStartBehandlingsprosess(Behandling behandling) {
* @return Prosess Task gruppenavn som kan brukes til å sjekke fremdrift
*/
private String asynkInnhentingAvRegisteropplysningerOgKjørProsess(Behandling behandling) {
ProsessTaskGruppe gruppe = behandlingProsesseringTjeneste.lagOppdaterFortsettTasksForPolling(behandling);
String gruppeNavn = prosesseringAsynkTjeneste.lagreNyGruppeKunHvisIkkeAlleredeFinnesOgIngenHarFeilet(behandling.getFagsakId(), String.valueOf(behandling.getId()),
gruppe);
String gruppeNavn = asynkInnhentingAvRegisteropplysningerOgKjørProsess(behandling, true, true);
return gruppeNavn;
}

Expand All @@ -98,8 +96,8 @@ public String asynkStartBehandlingsprosess(Behandling behandling) {
*
* @return Prosess Task gruppenavn som kan brukes til å sjekke fremdrift
*/
public String asynkInnhentingAvRegisteropplysningerOgKjørProsess(Behandling behandling, boolean forceInnhent) {
ProsessTaskGruppe gruppe = behandlingProsesseringTjeneste.lagOppdaterFortsettTasksForPolling(behandling, forceInnhent);
public String asynkInnhentingAvRegisteropplysningerOgKjørProsess(Behandling behandling, boolean forceInnhent, boolean manuellFortsettelse) {
ProsessTaskGruppe gruppe = behandlingProsesseringTjeneste.lagOppdaterFortsettTasksForPolling(behandling, forceInnhent, manuellFortsettelse);
String gruppeNavn = prosesseringAsynkTjeneste.lagreNyGruppeKunHvisIkkeAlleredeFinnesOgIngenHarFeilet(behandling.getFagsakId(), String.valueOf(behandling.getId()),
gruppe);
return gruppeNavn;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import jakarta.inject.Inject;
import no.nav.k9.prosesstask.api.ProsessTask;
import no.nav.k9.prosesstask.api.ProsessTaskData;
import no.nav.ung.kodeverk.behandling.BehandlingStegType;
import no.nav.ung.sak.behandlingskontroll.BehandlingskontrollKontekst;
import no.nav.ung.sak.behandlingskontroll.BehandlingskontrollTjeneste;
import no.nav.ung.sak.behandlingslager.behandling.Behandling;
Expand All @@ -13,6 +14,8 @@
import no.nav.ung.sak.behandlingslager.task.UnderBehandlingProsessTask;
import org.slf4j.Logger;

import java.util.Optional;

/**
* Kjører behandlingskontroll automatisk fra der prosessen står.
*/
Expand Down Expand Up @@ -40,14 +43,24 @@ public class FortsettBehandlingDersomIkkePåVentTask extends UnderBehandlingPros
@Override
public void doProsesser(ProsessTaskData data, Behandling behandling) {
var behandlingId = data.getBehandlingId();
BehandlingskontrollKontekst kontekst = behandlingskontrollTjeneste.initBehandlingskontroll(behandlingId);

Boolean manuellFortsettelse = Optional.ofNullable(data.getPropertyValue(FortsettBehandlingTask.MANUELL_FORTSETTELSE))
.map(Boolean::valueOf)
.orElse(Boolean.FALSE);

if (manuellFortsettelse) {
if (behandling.isBehandlingPåVent()) { // Autopunkt
behandlingskontrollTjeneste.taBehandlingAvVentSetAlleAutopunktUtført(behandling, kontekst);
}
}
if (behandling.isBehandlingPåVent()) {
logger.info("Behandling {} er på vent, fortsetter ikke behandling nå.", behandlingId);
return;
}
if (behandling.erAvsluttet()) {
throw new IllegalStateException("Kan ikke fortsette en avsluttet behandling");
}
BehandlingskontrollKontekst kontekst = behandlingskontrollTjeneste.initBehandlingskontroll(behandlingId);
behandlingskontrollTjeneste.prosesserBehandling(kontekst);

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public void prosesser(ProsessTaskData prosessTaskData) {
var behandling = repository.hentBehandling(prosessTaskData.getBehandlingId());
logContext(behandling);
boolean forceInnhent = Boolean.parseBoolean(prosessTaskData.getPropertyValue(PROPERTY_FORCE));
behandlingsprosessApplikasjonTjeneste.asynkInnhentingAvRegisteropplysningerOgKjørProsess(behandling, forceInnhent);
behandlingsprosessApplikasjonTjeneste.asynkInnhentingAvRegisteropplysningerOgKjørProsess(behandling, forceInnhent, false);
} catch (RuntimeException e) {
log.info("Uventet feil ved oppfrisking av behandling.", e);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import no.nav.ung.sak.web.app.tjenester.VurderProsessTaskStatusForPollingApi;
import no.nav.ung.sak.web.app.tjenester.VurderProsessTaskStatusForPollingApi.ProsessTaskFeilmelder;
import no.nav.ung.sak.web.server.abac.NavAnsatttRestKlient;
import no.nav.ung.sak.web.server.abac.SifAbacPdpRestKlient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -139,7 +138,7 @@ public boolean opprettTaskForOppfrisking(Behandling behandling, boolean forceInn
* @return Prosess Task gruppenavn som kan brukes til å sjekke fremdrift
*/
String asynkInnhentingAvRegisteropplysningerOgKjørProsess(Behandling behandling, boolean forceInnhent) {
ProsessTaskGruppe gruppe = behandlingProsesseringTjeneste.lagOppdaterFortsettTasksForPolling(behandling, forceInnhent);
ProsessTaskGruppe gruppe = behandlingProsesseringTjeneste.lagOppdaterFortsettTasksForPolling(behandling, forceInnhent, true);
String gruppeNavn = asynkTjeneste.lagreNyGruppeKunHvisIkkeAlleredeFinnesOgIngenHarFeilet(behandling.getFagsakId(), String.valueOf(behandling.getId()),
gruppe);
return gruppeNavn;
Expand Down