Search in sources :

Example 1 with GruppeAktivitetSchedueldDTO

use of no.nav.pto.veilarbportefolje.arenapakafka.arenaDTO.GruppeAktivitetSchedueldDTO in project veilarbportefolje by navikt.

the class GruppeAktivitetRepository method mapTilDto.

@SneakyThrows
private GruppeAktivitetSchedueldDTO mapTilDto(Map<String, Object> rs) {
    boolean aktiv = "J".equals(rs.get(AKTIV));
    long hendelse = Optional.ofNullable((BigDecimal) rs.get(HENDELSE_ID)).map(BigDecimal::longValue).orElse(0L);
    return new GruppeAktivitetSchedueldDTO().setVeiledningdeltakerId((String) rs.get(VEILEDNINGDELTAKER_ID)).setMoteplanId((String) rs.get(MOTEPLAN_ID)).setAktivitetperiodeFra((Timestamp) rs.get(MOTEPLAN_STARTDATO)).setAktivitetperiodeTil((Timestamp) rs.get(MOTEPLAN_SLUTTDATO)).setHendelseId(hendelse).setAktorId(AktorId.of(AKTOERID)).setAktiv(aktiv);
}
Also used : GruppeAktivitetSchedueldDTO(no.nav.pto.veilarbportefolje.arenapakafka.arenaDTO.GruppeAktivitetSchedueldDTO) DateUtils.toTimestamp(no.nav.pto.veilarbportefolje.util.DateUtils.toTimestamp) Timestamp(java.sql.Timestamp) SneakyThrows(lombok.SneakyThrows)

Example 2 with GruppeAktivitetSchedueldDTO

use of no.nav.pto.veilarbportefolje.arenapakafka.arenaDTO.GruppeAktivitetSchedueldDTO in project veilarbportefolje by navikt.

the class GruppeAktivitetRepository method utledOgLagreGruppeaktiviteter.

public void utledOgLagreGruppeaktiviteter(AktorId aktorId, PersonId personId) {
    LocalDate yesterday = LocalDate.now().minusDays(1);
    List<GruppeAktivitetSchedueldDTO> gruppeAktiviteter = hentAktiveAktivteter(aktorId);
    Timestamp nesteStart = gruppeAktiviteter.stream().filter(GruppeAktivitetSchedueldDTO::isAktiv).map(GruppeAktivitetSchedueldDTO::getAktivitetperiodeFra).filter(startDato -> startDato.toLocalDateTime().toLocalDate().isAfter(yesterday)).min(Comparator.naturalOrder()).orElse(null);
    Timestamp nesteUtlopsdato = gruppeAktiviteter.stream().filter(GruppeAktivitetSchedueldDTO::isAktiv).map(GruppeAktivitetSchedueldDTO::getAktivitetperiodeTil).filter(utlopsDato -> utlopsDato.toLocalDateTime().toLocalDate().isAfter(yesterday)).min(Comparator.naturalOrder()).orElse(null);
    boolean aktiv = (nesteUtlopsdato != null && gruppeAktiviteter.stream().anyMatch(GruppeAktivitetSchedueldDTO::isAktiv));
    AktivitetStatus aktivitetStatus = new AktivitetStatus().setAktivitetType(AktivitetsType.gruppeaktivitet.name()).setAktiv(aktiv).setAktoerid(aktorId).setPersonid(personId).setNesteStart(nesteStart).setNesteUtlop(nesteUtlopsdato);
    aktivitetDAO.upsertAktivitetStatus(aktivitetStatus);
}
Also used : GruppeAktivitetSchedueldDTO(no.nav.pto.veilarbportefolje.arenapakafka.arenaDTO.GruppeAktivitetSchedueldDTO) LocalDate(java.time.LocalDate) DateUtils.toTimestamp(no.nav.pto.veilarbportefolje.util.DateUtils.toTimestamp) Timestamp(java.sql.Timestamp) AktivitetStatus(no.nav.pto.veilarbportefolje.aktiviteter.AktivitetStatus)

Aggregations

Timestamp (java.sql.Timestamp)2 GruppeAktivitetSchedueldDTO (no.nav.pto.veilarbportefolje.arenapakafka.arenaDTO.GruppeAktivitetSchedueldDTO)2 DateUtils.toTimestamp (no.nav.pto.veilarbportefolje.util.DateUtils.toTimestamp)2 LocalDate (java.time.LocalDate)1 SneakyThrows (lombok.SneakyThrows)1 AktivitetStatus (no.nav.pto.veilarbportefolje.aktiviteter.AktivitetStatus)1