Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TFP-6037: Fjerner alle Oppgitt Opptjening aggregat uten referanse til grunnlag #2642

Merged
Merged
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 @@ -141,9 +141,7 @@ public Response oppdaterAktoerId(@TilpassetAbacAttributt(supplierClass = Forvalt
@BeskyttetRessurs(actionType = ActionType.CREATE, resourceType = ResourceType.DRIFT, sporingslogg = true)
public Response ryddOppGrunnlagUtenReferanse() {
LOG.info("FORVALTNING ABAKUS ryddOppGrunnlagUtenReferanse");
oppryddingTjeneste.fjernAlleIayAggregatUtenReferanse();
oppryddingTjeneste.fjernAlleIayInformasjontUtenReferanse();
oppryddingTjeneste.fjernAlleIayInntektsmeldingerUtenReferanse();
oppryddingTjeneste.fjernAlleInaktiveAggregaterUtenReferanse();
return Response.ok().build();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package no.nav.foreldrepenger.abakus.rydding.task;
package no.nav.foreldrepenger.abakus.rydding;

import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import no.nav.foreldrepenger.abakus.rydding.OppryddingTjeneste;
import no.nav.vedtak.felles.prosesstask.api.ProsessTask;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskHandler;

@ApplicationScoped
@ProsessTask(value = "opprydding.grunnlag.uten.referanse", cronExpression = "0 0 3 * * *", maxFailedRuns = 1)
// Kjører kl 02:00 hver Søndag
@ProsessTask(value = "opprydding.grunnlag.uten.referanse", cronExpression = "0 0 2 * * 0", maxFailedRuns = 1)
public class FjernAlleGrunnlagUtenReferanseBatchTask implements ProsessTaskHandler {

private final OppryddingTjeneste oppryddingTjeneste;
Expand All @@ -20,8 +20,6 @@ public FjernAlleGrunnlagUtenReferanseBatchTask(OppryddingTjeneste oppryddingTjen

@Override
public void doTask(ProsessTaskData prosessTaskData) {
oppryddingTjeneste.fjernAlleIayAggregatUtenReferanse();
oppryddingTjeneste.fjernAlleIayInformasjontUtenReferanse();
oppryddingTjeneste.fjernAlleIayInntektsmeldingerUtenReferanse();
oppryddingTjeneste.fjernAlleInaktiveAggregaterUtenReferanse();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import no.nav.foreldrepenger.abakus.rydding.task.FjernIayGrunnlagUtenReferanseTask;
import no.nav.foreldrepenger.abakus.rydding.task.FjernIayInformasjonUtenReferanseTask;
import no.nav.foreldrepenger.abakus.rydding.task.FjernIayInntektsmeldingerUtenReferanseTask;
import no.nav.foreldrepenger.abakus.rydding.arbeidsforhold.FjernIayInformasjonUtenReferanseTask;
import no.nav.foreldrepenger.abakus.rydding.grunnlag.FjernIayGrunnlagUtenReferanseTask;
import no.nav.foreldrepenger.abakus.rydding.inntektsmelding.FjernIayInntektsmeldingerUtenReferanseTask;
import no.nav.foreldrepenger.abakus.rydding.opptjening.FjernIayOppgittOpptjeningUtenReferanseTask;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskTjeneste;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


@ApplicationScoped
public class OppryddingTjeneste {
private static final Logger LOG = LoggerFactory.getLogger(OppryddingTjeneste.class);
Expand All @@ -25,33 +25,38 @@ public OppryddingTjeneste(ProsessTaskTjeneste taskTjeneste) {
this.taskTjeneste = taskTjeneste;
}

public void fjernAlleIayAggregatUtenReferanse() {
opprettFjernIayAggregatTask();
}

public void fjernAlleIayInformasjontUtenReferanse() {
/**
* Fjerner alle inaktive aggregater uten referanse.
* Oppretter fire tasker som sletter aggregater asynkront
*/
public void fjernAlleInaktiveAggregaterUtenReferanse() {
opprettFjernIayInntektArbeidYtelseAggregatTask();
opprettFjernIayInformasjonTask();
}

public void fjernAlleIayInntektsmeldingerUtenReferanse() {
opprettFjernIayInntektsmeldingerTask();
opprettFjernIayOppgittOpptjeningTask();
}

private void opprettFjernIayAggregatTask() {
public void opprettFjernIayInntektArbeidYtelseAggregatTask() {
LOG.info("Oppretter task for å fjerne IAY-aggregater uten referanse.");
var prosessTaskData = ProsessTaskData.forProsessTask(FjernIayGrunnlagUtenReferanseTask.class);
taskTjeneste.lagre(prosessTaskData);
}

private void opprettFjernIayInformasjonTask() {
public void opprettFjernIayInformasjonTask() {
LOG.info("Oppretter task for å fjerne IAY-Informasjon uten referanse.");
var prosessTaskData = ProsessTaskData.forProsessTask(FjernIayInformasjonUtenReferanseTask.class);
taskTjeneste.lagre(prosessTaskData);
}

private void opprettFjernIayInntektsmeldingerTask() {
public void opprettFjernIayInntektsmeldingerTask() {
LOG.info("Oppretter task for å fjerne IAY-Inntektsmeldinger uten referanse.");
var prosessTaskData = ProsessTaskData.forProsessTask(FjernIayInntektsmeldingerUtenReferanseTask.class);
taskTjeneste.lagre(prosessTaskData);
}

public void opprettFjernIayOppgittOpptjeningTask() {
LOG.info("Oppretter task for å fjerne IAY-Oppgitt Opptjening uten referanse.");
var prosessTaskData = ProsessTaskData.forProsessTask(FjernIayOppgittOpptjeningUtenReferanseTask.class);
taskTjeneste.lagre(prosessTaskData);
}
}
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
package no.nav.foreldrepenger.abakus.rydding.task;
package no.nav.foreldrepenger.abakus.rydding.arbeidsforhold;

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

import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import no.nav.foreldrepenger.abakus.rydding.OppryddingIayInformasjonRepository;
import no.nav.foreldrepenger.abakus.rydding.OppryddingTjeneste;
import no.nav.vedtak.felles.prosesstask.api.ProsessTask;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskHandler;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskTjeneste;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@ApplicationScoped
@ProsessTask(value = "opprydding.iayInformasjon.uten.referanse", maxFailedRuns = 2)
public class FjernIayInformasjonUtenReferanseTask implements ProsessTaskHandler {
public static final int IAY_ARBEIDSFORHOLD_INFORMASJON_BATCH_SIZE = 750;
static final int IAY_ARBEIDSFORHOLD_INFORMASJON_BATCH_SIZE = 1000;

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

private final OppryddingIayInformasjonRepository oppryddingIayInformasjonRepository;
private final ProsessTaskTjeneste taskTjeneste;
private final OppryddingTjeneste oppryddingTjeneste;

@Inject
public FjernIayInformasjonUtenReferanseTask(OppryddingIayInformasjonRepository oppryddingIayInformasjonRepository, ProsessTaskTjeneste taskTjeneste) {
public FjernIayInformasjonUtenReferanseTask(OppryddingIayInformasjonRepository oppryddingIayInformasjonRepository, OppryddingTjeneste oppryddingTjeneste) {
this.oppryddingIayInformasjonRepository = oppryddingIayInformasjonRepository;
this.taskTjeneste = taskTjeneste;
this.oppryddingTjeneste = oppryddingTjeneste;
}

@Override
Expand All @@ -34,13 +34,7 @@ public void doTask(ProsessTaskData unused) {
LOG.info("Slettet {} IAY-Informasjon uten referanse", iayInformasjonUtenReferanse.size());

if (iayInformasjonUtenReferanse.size() >= IAY_ARBEIDSFORHOLD_INFORMASJON_BATCH_SIZE) {
opprettFjernInformasjonAggregatTask();
oppryddingTjeneste.opprettFjernIayInformasjonTask();
}
}

private void opprettFjernInformasjonAggregatTask() {
LOG.info("Oppretter en ny task for å fjerne IAY-Informasjon uten referanse.");
var prosessTaskData = ProsessTaskData.forProsessTask(FjernIayInformasjonUtenReferanseTask.class);
taskTjeneste.lagre(prosessTaskData);
}
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package no.nav.foreldrepenger.abakus.rydding;
package no.nav.foreldrepenger.abakus.rydding.arbeidsforhold;

import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.persistence.EntityManager;
import no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjon;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static java.util.Collections.emptyList;

import java.util.List;
import java.util.Objects;

import static java.util.Collections.emptyList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.persistence.EntityManager;
import no.nav.foreldrepenger.abakus.domene.iay.arbeidsforhold.ArbeidsforholdInformasjon;

@ApplicationScoped
public class OppryddingIayInformasjonRepository {
Expand All @@ -28,7 +29,7 @@ public OppryddingIayInformasjonRepository(EntityManager entityManager) {
this.entityManager = entityManager;
}

public List<Long> hentIayInformasjonUtenReferanse(Integer maxResults) {
List<Long> hentIayInformasjonUtenReferanse(Integer maxResults) {
@SuppressWarnings("unchecked") List<Number> result = entityManager.createNativeQuery("select distinct id from iay_informasjon info where "
+ "not exists (select 1 from gr_arbeid_inntekt gr where info.id = gr.informasjon_id)").setMaxResults(maxResults).getResultList();
if (result.isEmpty()) {
Expand All @@ -39,7 +40,7 @@ public List<Long> hentIayInformasjonUtenReferanse(Integer maxResults) {
return result.stream().map(Number::longValue).toList();
}

public void slettIayInformasjon(Long id) {
void slettIayInformasjon(Long id) {
var arbeidsforholdInformasjon = entityManager.find(ArbeidsforholdInformasjon.class, id);
if (arbeidsforholdInformasjon != null) {
slettArbeidsforholdInformasjon(id);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,29 @@
package no.nav.foreldrepenger.abakus.rydding.task;
package no.nav.foreldrepenger.abakus.rydding.grunnlag;

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

import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import no.nav.foreldrepenger.abakus.rydding.OppryddingIayAggregatRepository;
import no.nav.foreldrepenger.abakus.rydding.OppryddingTjeneste;
import no.nav.vedtak.felles.prosesstask.api.ProsessTask;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskHandler;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskTjeneste;

@ApplicationScoped
@ProsessTask(value = "opprydding.iayGrunnlag.uten.referanse", maxFailedRuns = 2)
public class FjernIayGrunnlagUtenReferanseTask implements ProsessTaskHandler {

public static final int IAY_GRUNNLAG_BATCH_SIZE = 500;
static final int IAY_GRUNNLAG_BATCH_SIZE = 500;

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

private final OppryddingIayAggregatRepository iayAggregatRepository;
private final ProsessTaskTjeneste taskTjeneste;
private final OppryddingTjeneste oppryddingTjeneste;

@Inject
public FjernIayGrunnlagUtenReferanseTask(OppryddingIayAggregatRepository iayAggregatRepository, ProsessTaskTjeneste taskTjeneste) {
public FjernIayGrunnlagUtenReferanseTask(OppryddingIayAggregatRepository iayAggregatRepository, OppryddingTjeneste oppryddingTjeneste) {
this.iayAggregatRepository = iayAggregatRepository;
this.taskTjeneste = taskTjeneste;
this.oppryddingTjeneste = oppryddingTjeneste;
}

@Override
Expand All @@ -36,13 +34,7 @@ public void doTask(ProsessTaskData unused) {
LOG.info("Slettet {} IAY-aggregater uten referanse", iayAggregatUtenReferanse.size());

if (iayAggregatUtenReferanse.size() >= IAY_GRUNNLAG_BATCH_SIZE) {
opprettFjernIayAggregatTask();
oppryddingTjeneste.opprettFjernIayInntektArbeidYtelseAggregatTask();
}
}

private void opprettFjernIayAggregatTask() {
LOG.info("Oppretter en ny task for å fjerne IAY-aggregater uten referanse.");
var prosessTaskData = ProsessTaskData.forProsessTask(FjernIayGrunnlagUtenReferanseTask.class);
taskTjeneste.lagre(prosessTaskData);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package no.nav.foreldrepenger.abakus.rydding;
package no.nav.foreldrepenger.abakus.rydding.grunnlag;


import static java.util.Collections.emptyList;
Expand Down Expand Up @@ -32,7 +32,7 @@ public OppryddingIayAggregatRepository(EntityManager entityManager) {
this.entityManager = entityManager;
}

public List<Long> hentIayAggregaterUtenReferanse(Integer maxResults) {
List<Long> hentIayAggregaterUtenReferanse(Integer maxResults) {
@SuppressWarnings("unchecked") List<Number> result = entityManager.createNativeQuery(
"select distinct id from iay_inntekt_arbeid_ytelser iay where "
+ "not exists (select 1 from gr_arbeid_inntekt gr where iay.id = gr.register_id or iay.id = gr.saksbehandlet_id)")
Expand All @@ -46,7 +46,7 @@ public List<Long> hentIayAggregaterUtenReferanse(Integer maxResults) {
return result.stream().map(Number::longValue).toList();
}

public void slettIayAggregat(Long id) {
void slettIayAggregat(Long id) {
var iay = entityManager.find(InntektArbeidYtelseAggregat.class, id);
if (iay != null) {
slettIayAktørIntekt(id);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,30 @@
package no.nav.foreldrepenger.abakus.rydding.task;
package no.nav.foreldrepenger.abakus.rydding.inntektsmelding;

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

import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import no.nav.foreldrepenger.abakus.rydding.OppryddingIayInntektsmeldingerRepository;
import no.nav.foreldrepenger.abakus.rydding.OppryddingTjeneste;
import no.nav.vedtak.felles.prosesstask.api.ProsessTask;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskHandler;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskTjeneste;

@ApplicationScoped
@ProsessTask(value = "opprydding.iayInntektsmelding.uten.referanse", maxFailedRuns = 2)
public class FjernIayInntektsmeldingerUtenReferanseTask implements ProsessTaskHandler {
public static final int IAY_INNTEKTSMELDING_BATCH_SIZE = 500;
static final int IAY_INNTEKTSMELDING_BATCH_SIZE = 500;

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

private final OppryddingIayInntektsmeldingerRepository oppryddingIayInntektsmeldingerRepository;
private final ProsessTaskTjeneste taskTjeneste;
private final OppryddingTjeneste oppryddingTjeneste;

@Inject
public FjernIayInntektsmeldingerUtenReferanseTask(OppryddingIayInntektsmeldingerRepository oppryddingIayInntektsmeldingerRepository,
ProsessTaskTjeneste taskTjeneste) {
OppryddingTjeneste oppryddingTjeneste) {
this.oppryddingIayInntektsmeldingerRepository = oppryddingIayInntektsmeldingerRepository;
this.taskTjeneste = taskTjeneste;
this.oppryddingTjeneste = oppryddingTjeneste;
}

@Override
Expand All @@ -37,13 +36,7 @@ public void doTask(ProsessTaskData unused) {
LOG.info("Slettet {} IAY-Inntektsmeldinger uten referanse", iayInntektsmeldingerUtenReferanse.size());

if (iayInntektsmeldingerUtenReferanse.size() >= IAY_INNTEKTSMELDING_BATCH_SIZE) {
opprettFjernInntektsmeldingAggregatTask();
oppryddingTjeneste.opprettFjernIayInntektsmeldingerTask();
}
}

private void opprettFjernInntektsmeldingAggregatTask() {
LOG.info("Oppretter en ny task for å fjerne IAY-Inntektsmeldinger uten referanse.");
var prosessTaskData = ProsessTaskData.forProsessTask(FjernIayInntektsmeldingerUtenReferanseTask.class);
taskTjeneste.lagre(prosessTaskData);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package no.nav.foreldrepenger.abakus.rydding;
package no.nav.foreldrepenger.abakus.rydding.inntektsmelding;

import static java.util.Collections.emptyList;

Expand Down Expand Up @@ -29,7 +29,7 @@ public OppryddingIayInntektsmeldingerRepository(EntityManager entityManager) {
this.entityManager = entityManager;
}

public List<Long> hentIayInntektsmeldingerUtenReferanse(Integer maxResults) {
List<Long> hentIayInntektsmeldingerUtenReferanse(Integer maxResults) {
@SuppressWarnings("unchecked") List<Number> result = entityManager.createNativeQuery("select distinct id from iay_inntektsmeldinger im where "
+ "not exists (select 1 from gr_arbeid_inntekt gr where im.id = gr.inntektsmeldinger_id)").setMaxResults(maxResults).getResultList();
if (result.isEmpty()) {
Expand All @@ -40,7 +40,7 @@ public List<Long> hentIayInntektsmeldingerUtenReferanse(Integer maxResults) {
return result.stream().map(Number::longValue).toList();
}

public void slettIayInntektsmeldinger(Long id) {
void slettIayInntektsmeldinger(Long id) {
var inntektsmeldingAggregat = entityManager.find(InntektsmeldingAggregat.class, id);
if (inntektsmeldingAggregat != null) {
slettInntektsmeldingFor(id);
Expand Down
Loading