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();
}
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");
}
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));
}
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);
}
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);
});
}
Aggregations