use of no.nav.pto.veilarbportefolje.oppfolging.response.Veilarbportefoljeinfo in project veilarbportefolje by navikt.
the class OppfolgingService method oppdaterBruker.
public void oppdaterBruker(AktorId bruker) {
if (bruker == null) {
return;
}
try {
Veilarbportefoljeinfo veialrbinfo = hentVeilarbData(bruker);
if (veialrbinfo.isErUnderOppfolging()) {
Optional<BrukerOppdatertInformasjon> dbInfoOracle = oppfolgingRepository.hentOppfolgingData(bruker);
Optional<BrukerOppdatertInformasjon> dbInfoPostgres = oppfolgingRepositoryV2.hentOppfolgingData(bruker);
oppdaterStartDatoHvisNodvendig(bruker, dbInfoOracle.map(BrukerOppdatertInformasjon::getStartDato).orElse(null), veialrbinfo.getStartDato(), false);
if (veialrbinfo.isErUnderOppfolging() && (dbInfoPostgres.isEmpty() || !dbInfoPostgres.get().getOppfolging())) {
oppfolgingRepositoryV2.settUnderOppfolging(bruker, veialrbinfo.getStartDato());
} else {
oppdaterStartDatoHvisNodvendig(bruker, dbInfoPostgres.map(BrukerOppdatertInformasjon::getStartDato).orElse(null), veialrbinfo.getStartDato(), true);
}
oppdaterManuellHvisNodvendig(bruker, dbInfoOracle.map(BrukerOppdatertInformasjon::getManuell).orElse(false), veialrbinfo.isErManuell(), false);
oppdaterManuellHvisNodvendig(bruker, dbInfoPostgres.map(BrukerOppdatertInformasjon::getManuell).orElse(false), veialrbinfo.isErManuell(), true);
oppdaterNyForVeilederHvisNodvendig(bruker, dbInfoOracle.map(BrukerOppdatertInformasjon::getNyForVeileder).orElse(false), veialrbinfo.isNyForVeileder(), false);
oppdaterNyForVeilederHvisNodvendig(bruker, dbInfoPostgres.map(BrukerOppdatertInformasjon::getNyForVeileder).orElse(false), veialrbinfo.isNyForVeileder(), true);
oppdaterVeilederHvisNodvendig(bruker, dbInfoOracle.map(BrukerOppdatertInformasjon::getVeileder).orElse(null), Optional.ofNullable(veialrbinfo.getVeilederId()).map(NavIdent::get).orElse(null), false);
oppdaterVeilederHvisNodvendig(bruker, dbInfoPostgres.map(BrukerOppdatertInformasjon::getVeileder).orElse(null), Optional.ofNullable(veialrbinfo.getVeilederId()).map(NavIdent::get).orElse(null), true);
} else {
log.info("OppfolgingsJobb: bruker er ikke under oppfolging, aktoer: " + bruker);
oppfolgingAvsluttetService.avsluttOppfolging(bruker);
antallBrukereSlettet++;
}
} catch (RuntimeException e) {
log.error("RuntimeException i OppfolgingsJobb for bruker {}", bruker);
log.error("RuntimeException i OppfolgingsJobb", e);
} catch (Exception e) {
log.error("Exception i OppfolgingsJobb for bruker {}", bruker);
log.error("Exception i OppfolgingsJobb", e);
}
}
Aggregations