Skip to content

Commit

Permalink
Feature/task tilpasninger (#288)
Browse files Browse the repository at this point in the history
* Tilpasninger til felles/siste task-versjon

* rebase

* Siste bom+felles task-tilpasninger

* Bump bom og felles.

---------

Co-authored-by: Michal J. Sladek <[email protected]>
  • Loading branch information
jolarsen and mrsladek authored Dec 9, 2024
1 parent 945a22b commit ea23d5b
Show file tree
Hide file tree
Showing 14 changed files with 55 additions and 55 deletions.
10 changes: 5 additions & 5 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>no.nav.foreldrepenger.felles</groupId>
<artifactId>fp-bom</artifactId>
<version>3.5.2</version>
<version>3.6.1</version>
</parent>

<groupId>no.nav.familie.inntektsmelding</groupId>
Expand All @@ -18,17 +18,17 @@
<sonar.projectName>ft-inntektsmelding</sonar.projectName>
<sonar.projectKey>navikt_ft-inntektsmelding</sonar.projectKey>

<felles.version>7.3.4</felles.version>
<prosesstask.version>5.0.20</prosesstask.version>
<fp-kontrakter.version>9.1.22</fp-kontrakter.version>
<felles.version>7.4.2</felles.version>
<prosesstask.version>5.0.21</prosesstask.version>
<fp-kontrakter.version>9.2.0</fp-kontrakter.version>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>no.nav.foreldrepenger.felles</groupId>
<artifactId>fp-bom</artifactId>
<version>3.5.2</version>
<version>3.6.1</version>
<scope>import</scope>
<type>pom</type>
</dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,6 @@ class ForespørselBehandlingTjenesteImpl implements ForespørselBehandlingTjenes
}

if (!taskGruppe.getTasks().isEmpty()) {
taskGruppe.setCallIdFraEksisterende();
prosessTaskTjeneste.lagre(taskGruppe);
} else {
LOG.info("Ingen oppdatering er nødvendig for saksnr: {}", fagsakSaksnummer);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,30 @@
import java.util.List;
import java.util.Objects;
import java.util.Optional;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Set;

import jakarta.enterprise.context.ApplicationScoped;

import jakarta.inject.Inject;

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

import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskGruppe;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskLifecycleObserver;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskStatus;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskVeto;
import no.nav.vedtak.felles.prosesstask.api.TaskType;
import no.nav.vedtak.felles.prosesstask.impl.ProsessTaskRepository;

@ApplicationScoped
public class HåndterRekkefølgeAvForespørselTasks implements ProsessTaskLifecycleObserver {

private static final Logger log = LoggerFactory.getLogger(HåndterRekkefølgeAvForespørselTasks.class);
private static final Logger LOG = LoggerFactory.getLogger(HåndterRekkefølgeAvForespørselTasks.class);

private static final TaskType OPPRETT = TaskType.forProsessTask(OpprettForespørselTask.class);

private static final Set<TaskType> BLOKKERENDE = Set.of(OPPRETT, TaskType.forProsessTask(SettForespørselTilUtgåttTask.class));

private ProsessTaskRepository prosessTaskRepository;

Expand All @@ -38,25 +43,25 @@ public class HåndterRekkefølgeAvForespørselTasks implements ProsessTaskLifecy
@Override
public ProsessTaskVeto vetoKjøring(ProsessTaskData prosessTaskData) {

if (prosessTaskData.getTaskType().equals(OpprettForespørselTask.TASKTYPE)) {
String fagsakSaksnummer = prosessTaskData.getSaksnummer();
if (prosessTaskData.taskType().equals(OPPRETT)) {
var fagsakSaksnummer = prosessTaskData.getSaksnummer();

if (fagsakSaksnummer == null || fagsakSaksnummer.isBlank()) {
throw new IllegalArgumentException("Task av type " + OpprettForespørselTask.TASKTYPE + " mangler saksnummer");
throw new IllegalArgumentException("Task av type " + OPPRETT.value() + " mangler saksnummer");
}

//TODO bytt til en mer spesifikk query når vi er over på k9-prosesstask
Optional<ProsessTaskData> blokkerendeTask = prosessTaskRepository.finnAlle(List.of(ProsessTaskStatus.KLAR))
.stream()
.filter(task -> List.of(OpprettForespørselTask.TASKTYPE, SettForespørselTilUtgåttTask.TASKTYPE).contains(task.getTaskType()))
.filter(task -> BLOKKERENDE.contains(task.taskType()))
.filter(task -> Objects.equals(task.getSaksnummer(), fagsakSaksnummer))
.filter(task -> !Objects.equals(task.getGruppe(), prosessTaskData.getGruppe()))
.filter(task -> task.getOpprettetTid().isBefore(prosessTaskData.getOpprettetTid()))
.max(Comparator.comparing(ProsessTaskData::getOpprettetTid));

if (blokkerendeTask.isPresent()) {
log.info("Vetoer kjøring av prosesstask[{}] av type[{}] for fagsak [{}], er blokkert av prosesstask[{}] for samme fagsak.",
prosessTaskData.getId(), prosessTaskData.getTaskType(), fagsakSaksnummer, blokkerendeTask.get().getId());
LOG.info("Vetoer kjøring av prosesstask[{}] av {} for fagsak [{}], er blokkert av prosesstask[{}] for samme fagsak.",
prosessTaskData.getId(), prosessTaskData.taskType(), fagsakSaksnummer, blokkerendeTask.get().getId());

return new ProsessTaskVeto(true, prosessTaskData.getId(), blokkerendeTask.get().getId(),
"Må vente på annen task for samme fagsak som ble opprettet før denne.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,11 @@
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskHandler;

@ApplicationScoped
@ProsessTask(value = OpprettForespørselTask.TASKTYPE)
@ProsessTask("forespørsel.opprett")
public class OpprettForespørselTask implements ProsessTaskHandler {
public static final String TASKTYPE = "forespørsel.opprett";
private static final Logger log = LoggerFactory.getLogger(OpprettForespørselTask.class);
private static final Logger LOG = LoggerFactory.getLogger(OpprettForespørselTask.class);

public static final String YTELSETYPE = "ytelsetype";
public static final String AKTØR_ID = "aktoerId";
public static final String ORGNR = "orgnr";
public static final String STP = "skjaeringstidspunkt";

Expand All @@ -47,15 +45,15 @@ public class OpprettForespørselTask implements ProsessTaskHandler {
@Override
public void doTask(ProsessTaskData prosessTaskData) {
Ytelsetype ytelsetype = Ytelsetype.valueOf(prosessTaskData.getPropertyValue(YTELSETYPE));
AktørIdEntitet aktørId = new AktørIdEntitet(prosessTaskData.getPropertyValue(AKTØR_ID));
AktørIdEntitet aktørId = new AktørIdEntitet(prosessTaskData.getAktørId());
SaksnummerDto fagsakSaksnummer = new SaksnummerDto(prosessTaskData.getSaksnummer());
OrganisasjonsnummerDto organisasjonsnummer = new OrganisasjonsnummerDto(prosessTaskData.getPropertyValue(ORGNR));
LocalDate skjæringstidspunkt = LocalDate.parse(prosessTaskData.getPropertyValue(STP));

List<ForespørselEntitet> eksisterendeForespørsler = forespørselBehandlingTjeneste.hentForespørslerForFagsak(fagsakSaksnummer, organisasjonsnummer, skjæringstidspunkt);

if (eksisterendeForespørsler.stream().anyMatch(eksisterende -> !eksisterende.getStatus().equals(ForespørselStatus.UTGÅTT))) {
log.info("Forespørsel finnes allerede, orgnr: {}, stp: {}, saksnr: {}, ytelse: {}",
LOG.info("Forespørsel finnes allerede, orgnr: {}, stp: {}, saksnr: {}, ytelse: {}",
organisasjonsnummer.orgnr(), skjæringstidspunkt, fagsakSaksnummer.saksnr(), ytelsetype);
return;
}
Expand All @@ -74,7 +72,7 @@ public static ProsessTaskData lagTaskData(Ytelsetype ytelsetype,
LocalDate skjæringstidspunkt) {
var taskdata = ProsessTaskData.forProsessTask(OpprettForespørselTask.class);
taskdata.setProperty(YTELSETYPE, ytelsetype.name());
taskdata.setProperty(AKTØR_ID, aktørId.getAktørId());
taskdata.setAktørId(aktørId.getAktørId());
taskdata.setSaksnummer(fagsakSaksnummer.saksnr());
taskdata.setProperty(ORGNR, organisasjon.orgnr());
taskdata.setProperty(STP, skjæringstidspunkt.toString());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,9 @@
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskHandler;

@ApplicationScoped
@ProsessTask(value = SettForespørselTilUtgåttTask.TASKTYPE)
@ProsessTask("forespørsel.utgått")
public class SettForespørselTilUtgåttTask implements ProsessTaskHandler {
public static final String TASKTYPE = "forespørsel.utgått";
private static final Logger log = LoggerFactory.getLogger(SettForespørselTilUtgåttTask.class);
private static final Logger LOG = LoggerFactory.getLogger(SettForespørselTilUtgåttTask.class);

public static final String FORESPØRSEL_UUID = "forespoerselUuid";

Expand All @@ -42,13 +41,13 @@ public void doTask(ProsessTaskData prosessTaskData) {
Optional<ForespørselEntitet> opt = forespørselBehandlingTjeneste.hentForespørsel(UUID.fromString(forespørselUuid));

if (opt.isEmpty()) {
log.warn("Fant ikke forespørsel med uuid {}", forespørselUuid);
LOG.warn("Fant ikke forespørsel med uuid {}", forespørselUuid);
return;
}

ForespørselEntitet forespørsel = opt.get();
if (forespørsel.getStatus() == ForespørselStatus.UTGÅTT) {
log.info("Forespørsel med uuid {} har allerede status utgått", forespørselUuid);
LOG.info("Forespørsel med uuid {} har allerede status utgått", forespørselUuid);
return;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,6 @@ private void opprettTaskForSendTilJoark(Long imId, String fagsystemSaksnummer) {
var task = ProsessTaskData.forProsessTask(SendTilJoarkTask.class);
task.setSaksnummer(fagsystemSaksnummer);
task.setProperty(SendTilJoarkTask.KEY_INNTEKTSMELDING_ID, imId.toString());
task.setCallIdFraEksisterende();
prosessTaskTjeneste.lagre(task);
LOG.info("Opprettet task for oversending til joark");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ private void opprettTaskForSendTilJoark(Long imId, SaksnummerDto fagsystemSaksnu
var task = ProsessTaskData.forProsessTask(SendTilJoarkTask.class);
task.setSaksnummer(fagsystemSaksnummer.saksnr());
task.setProperty(SendTilJoarkTask.KEY_INNTEKTSMELDING_ID, imId.toString());
task.setCallIdFraEksisterende();
prosessTaskTjeneste.lagre(task);
LOG.info("Opprettet task for oversending til joark");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@

public class JsonMappingExceptionMapper implements ExceptionMapper<JsonMappingException> {

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

@Override
public Response toResponse(JsonMappingException exception) {
var feil = "FIM-252294: JSON-mapping feil";
log.warn(feil);
LOG.warn(feil);
return Response.status(Response.Status.BAD_REQUEST).entity(new FeilDto(feil)).type(MediaType.APPLICATION_JSON).build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@

public class JsonParseExceptionMapper implements ExceptionMapper<JsonParseException> {

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

@Override
public Response toResponse(JsonParseException exception) {
var feil = String.format("FIM-299955: JSON-parsing feil: %s", exception.getMessage());
log.warn(feil);
LOG.warn(feil);
return Response.status(Response.Status.BAD_REQUEST).entity(new FeilDto(feil)).type(MediaType.APPLICATION_JSON).build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
* Henter persistert index (hvis generert) eller genererer index for angitt location (typisk matcher en jar/war fil).
*/
public class IndexClasses {
private static final Logger log = org.slf4j.LoggerFactory.getLogger(IndexClasses.class);
private static final Logger LOG = org.slf4j.LoggerFactory.getLogger(IndexClasses.class);

private static final ConcurrentMap<URI, IndexClasses> INDEXES = new ConcurrentHashMap<>();

Expand Down Expand Up @@ -125,7 +125,7 @@ public List<Class<?>> getClassesWithAnnotation(Class<?> annotationClass) {
try {
jsonTypes.add(Class.forName(className));
} catch (ClassNotFoundException e) {
log.error("Kan ikke finne klasse i Classpath, som funnet i Jandex index", e);// NOSONAR
LOG.error("Kan ikke finne klasse i Classpath, som funnet i Jandex index", e);// NOSONAR
}
}
}
Expand All @@ -147,7 +147,7 @@ public List<Class<?>> getClasses(Predicate<ClassInfo> predicate, Predicate<Class
}
}
} catch (ClassNotFoundException e) {
log.error("Kan ikke finne klasse i Classpath, som funnet i Jandex index", e);// NOSONAR
LOG.error("Kan ikke finne klasse i Classpath, som funnet i Jandex index", e);// NOSONAR
}
}
return cls;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import no.nav.familie.inntektsmelding.pip.PipTjeneste;
import no.nav.familie.inntektsmelding.typer.dto.OrganisasjonsnummerDto;
import no.nav.vedtak.exception.ManglerTilgangException;
import no.nav.vedtak.sikkerhet.kontekst.Groups;
import no.nav.vedtak.sikkerhet.kontekst.AnsattGruppe;
import no.nav.vedtak.sikkerhet.kontekst.IdentType;
import no.nav.vedtak.sikkerhet.kontekst.Kontekst;
import no.nav.vedtak.sikkerhet.kontekst.KontekstHolder;
Expand Down Expand Up @@ -68,15 +68,15 @@ public void sjekkAtArbeidsgiverHarTilgangTilBedrift(long inntektsmeldingId) {
@Override
public void sjekkAtAnsattHarRollenDrift() {
var kontekst = KontekstHolder.getKontekst();
if (erNavAnsatt(kontekst) && ansattHarRollen(kontekst, Groups.DRIFT)) {
if (erNavAnsatt(kontekst) && ansattHarRollen(kontekst, AnsattGruppe.DRIFT)) {
return;
}
ikkeTilgang("Ansatt mangler en rolle.");
}

public void sjekkAtAnsattHarRollenSaksbehandler() {
var kontekst = KontekstHolder.getKontekst();
if (erNavAnsatt(kontekst) && ansattHarRollen(kontekst, Groups.SAKSBEHANDLER)) {
if (erNavAnsatt(kontekst) && ansattHarRollen(kontekst, AnsattGruppe.SAKSBEHANDLER)) {
return;
}
ikkeTilgang("Ansatt mangler en rolle.");
Expand All @@ -94,7 +94,7 @@ private boolean erNavAnsatt(Kontekst kontekst) {
return IdentType.InternBruker.equals(kontekst.getIdentType());
}

private boolean ansattHarRollen(Kontekst kontekst, Groups rolle) {
private boolean ansattHarRollen(Kontekst kontekst, AnsattGruppe rolle) {
return kontekst instanceof RequestKontekst requestKontekst && requestKontekst.harGruppe(rolle);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
import no.nav.familie.inntektsmelding.typer.entitet.AktørIdEntitet;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskGruppe;
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskTjeneste;
import no.nav.vedtak.felles.prosesstask.api.TaskType;
import no.nav.vedtak.felles.testutilities.db.EntityManagerAwareTest;

@ExtendWith({JpaExtension.class, MockitoExtension.class})
Expand Down Expand Up @@ -346,10 +347,10 @@ void setUp() {
var taskGruppe = captor.getValue();
assertThat(taskGruppe.getTasks().size()).isEqualTo(1);
var taskdata = taskGruppe.getTasks().getFirst().task();
assertThat(taskdata.getTaskType()).isEqualTo(OpprettForespørselTask.TASKTYPE);
assertThat(taskdata.taskType()).isEqualTo(TaskType.forProsessTask(OpprettForespørselTask.class));
assertThat(taskdata.getPropertyValue(OpprettForespørselTask.YTELSETYPE)).isEqualTo(YTELSETYPE.toString());
assertThat(taskdata.getSaksnummer()).isEqualTo(SAKSNUMMMER);
assertThat(taskdata.getPropertyValue(OpprettForespørselTask.AKTØR_ID)).isEqualTo(AKTØR_ID);
assertThat(taskdata.getAktørId()).isEqualTo(AKTØR_ID);
assertThat(taskdata.getPropertyValue(OpprettForespørselTask.ORGNR)).isEqualTo(BRREG_ORGNUMMER);
assertThat(taskdata.getPropertyValue(OpprettForespørselTask.STP)).isEqualTo(SKJÆRINGSTIDSPUNKT.toString());
}
Expand Down Expand Up @@ -383,7 +384,7 @@ void setUp() {
var taskGruppe = captor.getValue();
assertThat(taskGruppe.getTasks().size()).isEqualTo(1);
var taskdata1 = taskGruppe.getTasks().getFirst().task();
assertThat(taskdata1.getTaskType()).isEqualTo(OpprettForespørselTask.TASKTYPE);
assertThat(taskdata1.taskType()).isEqualTo(TaskType.forProsessTask(OpprettForespørselTask.class));
}

@Test
Expand All @@ -404,9 +405,9 @@ void setUp() {
var taskGruppe = captor.getValue();
assertThat(taskGruppe.getTasks().size()).isEqualTo(2);
var taskdata1 = taskGruppe.getTasks().get(0).task();
assertThat(taskdata1.getTaskType()).isEqualTo(OpprettForespørselTask.TASKTYPE);
assertThat(taskdata1.taskType()).isEqualTo(TaskType.forProsessTask(OpprettForespørselTask.class));
var taskdata2 = taskGruppe.getTasks().get(1).task();
assertThat(taskdata2.getTaskType()).isEqualTo(SettForespørselTilUtgåttTask.TASKTYPE);
assertThat(taskdata2.taskType()).isEqualTo(TaskType.forProsessTask(SettForespørselTilUtgåttTask.class));
assertThat(taskdata2.getPropertyValue(SettForespørselTilUtgåttTask.FORESPØRSEL_UUID)).isEqualTo(forespørselUuid.toString());
}

Expand All @@ -427,7 +428,7 @@ void setUp() {
var taskGruppe = captor.getValue();
assertThat(taskGruppe.getTasks().size()).isEqualTo(1);
var taskdata = taskGruppe.getTasks().getFirst().task();
assertThat(taskdata.getTaskType()).isEqualTo(SettForespørselTilUtgåttTask.TASKTYPE);
assertThat(taskdata.taskType()).isEqualTo(TaskType.forProsessTask(SettForespørselTilUtgåttTask.class));
assertThat(taskdata.getPropertyValue(SettForespørselTilUtgåttTask.FORESPØRSEL_UUID)).isEqualTo(forespørselUuid.toString());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class OpprettForespørselTaskTest {
var task = new OpprettForespørselTask(forespørselBehandlingTjeneste);
var taskdata = ProsessTaskData.forProsessTask(OpprettForespørselTask.class);
taskdata.setProperty(OpprettForespørselTask.YTELSETYPE, ytelsetype.name());
taskdata.setProperty(OpprettForespørselTask.AKTØR_ID, aktørId.getAktørId());
taskdata.setAktørId(aktørId.getAktørId());
taskdata.setSaksnummer(fagsakSaksnummer.saksnr());
taskdata.setProperty(OpprettForespørselTask.ORGNR, organisasjon.orgnr());
taskdata.setProperty(OpprettForespørselTask.STP, skjæringstidspunkt.toString());
Expand All @@ -53,7 +53,7 @@ class OpprettForespørselTaskTest {
var task = new OpprettForespørselTask(forespørselBehandlingTjeneste);
var taskdata = ProsessTaskData.forProsessTask(OpprettForespørselTask.class);
taskdata.setProperty(OpprettForespørselTask.YTELSETYPE, ytelsetype.name());
taskdata.setProperty(OpprettForespørselTask.AKTØR_ID, aktørId.getAktørId());
taskdata.setAktørId(aktørId.getAktørId());
taskdata.setSaksnummer(fagsakSaksnummer.saksnr());
taskdata.setProperty(OpprettForespørselTask.ORGNR, organisasjon.orgnr());
taskdata.setProperty(OpprettForespørselTask.STP, skjæringstidspunkt.toString());
Expand Down
Loading

0 comments on commit ea23d5b

Please sign in to comment.