use of fi.otavanopisto.pyramus.koski.model.OpiskeluoikeusJakso in project pyramus by otavanopisto.
the class KoskiClient method invalidateStudyOid.
/**
* Invalidates a set of study permits in Koski.
*/
public boolean invalidateStudyOid(Person person, Collection<String> studyPermitOids) throws Exception {
if (CollectionUtils.isEmpty(studyPermitOids)) {
logger.log(Level.INFO, String.format("Invalidation called with no oids for person %d", person.getId()));
return true;
}
logger.log(Level.INFO, String.format("Invalidating OIDs %s for person %d", studyPermitOids, person.getId()));
String oppijaOid = personVariableDAO.findByPersonAndKey(person, KOSKI_HENKILO_OID);
Oppija oppija = findOppijaByOid(oppijaOid);
// Remove non-compatible entities
oppija.getOpiskeluoikeudet().removeIf(opiskeluoikeus -> (opiskeluoikeus == null || opiskeluoikeus.getOid() == null));
oppija.getOpiskeluoikeudet().removeIf(opiskeluoikeus -> getLahdejarjestelma(opiskeluoikeus) != Lahdejarjestelma.pyramus);
long matchingOIDs = oppija.getOpiskeluoikeudet().stream().filter(opiskeluoikeus -> opiskeluoikeus.getOid() != null).filter(opiskeluoikeus -> getLahdejarjestelma(opiskeluoikeus) == Lahdejarjestelma.pyramus).filter(opiskeluoikeus -> studyPermitOids.contains(opiskeluoikeus.getOid())).count();
if (matchingOIDs == 0) {
logger.log(Level.WARNING, String.format("No matching OIDs were found (Person %d). Aborting.", person.getId()));
return false;
}
if (matchingOIDs != studyPermitOids.size()) {
logger.log(Level.WARNING, String.format("Specified OID(s) were not present (Person %d). Aborting.", person.getId()));
return false;
}
// Remove study permits that don't have matching oid
oppija.getOpiskeluoikeudet().removeIf(opiskeluoikeus -> !studyPermitOids.contains(opiskeluoikeus.getOid()) || getLahdejarjestelma(opiskeluoikeus) != Lahdejarjestelma.pyramus);
// There were n matching OIDs that should still be present there (just to be as certain about removing just the wanted ones as possible)
if (oppija.getOpiskeluoikeudet().size() == matchingOIDs) {
for (Opiskeluoikeus opiskeluoikeus : oppija.getOpiskeluoikeudet()) {
if (getLahdejarjestelma(opiskeluoikeus) == Lahdejarjestelma.pyramus) {
SourceSystemId sourceSystemId = parseSource(opiskeluoikeus.getLahdejarjestelmanId().getId());
if (sourceSystemId != null) {
// Having multiple periods is going to cause problems invalidating due to date checks in Koski
opiskeluoikeus.getTila().getOpiskeluoikeusjaksot().clear();
Date invalidationDate = opiskeluoikeus.getPaattymispaiva() != null ? opiskeluoikeus.getPaattymispaiva() : opiskeluoikeus.getAlkamispaiva() != null ? opiskeluoikeus.getAlkamispaiva() : new Date();
opiskeluoikeus.getTila().addOpiskeluoikeusJakso(new OpiskeluoikeusJakso(invalidationDate, OpiskeluoikeudenTila.mitatoity));
} else {
String emsg = String.format("Could not invalidate student oid because returned source system id couldn't be parsed (Person %d).", person.getId());
logger.log(Level.WARNING, emsg);
koskiPersonLogDAO.create(person, KoskiPersonState.UNKNOWN_FAILURE, new Date(), emsg);
return false;
}
} else {
String emsg = String.format("Could not invalidate student oid because source system is not Pyramus (Person %d).", person.getId());
logger.log(Level.WARNING, emsg);
koskiPersonLogDAO.create(person, KoskiPersonState.UNKNOWN_FAILURE, new Date(), emsg);
return false;
}
}
return updatePersonToKoski(oppija, person, oppijaOid);
} else {
String emsg = String.format("Unexpected error filtering study permits for invalidation (person=%d, n=%d).", person.getId(), matchingOIDs);
logger.log(Level.WARNING, emsg);
koskiPersonLogDAO.create(person, KoskiPersonState.UNKNOWN_FAILURE, new Date(), emsg);
}
return false;
}
use of fi.otavanopisto.pyramus.koski.model.OpiskeluoikeusJakso in project pyramus by otavanopisto.
the class APOOppimaaraData method getTestStudent.
public static Oppija getTestStudent() {
Oppija oppija = new Oppija();
oppija.setHenkilo(new HenkiloUusi("111111A111C", "Sally", "Student", "Sally"));
AikuistenPerusopetuksenOpiskeluoikeus opiskeluoikeus = new AikuistenPerusopetuksenOpiskeluoikeus();
oppija.addOpiskeluoikeus(opiskeluoikeus);
Date paattymispaiva = date(2017, 10, 10);
opiskeluoikeus.setPaattymispaiva(paattymispaiva);
OpiskeluoikeusJakso jakso = new OpiskeluoikeusJakso(new Date(), OpiskeluoikeudenTila.lasna);
jakso.setOpintojenRahoitus(new KoodistoViite<OpintojenRahoitus>(OpintojenRahoitus.K1));
opiskeluoikeus.getTila().addOpiskeluoikeusJakso(jakso);
opiskeluoikeus.getTila().addOpiskeluoikeusJakso(new OpiskeluoikeusJakso(paattymispaiva, OpiskeluoikeudenTila.valmistunut));
opiskeluoikeus.setLahdejarjestelmanId(getLahdeJarjestelmaID(1l));
OrganisaationToimipiste toimipiste = new OrganisaationToimipisteOID(ACADEMYOID);
AikuistenPerusopetuksenOppimaaranSuoritus suoritus = new AikuistenPerusopetuksenOppimaaranSuoritus(PerusopetuksenSuoritusTapa.koulutus, Kieli.FI, toimipiste);
opiskeluoikeus.addSuoritus(suoritus);
// Oppiaine
AikuistenPerusopetuksenOppiaineenTunniste koulutusmoduuli = new AikuistenPerusopetuksenOppiaineenSuoritusAidinkieli(OppiaineAidinkieliJaKirjallisuus.AI1, true);
AikuistenPerusopetuksenOppiaineenSuoritus oppiaine = new AikuistenPerusopetuksenOppiaineenSuoritus(koulutusmoduuli);
suoritus.addOsasuoritus(oppiaine);
// Oppiaineen arviointi
oppiaine.addArviointi(new KurssinArviointiNumeerinen(ArviointiasteikkoYleissivistava.GRADE_9, paattymispaiva));
// Kurssi 1
AikuistenPerusopetuksenKurssinTunniste kurssinTunniste = new AikuistenPerusopetuksenKurssinTunnisteOPS2015(AikuistenPerusopetuksenKurssit2015.ÄI1);
AikuistenPerusopetuksenKurssinSuoritus kurssi = new AikuistenPerusopetuksenKurssinSuoritus(kurssinTunniste);
kurssi.addArviointi(new KurssinArviointiNumeerinen(ArviointiasteikkoYleissivistava.GRADE_9, paattymispaiva));
oppiaine.addOsasuoritus(kurssi);
// Kurssi 2
kurssinTunniste = new AikuistenPerusopetuksenKurssinTunnistePaikallinen(new PaikallinenKoodi("ÄI123", kuvaus("ABC")));
kurssi = new AikuistenPerusopetuksenKurssinSuoritus(kurssinTunniste);
kurssi.addArviointi(new KurssinArviointiSanallinen(ArviointiasteikkoYleissivistava.GRADE_S, paattymispaiva, kuvaus("S")));
oppiaine.addOsasuoritus(kurssi);
return oppija;
}
use of fi.otavanopisto.pyramus.koski.model.OpiskeluoikeusJakso in project pyramus by otavanopisto.
the class APAData method getTestStudent.
public static Oppija getTestStudent() {
Oppija oppija = new Oppija();
oppija.setHenkilo(new HenkiloUusi("111111A111C", "Sally", "Student", "Sally"));
AikuistenPerusopetuksenOpiskeluoikeus opiskeluoikeus = new AikuistenPerusopetuksenOpiskeluoikeus();
oppija.addOpiskeluoikeus(opiskeluoikeus);
Date paattymispaiva = date(2017, 10, 10);
opiskeluoikeus.setPaattymispaiva(paattymispaiva);
OpiskeluoikeusJakso jakso = new OpiskeluoikeusJakso(new Date(), OpiskeluoikeudenTila.lasna);
jakso.setOpintojenRahoitus(new KoodistoViite<OpintojenRahoitus>(OpintojenRahoitus.K1));
opiskeluoikeus.getTila().addOpiskeluoikeusJakso(jakso);
opiskeluoikeus.getTila().addOpiskeluoikeusJakso(new OpiskeluoikeusJakso(paattymispaiva, OpiskeluoikeudenTila.valmistunut));
opiskeluoikeus.setLahdejarjestelmanId(getLahdeJarjestelmaID(1l));
OrganisaationToimipiste toimipiste = new OrganisaationToimipisteOID(ACADEMYOID);
APASuoritus suoritus = new APASuoritus(PerusopetuksenSuoritusTapa.koulutus, Kieli.FI, toimipiste);
opiskeluoikeus.addSuoritus(suoritus);
APAOppiaineenTunniste koulutusmoduuli = new APAOppiaineenTunnisteAidinkieli(OppiaineAidinkieliJaKirjallisuus.AI1);
APAOppiaineenSuoritus oppiaine = new APAOppiaineenSuoritus(koulutusmoduuli);
suoritus.addOsasuoritus(oppiaine);
APAKurssinTunniste tunniste = new APAKurssinTunnisteOPS2017(AikuistenPerusopetuksenAlkuvaiheenKurssit2017.AÄI1);
APAKurssinSuoritus kurssi = new APAKurssinSuoritus(tunniste);
kurssi.addArviointi(new KurssinArviointiNumeerinen(ArviointiasteikkoYleissivistava.GRADE_9, paattymispaiva));
oppiaine.addOsasuoritus(kurssi);
tunniste = new APAKurssinTunnistePaikallinen(new PaikallinenKoodi("AÄI123", kuvaus("ABC")));
kurssi = new APAKurssinSuoritus(tunniste);
kurssi.addArviointi(new KurssinArviointiSanallinen(ArviointiasteikkoYleissivistava.GRADE_S, paattymispaiva, kuvaus("S")));
oppiaine.addOsasuoritus(kurssi);
return oppija;
}
use of fi.otavanopisto.pyramus.koski.model.OpiskeluoikeusJakso in project pyramus by otavanopisto.
the class APAData method getTestStudentMinimal.
public static Oppija getTestStudentMinimal() {
Oppija oppija = new Oppija();
oppija.setHenkilo(new HenkiloUusi("111111A111C", "Sally", "Student", "Sally"));
AikuistenPerusopetuksenOpiskeluoikeus opiskeluoikeus = new AikuistenPerusopetuksenOpiskeluoikeus();
oppija.addOpiskeluoikeus(opiskeluoikeus);
OpiskeluoikeusJakso jakso = new OpiskeluoikeusJakso(new Date(), OpiskeluoikeudenTila.lasna);
opiskeluoikeus.getTila().addOpiskeluoikeusJakso(jakso);
OrganisaationToimipiste toimipiste = new OrganisaationToimipisteOID(ACADEMYOID);
APASuoritus suoritus = new APASuoritus(PerusopetuksenSuoritusTapa.koulutus, Kieli.FI, toimipiste);
opiskeluoikeus.addSuoritus(suoritus);
return oppija;
}
use of fi.otavanopisto.pyramus.koski.model.OpiskeluoikeusJakso in project pyramus by otavanopisto.
the class LukioOppiaineenOppimaaraData method getTestStudentMinimal.
public static Oppija getTestStudentMinimal() {
Oppija oppija = new Oppija();
oppija.setHenkilo(new HenkiloUusi("111111A111C", "Sally", "Student", "Sally"));
LukionOpiskeluoikeus opiskeluoikeus = new LukionOpiskeluoikeus();
oppija.addOpiskeluoikeus(opiskeluoikeus);
OpiskeluoikeusJakso jakso = new OpiskeluoikeusJakso(new Date(), OpiskeluoikeudenTila.lasna);
opiskeluoikeus.getTila().addOpiskeluoikeusJakso(jakso);
OrganisaationToimipiste toimipiste = new OrganisaationToimipisteOID(ACADEMYOID);
LukionOppiaineenTunniste koulutusmoduuli = new LukionOppiaineenSuoritusMuuValtakunnallinen(KoskiOppiaineetYleissivistava.HI, false);
LukionSuoritus suoritus = new LukionOppiaineenOppimaaranSuoritus(koulutusmoduuli, Kieli.FI, toimipiste);
opiskeluoikeus.addSuoritus(suoritus);
return oppija;
}
Aggregations