diff --git a/src/main/java/no/nav/pto/veilarbportefolje/domene/Sorteringsfelt.java b/src/main/java/no/nav/pto/veilarbportefolje/domene/Sorteringsfelt.java index 68471edf16..d7862ff79b 100644 --- a/src/main/java/no/nav/pto/veilarbportefolje/domene/Sorteringsfelt.java +++ b/src/main/java/no/nav/pto/veilarbportefolje/domene/Sorteringsfelt.java @@ -90,7 +90,9 @@ public enum Sorteringsfelt { FARGEKATEGORI("fargekategori"), TILTAKSHENDELSE_TEKST("tiltakshendelse_tekst"), - TILTAKSHENDELSE_DATO_OPPRETTET("tiltakshendelse_dato_opprettet"); + TILTAKSHENDELSE_DATO_OPPRETTET("tiltakshendelse_dato_opprettet"), + + UTGATT_VARSEL_DATO("filterhendelse_dato_opprettet"); /** Filterverdien som vert sendt mellom frontend og backend */ public final String sorteringsverdi; diff --git a/src/main/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchQueryBuilder.java b/src/main/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchQueryBuilder.java index 54e88e7983..79088f7bb0 100644 --- a/src/main/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchQueryBuilder.java +++ b/src/main/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchQueryBuilder.java @@ -495,6 +495,7 @@ static SearchSourceBuilder sorterQueryParametere(String sortOrder, String case FARGEKATEGORI -> searchSourceBuilder.sort("fargekategori", order); case TILTAKSHENDELSE_DATO_OPPRETTET -> sorterTiltakshendelseOpprettetDato(searchSourceBuilder, order); case TILTAKSHENDELSE_TEKST -> searchSourceBuilder.sort("tiltakshendelse.tekst", order); + case UTGATT_VARSEL_DATO -> sorterUtgattVarselHendelseDato(searchSourceBuilder, order); default -> defaultSort(sorteringsfelt, searchSourceBuilder, order); } addSecondarySort(searchSourceBuilder); diff --git a/src/main/java/no/nav/pto/veilarbportefolje/util/ValideringsRegler.java b/src/main/java/no/nav/pto/veilarbportefolje/util/ValideringsRegler.java index c21f3e6ed9..cd21eea5c5 100644 --- a/src/main/java/no/nav/pto/veilarbportefolje/util/ValideringsRegler.java +++ b/src/main/java/no/nav/pto/veilarbportefolje/util/ValideringsRegler.java @@ -82,7 +82,8 @@ public class ValideringsRegler { FARGEKATEGORI.sorteringsverdi, UTDANNING_OG_SITUASJON_SIST_ENDRET.sorteringsverdi, TILTAKSHENDELSE_DATO_OPPRETTET.sorteringsverdi, - TILTAKSHENDELSE_TEKST.sorteringsverdi + TILTAKSHENDELSE_TEKST.sorteringsverdi, + UTGATT_VARSEL_DATO.sorteringsverdi ); public static void sjekkEnhet(String enhet) { diff --git a/src/test/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchServiceIntegrationTest.java b/src/test/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchServiceIntegrationTest.java index 0f6b86ad29..afd4c2be0c 100644 --- a/src/test/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchServiceIntegrationTest.java +++ b/src/test/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchServiceIntegrationTest.java @@ -7,7 +7,6 @@ import no.nav.common.types.identer.AktorId; import no.nav.common.types.identer.EnhetId; import no.nav.common.types.identer.Fnr; -import no.nav.common.types.identer.NorskIdent; import no.nav.poao_tilgang.client.Decision; import no.nav.pto.veilarbportefolje.arbeidsliste.Arbeidsliste; import no.nav.pto.veilarbportefolje.arbeidsliste.ArbeidslisteDTO; @@ -333,7 +332,7 @@ public void skal_kun_hente_ut_brukere_under_oppfolging() { BrukereMedAntall brukereMedAntall = opensearchService.hentBrukere( TEST_ENHET, empty(), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, new Filtervalg(), null, @@ -371,7 +370,7 @@ public void skal_sette_brukere_med_veileder_fra_annen_enhet_til_ufordelt() { var response = opensearchService.hentBrukere( TEST_ENHET, empty(), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, filtervalg, null, @@ -430,7 +429,7 @@ public void skal_hente_ut_brukere_ved_soek_paa_flere_veiledere() { var response = opensearchService.hentBrukere( TEST_ENHET, empty(), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, filtervalg, null, @@ -475,7 +474,7 @@ public void skal_hente_riktig_antall_ufordelte_brukere() { var response = opensearchService.hentBrukere( TEST_ENHET, empty(), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, filtervalg, null, @@ -1114,15 +1113,7 @@ void skal_hente_brukere_som_trenger_vurdering_og_er_ny_for_enhet() { var liste = List.of(nyForEnhet, ikkeNyForEnhet); skrivBrukereTilTestindeks(liste); - pollOpensearchUntil(() -> opensearchService.hentBrukere( - TEST_ENHET, - Optional.empty(), - "asc", - Sorteringsfelt.IKKE_SATT.sorteringsverdi, - new Filtervalg().setFerdigfilterListe(List.of(Brukerstatus.TRENGER_VURDERING)), - null, - null - ).getAntall() == liste.size()); + pollOpensearchUntil(() -> opensearchTestClient.countDocuments() == liste.size()); List ferdigFiltere = List.of( Brukerstatus.UFORDELTE_BRUKERE, @@ -1132,7 +1123,7 @@ void skal_hente_brukere_som_trenger_vurdering_og_er_ny_for_enhet() { var response = opensearchService.hentBrukere( TEST_ENHET, Optional.empty(), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, new Filtervalg().setFerdigfilterListe(ferdigFiltere), null, @@ -1163,21 +1154,12 @@ void skal_ikke_kunne_hente_brukere_veileder_ikke_har_tilgang_til() { var liste = List.of(brukerVeilederHarTilgangTil, brukerVeilederIkkeHarTilgangTil); skrivBrukereTilTestindeks(liste); - pollOpensearchUntil(() -> opensearchService.hentBrukere( - TEST_ENHET, - Optional.empty(), - "asc", - Sorteringsfelt.IKKE_SATT.sorteringsverdi, - new Filtervalg(), - null, - null - ).getAntall() == 1); - + pollOpensearchUntil(() -> opensearchTestClient.countDocuments() == liste.size()); var response = opensearchService.hentBrukere( TEST_ENHET, Optional.of(TEST_VEILEDER_0), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, new Filtervalg(), null, @@ -1216,7 +1198,7 @@ void skal_anse_bruker_som_ufordelt_om_bruker_har_veileder_som_ikke_har_tilgang_t var response = opensearchService.hentBrukere( TEST_ENHET, Optional.of(LITE_PRIVILEGERT_VEILEDER), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, new Filtervalg().setFerdigfilterListe(List.of(Brukerstatus.UFORDELTE_BRUKERE)), null, @@ -1261,7 +1243,7 @@ void skal_anse_bruker_som_ufordelt_om_bruker_har_veileder_som_ikke_har_tilgang_t var response = opensearchService.hentBrukere( TEST_ENHET, Optional.of(TEST_VEILEDER_0), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, filterValg, null, @@ -1303,7 +1285,7 @@ void skal_anse_bruker_som_ufordelt_om_bruker_har_veileder_som_ikke_har_tilgang_t var response = opensearchService.hentBrukere( TEST_ENHET, Optional.of(TEST_VEILEDER_0), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, filterValg, null, @@ -1345,7 +1327,7 @@ void skal_anse_bruker_som_ufordelt_om_bruker_har_veileder_som_ikke_har_tilgang_t var response = opensearchService.hentBrukere( TEST_ENHET, Optional.of(TEST_VEILEDER_0), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, filterValg, null, @@ -1410,7 +1392,7 @@ void skal_anse_bruker_som_ufordelt_om_bruker_har_veileder_som_ikke_har_tilgang_t var response = opensearchService.hentBrukere( TEST_ENHET, Optional.of(TEST_VEILEDER_0), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, filterValg, null, @@ -1461,7 +1443,7 @@ void skal_anse_bruker_som_ufordelt_om_bruker_har_veileder_som_ikke_har_tilgang_t var response = opensearchService.hentBrukere( TEST_ENHET, empty(), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, filterValg, null, @@ -1510,7 +1492,7 @@ void skal_anse_bruker_som_ufordelt_om_bruker_har_veileder_som_ikke_har_tilgang_t var response = opensearchService.hentBrukere( TEST_ENHET, empty(), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, filterValg, null, @@ -1561,7 +1543,7 @@ void skal_hente_ut_alle_brukere_med_tiltak() { var response = opensearchService.hentBrukere( TEST_ENHET, empty(), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, filterValg, null, @@ -1613,7 +1595,7 @@ void skal_hente_ut_alle_brukere_som_ikke_har_tiltak() { var response = opensearchService.hentBrukere( TEST_ENHET, empty(), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, filterValg, null, @@ -3541,6 +3523,73 @@ void skal_sortere_pa_hendelsesdato_som_standard_ved_filtrering_pa_utgatt_varsel( assertEquals(response.getBrukere().get(2).getAktoerid(), bruker2.getAktoer_id()); } + @Test + void skal_kunne_sortere_pa_hendelsesdato_pa_utgatt_varsel() { + // Given + AktorId aktoridBruker1 = AktorId.of("1111111111111"); + AktorId aktoridBruker2 = AktorId.of("2222222222222"); + AktorId aktoridBruker3 = AktorId.of("3333333333333"); + ZonedDateTime hendelsedatoBruker1 = ZonedDateTime.of(2022, 1, 1, 12, 0, 0, 0, ZoneId.systemDefault()); + ZonedDateTime hendelsedatoBruker2 = ZonedDateTime.of(2024, 1, 1, 12, 0, 0, 0, ZoneId.systemDefault()); + ZonedDateTime hendelsedatoBruker3 = ZonedDateTime.of(2020, 1, 1, 12, 0, 0, 0, ZoneId.systemDefault()); + + Hendelse.HendelseInnhold utgattVarselBruker1 = genererRandomHendelse(hendelsedatoBruker1).getHendelse(); + Hendelse.HendelseInnhold utgattVarselBruker2 = genererRandomHendelse(hendelsedatoBruker2).getHendelse(); + Hendelse.HendelseInnhold utgattVarselBruker3 = genererRandomHendelse(hendelsedatoBruker3).getHendelse(); + + OppfolgingsBruker bruker1 = new OppfolgingsBruker() + .setFnr(randomFnr().toString()) + .setAktoer_id(aktoridBruker1.toString()) + .setOppfolging(true) + .setVeileder_id(TEST_VEILEDER_0) + .setEnhet_id(TEST_ENHET) + .setUtgatt_varsel(utgattVarselBruker1); + + OppfolgingsBruker bruker2 = new OppfolgingsBruker() + .setFnr(randomFnr().toString()) + .setAktoer_id(aktoridBruker2.toString()) + .setOppfolging(true) + .setVeileder_id(TEST_VEILEDER_0) + .setNy_for_veileder(false) + .setEnhet_id(TEST_ENHET) + .setUtgatt_varsel(utgattVarselBruker2); + + OppfolgingsBruker bruker3 = new OppfolgingsBruker() + .setFnr(randomFnr().toString()) + .setAktoer_id(aktoridBruker3.toString()) + .setOppfolging(true) + .setVeileder_id(TEST_VEILEDER_0) + .setNy_for_veileder(false) + .setEnhet_id(TEST_ENHET) + .setUtgatt_varsel(utgattVarselBruker3); + + List brukere = List.of(bruker1, bruker2, bruker3); + + skrivBrukereTilTestindeks(brukere); + pollOpensearchUntil(() -> opensearchTestClient.countDocuments() == brukere.size()); + + // When + Filtervalg filtervalg = new Filtervalg() + .setFerdigfilterListe(List.of(Brukerstatus.UTGATTE_VARSEL)); + + BrukereMedAntall response = opensearchService.hentBrukere( + TEST_ENHET, + empty(), + "ascending", + Sorteringsfelt.UTGATT_VARSEL_DATO.sorteringsverdi, + filtervalg, + null, + null + ); + + + // Then + assertThat(response.getAntall()).isEqualTo(3); + assertEquals(bruker3.getAktoer_id(), response.getBrukere().get(0).getAktoerid()); + assertEquals(bruker1.getAktoer_id(), response.getBrukere().get(1).getAktoerid()); + assertEquals(bruker2.getAktoer_id(), response.getBrukere().get(2).getAktoerid()); + } + @Test public void test_sorting_barn_under_18_veileder_tilgang_6_7() { @@ -5070,7 +5119,7 @@ private BrukereMedAntall sorterBrukerePaStandardsorteringenAktorid(OpensearchSer return osService.hentBrukere( TEST_ENHET, empty(), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, new Filtervalg().setFerdigfilterListe(emptyList()), null, @@ -5106,7 +5155,7 @@ private static BrukereMedAntall loggInnVeilederOgHentEnhetPortefolje(OpensearchS () -> opensearchService.hentBrukere( TEST_ENHET, empty(), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, new Filtervalg(), null, @@ -5121,7 +5170,7 @@ private static BrukereMedAntall loggInnVeilederOgHentVeilederPortefolje(Opensear () -> opensearchService.hentBrukere( TEST_ENHET, Optional.of(veilederId), - "asc", + "ikke_satt", Sorteringsfelt.IKKE_SATT.sorteringsverdi, new Filtervalg(), null,