Search in sources :

Example 11 with OppfolgingsBruker

use of no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker in project veilarbportefolje by navikt.

the class OpensearchServiceIntegrationTest method skal_hente_ut_alle_brukere_unntatt_de_som_har_avtale_om_å_søke_jobber.

@Test
void skal_hente_ut_alle_brukere_unntatt_de_som_har_avtale_om_å_søke_jobber() {
    var brukerMedSokeAvtale = new OppfolgingsBruker().setFnr(randomFnr().toString()).setAktoer_id(randomAktorId().toString()).setOppfolging(true).setVeileder_id(TEST_VEILEDER_0).setEnhet_id(TEST_ENHET).setAktiviteter(Set.of("sokeavtale"));
    var brukerMedBehandling = new OppfolgingsBruker().setFnr(randomFnr().toString()).setAktoer_id(randomAktorId().toString()).setOppfolging(true).setVeileder_id(TEST_VEILEDER_0).setEnhet_id(TEST_ENHET).setAktiviteter(Set.of("behandling"));
    var brukerMedUtenAktiviteter = new OppfolgingsBruker().setAktoer_id(randomAktorId().toString()).setFnr(randomFnr().toString()).setOppfolging(true).setVeileder_id(TEST_VEILEDER_0).setEnhet_id(TEST_ENHET);
    var liste = List.of(brukerMedSokeAvtale, brukerMedUtenAktiviteter, brukerMedBehandling);
    skrivBrukereTilTestindeks(liste);
    pollOpensearchUntil(() -> opensearchTestClient.countDocuments() == liste.size());
    var filterValg = new Filtervalg().setFerdigfilterListe(emptyList()).setAktiviteter(Map.of("SOKEAVTALE", AktivitetFiltervalg.NEI));
    var response = opensearchService.hentBrukere(TEST_ENHET, empty(), "asc", "ikke_satt", filterValg, null, null);
    assertThat(response.getAntall()).isEqualTo(2);
    assertThat(userExistsInResponse(brukerMedBehandling, response)).isTrue();
    assertThat(userExistsInResponse(brukerMedUtenAktiviteter, response)).isTrue();
    assertThat(userExistsInResponse(brukerMedSokeAvtale, response)).isFalse();
}
Also used : OppfolgingsBruker(no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker) EndToEndTest(no.nav.pto.veilarbportefolje.util.EndToEndTest) Test(org.junit.jupiter.api.Test)

Example 12 with OppfolgingsBruker

use of no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker in project veilarbportefolje by navikt.

the class SisteEndringRepositoryTest method mapDbTilOppfolgingsbruker.

@Test
public void mapDbTilOppfolgingsbruker() {
    ZonedDateTime zonedDateTime_1 = DateUtils.now();
    String tidspunkt_1 = zonedDateTime_1.toOffsetDateTime().toString();
    SisteEndringDTO dto_1 = new SisteEndringDTO().setTidspunkt(ZonedDateTime.parse(tidspunkt_1)).setKategori(NY_IJOBB).setAktoerId(AKTORID).setAktivtetId("1");
    ZonedDateTime zonedDateTime_2 = DateUtils.now().minusDays(3);
    String tidspunkt_2 = zonedDateTime_2.toOffsetDateTime().toString();
    SisteEndringDTO dto_2 = new SisteEndringDTO().setTidspunkt(ZonedDateTime.parse(tidspunkt_2)).setKategori(AVBRUTT_EGEN).setAktoerId(AKTORID).setAktivtetId("2");
    sisteEndringRepository.upsert(dto_1);
    sisteEndringRepository.upsert(dto_2);
    sisteEndringRepository.oppdaterHarSett(dto_1.getAktoerId(), SisteEndringsKategori.NY_IJOBB, true);
    OppfolgingsBruker bruker = new OppfolgingsBruker().setAktoer_id(AKTORID.get());
    sisteEndringRepository.setAlleSisteEndringTidspunkter(List.of(bruker));
    assertThat(bruker.getSiste_endringer().get(NY_IJOBB.name()).getTidspunkt()).isEqualTo(toIsoUTC(ZonedDateTime.parse(tidspunkt_1)));
    assertThat(bruker.getSiste_endringer().get(NY_IJOBB.name()).getAktivtetId()).isEqualTo(dto_1.getAktivtetId());
    assertThat(bruker.getSiste_endringer().get(AVBRUTT_EGEN.name()).getTidspunkt()).isEqualTo(toIsoUTC(ZonedDateTime.parse(tidspunkt_2)));
    assertThat(bruker.getSiste_endringer().get(AVBRUTT_EGEN.name()).getAktivtetId()).isEqualTo(dto_2.getAktivtetId());
    assertThat(bruker.getSiste_endringer().get(NY_IJOBB.name()).getEr_sett()).isEqualTo("J");
    assertThat(bruker.getSiste_endringer().get(AVBRUTT_EGEN.name()).getEr_sett()).isEqualTo("N");
}
Also used : ZonedDateTime(java.time.ZonedDateTime) OppfolgingsBruker(no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker) Test(org.junit.Test)

Example 13 with OppfolgingsBruker

use of no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker in project veilarbportefolje by navikt.

the class EndToEndTest method populateOpensearch.

public void populateOpensearch(EnhetId enhetId, VeilederId veilederId, String... aktoerIder) {
    List<OppfolgingsBruker> brukere = new ArrayList<>();
    for (String aktoerId : aktoerIder) {
        oppfolgingRepositoryV2.settUnderOppfolging(AktorId.of(aktoerId), ZonedDateTime.now());
        brukere.add(new OppfolgingsBruker().setAktoer_id(aktoerId).setOppfolging(true).setEnhet_id(enhetId.get()).setVeileder_id(veilederId.getValue()));
    }
    brukere.forEach(bruker -> opensearchTestClient.createUserInOpensearch(bruker));
}
Also used : ArrayList(java.util.ArrayList) OppfolgingsBruker(no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker)

Example 14 with OppfolgingsBruker

use of no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker in project veilarbportefolje by navikt.

the class OpensearchService method hentBrukere.

public BrukereMedAntall hentBrukere(String enhetId, Optional<String> veilederIdent, String sortOrder, String sortField, Filtervalg filtervalg, Integer fra, Integer antall) {
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    int from = Optional.ofNullable(fra).orElse(0);
    int size = Optional.ofNullable(antall).orElse(5000);
    searchSourceBuilder.from(from);
    searchSourceBuilder.size(size);
    BoolQueryBuilder boolQuery = boolQuery();
    boolQuery.must(matchQuery("enhet_id", enhetId));
    boolQuery.must(matchQuery("oppfolging", true));
    boolean kallesFraMinOversikt = veilederIdent.isPresent() && StringUtils.isNotBlank(veilederIdent.get());
    if (kallesFraMinOversikt) {
        boolQuery.filter(termQuery("veileder_id", veilederIdent.get()));
    }
    List<String> veiledereMedTilgangTilEnhet = veilarbVeilederClient.hentVeilederePaaEnhet(EnhetId.of(enhetId));
    if (filtervalg.harAktiveFilter()) {
        boolean erVedtakstottePilotPa = erVedtakstottePilotPa(EnhetId.of(enhetId));
        filtervalg.ferdigfilterListe.forEach(filter -> boolQuery.filter(leggTilFerdigFilter(filter, veiledereMedTilgangTilEnhet, erVedtakstottePilotPa)));
        leggTilManuelleFilter(boolQuery, filtervalg, unleashService);
    }
    searchSourceBuilder.query(boolQuery);
    if (kallesFraMinOversikt) {
        searchSourceBuilder.sort("ny_for_veileder", SortOrder.DESC);
    } else {
        sorterPaaNyForEnhet(searchSourceBuilder, veiledereMedTilgangTilEnhet);
    }
    sorterQueryParametere(sortOrder, sortField, searchSourceBuilder, filtervalg);
    OpensearchResponse response = search(searchSourceBuilder, indexName.getValue(), OpensearchResponse.class);
    int totalHits = response.hits().getTotal().getValue();
    List<Bruker> brukere = response.hits().getHits().stream().map(Hit::get_source).map(oppfolgingsBruker -> setNyForEnhet(oppfolgingsBruker, veiledereMedTilgangTilEnhet)).map(oppfolgingsBruker -> mapOppfolgingsBrukerTilBruker(oppfolgingsBruker, filtervalg, enhetId)).collect(toList());
    return new BrukereMedAntall(totalHits, brukere);
}
Also used : OpensearchQueryBuilder.byggArbeidslisteQuery(no.nav.pto.veilarbportefolje.opensearch.OpensearchQueryBuilder.byggArbeidslisteQuery) RequestOptions(org.opensearch.client.RequestOptions) QueryBuilders.boolQuery(org.opensearch.index.query.QueryBuilders.boolQuery) SneakyThrows(lombok.SneakyThrows) OpensearchQueryBuilder.byggPortefoljestorrelserQuery(no.nav.pto.veilarbportefolje.opensearch.OpensearchQueryBuilder.byggPortefoljestorrelserQuery) RequiredArgsConstructor(lombok.RequiredArgsConstructor) OpensearchQueryBuilder.sorterQueryParametere(no.nav.pto.veilarbportefolje.opensearch.OpensearchQueryBuilder.sorterQueryParametere) OppfolgingsBruker(no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker) FacetResults(no.nav.pto.veilarbportefolje.domene.FacetResults) VeilarbVeilederClient(no.nav.pto.veilarbportefolje.client.VeilarbVeilederClient) StringUtils(org.apache.commons.lang3.StringUtils) BrukereMedAntall(no.nav.pto.veilarbportefolje.domene.BrukereMedAntall) Bruker(no.nav.pto.veilarbportefolje.domene.Bruker) OpensearchQueryBuilder.sorterPaaNyForEnhet(no.nav.pto.veilarbportefolje.opensearch.OpensearchQueryBuilder.sorterPaaNyForEnhet) StatustallResponse(no.nav.pto.veilarbportefolje.opensearch.domene.StatustallResponse) SortOrder(org.opensearch.search.sort.SortOrder) OpensearchQueryBuilder.byggStatusTallForVeilederQuery(no.nav.pto.veilarbportefolje.opensearch.OpensearchQueryBuilder.byggStatusTallForVeilederQuery) Service(org.springframework.stereotype.Service) Hit(no.nav.pto.veilarbportefolje.opensearch.domene.Hit) PortefoljestorrelserResponse(no.nav.pto.veilarbportefolje.opensearch.domene.PortefoljestorrelserResponse) SearchRequest(org.opensearch.action.search.SearchRequest) OpensearchResponse(no.nav.pto.veilarbportefolje.opensearch.domene.OpensearchResponse) VedtakstottePilotRequest(no.nav.pto.veilarbportefolje.util.VedtakstottePilotRequest) SearchResponse(org.opensearch.action.search.SearchResponse) RestHighLevelClient(org.opensearch.client.RestHighLevelClient) QueryBuilders.termQuery(org.opensearch.index.query.QueryBuilders.termQuery) OpensearchQueryBuilder.byggStatusTallForEnhetQuery(no.nav.pto.veilarbportefolje.opensearch.OpensearchQueryBuilder.byggStatusTallForEnhetQuery) Bucket(no.nav.pto.veilarbportefolje.opensearch.domene.Bucket) StatusTall(no.nav.pto.veilarbportefolje.domene.StatusTall) OpensearchQueryBuilder.leggTilManuelleFilter(no.nav.pto.veilarbportefolje.opensearch.OpensearchQueryBuilder.leggTilManuelleFilter) Collections.emptyList(java.util.Collections.emptyList) JsonUtils(no.nav.common.json.JsonUtils) EnhetId(no.nav.common.types.identer.EnhetId) UnleashService(no.nav.pto.veilarbportefolje.service.UnleashService) StatustallBuckets(no.nav.pto.veilarbportefolje.opensearch.domene.StatustallResponse.StatustallAggregation.StatustallFilter.StatustallBuckets) QueryBuilders.matchQuery(org.opensearch.index.query.QueryBuilders.matchQuery) OpensearchQueryBuilder.leggTilFerdigFilter(no.nav.pto.veilarbportefolje.opensearch.OpensearchQueryBuilder.leggTilFerdigFilter) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) SearchSourceBuilder(org.opensearch.search.builder.SearchSourceBuilder) Filtervalg(no.nav.pto.veilarbportefolje.domene.Filtervalg) Optional(java.util.Optional) BoolQueryBuilder(org.opensearch.index.query.BoolQueryBuilder) BoolQueryBuilder(org.opensearch.index.query.BoolQueryBuilder) BrukereMedAntall(no.nav.pto.veilarbportefolje.domene.BrukereMedAntall) OpensearchResponse(no.nav.pto.veilarbportefolje.opensearch.domene.OpensearchResponse) OppfolgingsBruker(no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker) Bruker(no.nav.pto.veilarbportefolje.domene.Bruker) SearchSourceBuilder(org.opensearch.search.builder.SearchSourceBuilder)

Example 15 with OppfolgingsBruker

use of no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker in project veilarbportefolje by navikt.

the class OpensearchIndexer method leggTilTiltak.

private void leggTilTiltak(List<OppfolgingsBruker> brukere) {
    validateBatchSize(brukere);
    List<AktorId> aktorIder = brukere.stream().map(OppfolgingsBruker::getAktoer_id).map(AktorId::of).collect(toList());
    Map<AktorId, Set<BrukertiltakV2>> alleTiltakForBrukere = tiltakRepositoryV1.hentBrukertiltak(aktorIder);
    alleTiltakForBrukere.forEach((aktorId, brukerMedTiltak) -> {
        Set<String> tiltak = brukerMedTiltak.stream().map(BrukertiltakV2::getTiltak).collect(toSet());
        OppfolgingsBruker bruker = finnBruker(brukere, aktorId);
        bruker.setTiltak(tiltak);
    });
}
Also used : Collectors.toSet(java.util.stream.Collectors.toSet) Set(java.util.Set) AktorId(no.nav.common.types.identer.AktorId) OppfolgingsBruker(no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker)

Aggregations

OppfolgingsBruker (no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker)29 EndToEndTest (no.nav.pto.veilarbportefolje.util.EndToEndTest)18 Test (org.junit.jupiter.api.Test)18 AktorId (no.nav.common.types.identer.AktorId)7 Set (java.util.Set)3 Collectors.toSet (java.util.stream.Collectors.toSet)3 PersonId (no.nav.pto.veilarbportefolje.domene.value.PersonId)3 ZonedDateTime (java.time.ZonedDateTime)2 List (java.util.List)2 Collectors.toList (java.util.stream.Collectors.toList)2 RequiredArgsConstructor (lombok.RequiredArgsConstructor)2 SneakyThrows (lombok.SneakyThrows)2 AktivitetStatus (no.nav.pto.veilarbportefolje.aktiviteter.AktivitetStatus)2 VeilederId (no.nav.pto.veilarbportefolje.domene.value.VeilederId)2 TestDataUtils.randomAktorId (no.nav.pto.veilarbportefolje.util.TestDataUtils.randomAktorId)2 Test (org.junit.Test)2 Lists (com.google.common.collect.Lists)1 String.format (java.lang.String.format)1 LocalDateTime (java.time.LocalDateTime)1 ArrayList (java.util.ArrayList)1