Search in sources :

Example 1 with Opi

use of fr.univlorraine.ecandidat.entities.ecandidat.Opi in project esup-ecandidat by EsupPortail.

the class CandidatureCtrCandController method generateExport.

/**
 * Exporte les candidatures
 * @param  liste
 * @param  allOptions
 * @param  optionChecked
 * @return               le fichier
 */
private OnDemandFile generateExport(final String code, final String libelle, final List<Candidature> liste, final LinkedHashSet<ExportListCandidatureOption> allOptions, final Set<ExportListCandidatureOption> optionChecked, final Boolean temFooter) {
    if (liste == null || liste.size() == 0) {
        return null;
    }
    final Map<String, Object> beans = new HashMap<>();
    /* Traitement des dates */
    liste.forEach(candidature -> {
        candidature.setDatCreCandStr(candidature.getDatCreCand().format(formatterDateTime));
        candidature.getCandidat().setAdresseCandidatExport(generateAdresse(candidature.getCandidat().getAdresse()));
        candidature.getCandidat().setDatNaissanceCandidatStr(MethodUtils.formatDate(candidature.getCandidat().getDatNaissCandidat(), formatterDate));
        if (candidature.getLastTypeDecision() != null) {
            candidature.getLastTypeDecision().setDatValidTypeDecCandStr(MethodUtils.formatDate(candidature.getLastTypeDecision().getDatValidTypeDecCand(), formatterDate));
            candidature.getLastTypeDecision().setPreselectStr(getComplementPreselectMail(candidature.getLastTypeDecision()));
            candidature.getLastTypeDecision().setPreselectDateTypeDecCandStr(MethodUtils.formatDate(candidature.getLastTypeDecision().getPreselectDateTypeDecCand(), formatterDate));
        }
        candidature.setDatModTypStatutCandStr(MethodUtils.formatDate(candidature.getDatModTypStatutCand(), formatterDateTime));
        candidature.setDatReceptDossierCandStr(MethodUtils.formatDate(candidature.getDatReceptDossierCand(), formatterDate));
        candidature.setDatTransDossierCandStr(MethodUtils.formatDate(candidature.getDatTransDossierCand(), formatterDateTime));
        candidature.setDatCompletDossierCandStr(MethodUtils.formatDate(candidature.getDatCompletDossierCand(), formatterDate));
        candidature.setDatAnnulCandStr(MethodUtils.formatDate(candidature.getDatAnnulCand(), formatterDateTime));
        candidature.setDatNewConfirmCandStr(MethodUtils.formatDate(candidature.getDatNewConfirmCand(), formatterDate));
        candidature.setDatNewRetourCandStr(MethodUtils.formatDate(candidature.getDatNewRetourCand(), formatterDate));
        candidature.setDatIncompletDossierCandStr(MethodUtils.formatDate(candidature.getDatIncompletDossierCand(), formatterDate));
        candidature.setDatModPjForm(getDatModPjForm(candidature));
        /* Tags */
        candidature.setTagsStr(formatLongCellSize(candidature.getTags().stream().map(e -> e.getLibTag()).collect(Collectors.joining(" / "))));
        /* Bloc note */
        if (parametreController.getIsExportBlocNote()) {
            candidature.setBlocNoteStr(formatLongCellSize(getPostIt(candidature).stream().map(e -> e.getMessagePostIt()).collect(Collectors.joining(" / "))));
        } else {
            allOptions.add(new ExportListCandidatureOption("postItHide", applicationContext.getMessage("export.option.postit", null, UI.getCurrent().getLocale())));
        }
        /* Exoneration */
        if (candidature.getSiScolCatExoExt() != null) {
            candidature.setCatExoStr(candidature.getSiScolCatExoExt().getDisplayLibelle());
        }
        candidature.setMntChargeStr(MethodUtils.parseBigDecimalAsString(candidature.getMntChargeCand()));
        /* Opi */
        if (candidature.getOpi() != null) {
            candidature.setDatPassageOpiStr(MethodUtils.formatDate(candidature.getOpi().getDatPassageOpi(), formatterDateTime));
            candidature.setCodOpiStr(candidature.getOpi().getCodOpi());
        }
        /* Definition du dernier etablissement frequenté */
        final Candidat candidat = candidature.getCandidat();
        String lastEtab = "";
        String lastDiplome = "";
        String lastLibelleDiplome = "";
        Integer annee = 0;
        for (final CandidatCursusInterne cursus : candidat.getCandidatCursusInternes()) {
            if (cursus.getAnneeUnivCursusInterne() > annee) {
                annee = cursus.getAnneeUnivCursusInterne();
                lastEtab = applicationContext.getMessage("universite.title", null, UI.getCurrent().getLocale());
                lastDiplome = cursus.getLibCursusInterne();
            }
        }
        for (final CandidatCursusPostBac cursus : candidat.getCandidatCursusPostBacs()) {
            if (cursus.getAnneeUnivCursus() > annee && cursus.getSiScolEtablissement() != null) {
                annee = cursus.getAnneeUnivCursus();
                lastEtab = cursus.getSiScolEtablissement().getLibEtb();
                lastDiplome = cursus.getSiScolDipAutCur().getLibDac();
                lastLibelleDiplome = cursus.getLibCursus();
            }
        }
        candidat.setLastEtab(lastEtab);
        candidat.setLastDiplome(lastDiplome);
        candidat.setLastLibDiplome(lastLibelleDiplome);
    });
    if (code != null) {
        beans.put("code", code);
    }
    beans.put("candidatures", liste);
    allOptions.stream().forEach(exportOption -> {
        addExportOption(exportOption, optionChecked, beans);
    });
    if (temFooter) {
        beans.put("footer", applicationContext.getMessage("export.footer", new Object[] { libelle, liste.size(), formatterDateTime.format(LocalDateTime.now()) }, UI.getCurrent().getLocale()));
    } else {
        beans.put("footer", "");
    }
    final String libFile = applicationContext.getMessage("export.nom.fichier", new Object[] { libelle, DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss").format(LocalDateTime.now()) }, UI.getCurrent().getLocale());
    return exportController.generateXlsxExport(beans, "candidatures_template", libFile, Arrays.asList(0));
}
Also used : Arrays(java.util.Arrays) TypeStatut(fr.univlorraine.ecandidat.entities.ecandidat.TypeStatut) LoggerFactory(org.slf4j.LoggerFactory) UI(com.vaadin.ui.UI) ExportListCandidatureOption(fr.univlorraine.ecandidat.utils.bean.export.ExportListCandidatureOption) PdfAttachement(fr.univlorraine.ecandidat.utils.PdfAttachement) CentreCandidature(fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature) CompteMinima(fr.univlorraine.ecandidat.entities.ecandidat.CompteMinima) Map(java.util.Map) PostItRepository(fr.univlorraine.ecandidat.repositories.PostItRepository) Campagne(fr.univlorraine.ecandidat.entities.ecandidat.Campagne) CtrCandActionCandidatureWindow(fr.univlorraine.ecandidat.views.windows.CtrCandActionCandidatureWindow) ConstanteUtils(fr.univlorraine.ecandidat.utils.ConstanteUtils) MethodUtils(fr.univlorraine.ecandidat.utils.MethodUtils) Resource(javax.annotation.Resource) CandidatCursusPostBac(fr.univlorraine.ecandidat.entities.ecandidat.CandidatCursusPostBac) Set(java.util.Set) TypeDecisionCandidature(fr.univlorraine.ecandidat.entities.ecandidat.TypeDecisionCandidature) Collectors(java.util.stream.Collectors) List(java.util.List) Type(com.vaadin.ui.Notification.Type) OnDemandFile(fr.univlorraine.ecandidat.vaadin.components.OnDemandFile) LocalDate(java.time.LocalDate) Optional(java.util.Optional) ExportListCandidatureAdresse(fr.univlorraine.ecandidat.utils.bean.export.ExportListCandidatureAdresse) DeleteAvisWindowListener(fr.univlorraine.ecandidat.views.windows.CtrCandShowHistoWindow.DeleteAvisWindowListener) Candidature(fr.univlorraine.ecandidat.entities.ecandidat.Candidature) FormulaireCandidat(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidat) PjCand(fr.univlorraine.ecandidat.entities.ecandidat.PjCand) OpiRepository(fr.univlorraine.ecandidat.repositories.OpiRepository) TypeDecision(fr.univlorraine.ecandidat.entities.ecandidat.TypeDecision) AvisMailBean(fr.univlorraine.ecandidat.utils.bean.mail.AvisMailBean) MainUI(fr.univlorraine.ecandidat.MainUI) LocalDateTime(java.time.LocalDateTime) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) PostIt(fr.univlorraine.ecandidat.entities.ecandidat.PostIt) NomenclatureUtils(fr.univlorraine.ecandidat.utils.NomenclatureUtils) Notification(com.vaadin.ui.Notification) FormulaireCand(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCand) CtrCandShowHistoWindow(fr.univlorraine.ecandidat.views.windows.CtrCandShowHistoWindow) Adresse(fr.univlorraine.ecandidat.entities.ecandidat.Adresse) LinkedHashSet(java.util.LinkedHashSet) TypeDecisionCandidatureRepository(fr.univlorraine.ecandidat.repositories.TypeDecisionCandidatureRepository) CandidatureMasseListener(fr.univlorraine.ecandidat.utils.ListenerUtils.CandidatureMasseListener) Logger(org.slf4j.Logger) TypeTraitement(fr.univlorraine.ecandidat.entities.ecandidat.TypeTraitement) Opi(fr.univlorraine.ecandidat.entities.ecandidat.Opi) Tag(fr.univlorraine.ecandidat.entities.ecandidat.Tag) ChangeCandidatureWindowListener(fr.univlorraine.ecandidat.views.windows.CtrCandActionCandidatureWindow.ChangeCandidatureWindowListener) ApplicationContext(org.springframework.context.ApplicationContext) DroitFonctionnalite(fr.univlorraine.ecandidat.entities.ecandidat.DroitFonctionnalite) Commission(fr.univlorraine.ecandidat.entities.ecandidat.Commission) CandidatCursusInterne(fr.univlorraine.ecandidat.entities.ecandidat.CandidatCursusInterne) Component(org.springframework.stereotype.Component) CandidatureListener(fr.univlorraine.ecandidat.utils.ListenerUtils.CandidatureListener) DateTimeFormatter(java.time.format.DateTimeFormatter) CandidatureRepository(fr.univlorraine.ecandidat.repositories.CandidatureRepository) CtrCandPostItReadWindow(fr.univlorraine.ecandidat.views.windows.CtrCandPostItReadWindow) Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) Formation(fr.univlorraine.ecandidat.entities.ecandidat.Formation) InputStream(java.io.InputStream) Assert(org.springframework.util.Assert) FormulaireCandidat(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidat) Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) ExportListCandidatureOption(fr.univlorraine.ecandidat.utils.bean.export.ExportListCandidatureOption) CandidatCursusInterne(fr.univlorraine.ecandidat.entities.ecandidat.CandidatCursusInterne) HashMap(java.util.HashMap) CandidatCursusPostBac(fr.univlorraine.ecandidat.entities.ecandidat.CandidatCursusPostBac)

Example 2 with Opi

use of fr.univlorraine.ecandidat.entities.ecandidat.Opi in project esup-ecandidat by EsupPortail.

the class OpiController method traiteListOpiCandidat.

/**
 * Traite la liste des OPI
 * @param candidat
 * @param listeOpi
 * @param isCodOpiIntEpoFromEcandidat
 * @param codOpiIntEpo
 */
public void traiteListOpiCandidat(final Candidat candidat, final List<Opi> listeOpi, final Boolean isCodOpiIntEpoFromEcandidat, final String codOpiIntEpo, final String logComp) {
    logger.debug("traiteListOpiCandidat " + codOpiIntEpo + " fromEcv2 = " + isCodOpiIntEpoFromEcandidat + logComp + " - " + listeOpi.size() + " opi");
    String libFormation = "";
    for (final Opi opi : listeOpi) {
        /* On enregistre la date de passage */
        opi.setDatPassageOpi(LocalDateTime.now());
        opi.setCodOpi(codOpiIntEpo);
        opiRepository.save(opi);
        if (!isCodOpiIntEpoFromEcandidat) {
            libFormation = libFormation + "<li>" + opi.getCandidature().getFormation().getLibForm() + "</li>";
        }
    }
    /* Si le code OPI est different de celui de eCandidat, on envoi un mail au
		 * candidat */
    if (!isCodOpiIntEpoFromEcandidat && libFormation != null && !libFormation.equals("")) {
        logger.debug("Envoi du mail de modification" + logComp);
        sendMailChangeCodeOpi(candidat, codOpiIntEpo, "<ul>" + libFormation + "</ul>");
    }
}
Also used : PjOpi(fr.univlorraine.ecandidat.entities.ecandidat.PjOpi) Opi(fr.univlorraine.ecandidat.entities.ecandidat.Opi)

Example 3 with Opi

use of fr.univlorraine.ecandidat.entities.ecandidat.Opi in project esup-ecandidat by EsupPortail.

the class SiScolApogeeWSServiceImpl method creerOpiViaWS.

/* (non-Javadoc)
	 *
	 * @see
	 * fr.univlorraine.ecandidat.services.siscol.SiScolGenericService#creerOpiViaWS(
	 * fr.univlorraine.ecandidat.entities.ecandidat.Candidat) */
@Override
public void creerOpiViaWS(final Candidat candidat, final Boolean isBatch) {
    /* Erreur à afficher dans les logs */
    final String logComp = " - candidat " + candidat.getCompteMinima().getNumDossierOpiCptMin();
    /* Instanciation du service */
    if (opiService == null) {
        try {
            opiService = ServiceProvider.getService(OpiMetierServiceInterface.class);
        } catch (final Exception e) {
            logger.error("Erreur OPI : Probleme d'insertion des voeux dans Apogée" + logComp, e);
            // Affichage message dans l'interface
            return;
        }
    }
    logger.debug("creerOpiViaWS" + logComp);
    // Test que l'année d'obtention du bac est correcte.
    final CandidatBacOuEqu bacOuEqu = candidat.getCandidatBacOuEqu();
    if (bacOuEqu != null && bacOuEqu.getAnneeObtBac() != null) {
        final int anneeObtBac = candidat.getCandidatBacOuEqu().getAnneeObtBac();
        final int anneeEnCours = (LocalDate.now()).getYear();
        if (anneeObtBac > anneeEnCours) {
            mailController.sendErrorToAdminFonctionnel("Erreur OPI, bac non conforme" + logComp, "Erreur OPI : bac non conforme, la date est supérieur à l'année courante" + logComp, logger);
            logger.debug("bac non conforme" + logComp);
            return;
        }
    }
    // Donnees de l'individu
    final String codOpiIntEpo = parametreController.getPrefixeOPI() + candidat.getCompteMinima().getNumDossierOpiCptMin();
    // Voeux-->On cherche tout les voeuyx soumis à OPI-->Recherche des OPI du
    // candidat
    final List<Opi> listeOpi = opiController.getListOpiByCandidat(candidat, isBatch);
    final List<MAJOpiVoeuDTO3> listeMAJOpiVoeuDTO = new ArrayList<>();
    /* Au moins 1 opi n'est pas passé pour lancer l'opi */
    Boolean opiToPass = false;
    for (final Opi opi : listeOpi) {
        final MAJOpiVoeuDTO3 mAJOpiVoeuDTO = getVoeuByCandidature(opi.getCandidature());
        if (opi.getDatPassageOpi() == null) {
            opiToPass = true;
        }
        if (mAJOpiVoeuDTO != null) {
            listeMAJOpiVoeuDTO.add(mAJOpiVoeuDTO);
        }
    }
    /* Au moins 1 opi n'est pas passé pour lancer l'opi */
    if (!opiToPass) {
        logger.debug("aucun OPI a passer" + logComp);
        return;
    }
    /* Creation des objets DTO */
    final DonneesOpiDTO10 donneesOPI = new DonneesOpiDTO10();
    final MAJOpiIndDTO6 individu = new MAJOpiIndDTO6();
    final MAJEtatCivilDTO2 etatCivil = getEtatCivil(candidat);
    final MAJDonneesNaissanceDTO2 donneesNaissance = getDonneesNaissance(candidat);
    final MAJDonneesPersonnellesDTO3 donneesPersonnelles = new MAJDonneesPersonnellesDTO3();
    final MAJOpiBacDTO2 bac = new MAJOpiBacDTO2();
    /* Informations de verification */
    individu.setCodOpiIntEpo(codOpiIntEpo);
    individu.setCodEtuOpi(null);
    if (candidat.getCompteMinima() != null && candidat.getCompteMinima().getSupannEtuIdCptMin() != null) {
        try {
            individu.setCodEtuOpi(Integer.valueOf(candidat.getCompteMinima().getSupannEtuIdCptMin()));
        } catch (final Exception e) {
        }
    }
    // donnees personnelles
    donneesPersonnelles.setAdrMailOpi(candidat.getCompteMinima().getMailPersoCptMin());
    donneesPersonnelles.setNumTelPorOpi(candidat.getTelPortCandidat());
    // BAC
    if (bacOuEqu != null && bacOuEqu.getSiScolBacOuxEqu() != null) {
        bac.setCodBac(bacOuEqu.getSiScolBacOuxEqu().getCodBac());
        bac.setCodDep((bacOuEqu.getSiScolDepartement()) != null ? bacOuEqu.getSiScolDepartement().getCodDep() : null);
        bac.setCodEtb((bacOuEqu.getSiScolEtablissement()) != null ? bacOuEqu.getSiScolEtablissement().getCodEtb() : null);
        bac.setCodTpe((bacOuEqu.getSiScolEtablissement()) != null ? bacOuEqu.getSiScolEtablissement().getCodTpeEtb() : null);
        bac.setCodMention((bacOuEqu.getSiScolMentionNivBac()) != null ? bacOuEqu.getSiScolMentionNivBac().getCodMnb() : null);
        // calcul de l'année
        if (bacOuEqu.getAnneeObtBac() != null) {
            logger.debug("bac avec annee" + logComp);
            bac.setDaaObtBacOba(bacOuEqu.getAnneeObtBac().toString());
        } else {
            logger.debug("bac sans annee" + logComp);
            bac.setDaaObtBacOba(getDefaultBacAnneeObt());
        }
        /* Specialités / Options */
        bac.setCodSpe1BacTer(Optional.ofNullable(bacOuEqu.getSiScolSpe1BacTer()).map(SiScolSpecialiteBac::getCodSpeBac).orElse(null));
        bac.setCodSpe2BacTer(Optional.ofNullable(bacOuEqu.getSiScolSpe2BacTer()).map(SiScolSpecialiteBac::getCodSpeBac).orElse(null));
        bac.setCodSpeBacPre(Optional.ofNullable(bacOuEqu.getSiScolSpeBacPre()).map(SiScolSpecialiteBac::getCodSpeBac).orElse(null));
        bac.setCodOpt1Bac(Optional.ofNullable(bacOuEqu.getSiScolOpt1Bac()).map(SiScolOptionBac::getCodOptBac).orElse(null));
        bac.setCodOpt2Bac(Optional.ofNullable(bacOuEqu.getSiScolOpt2Bac()).map(SiScolOptionBac::getCodOptBac).orElse(null));
        bac.setCodOpt3Bac(Optional.ofNullable(bacOuEqu.getSiScolOpt3Bac()).map(SiScolOptionBac::getCodOptBac).orElse(null));
        bac.setCodOpt4Bac(Optional.ofNullable(bacOuEqu.getSiScolOpt4Bac()).map(SiScolOptionBac::getCodOptBac).orElse(null));
    } else {
        final String codNoBac = parametreController.getSiscolCodeSansBac();
        if (codNoBac != null && !codNoBac.equals("")) {
            logger.debug("bac par defaut" + logComp);
            bac.setCodBac(codNoBac);
            bac.setDaaObtBacOba(getDefaultBacAnneeObt());
        } else {
            logger.debug("aucun bac" + logComp);
        }
    }
    individu.setEtatCivil(etatCivil);
    individu.setDonneesNaissance(donneesNaissance);
    individu.setDonneesPersonnelles(donneesPersonnelles);
    donneesOPI.setIndividu(individu);
    donneesOPI.setBac(bac);
    /* Donnes d'adresse */
    if (parametreController.getIsUtiliseOpiAdr()) {
        donneesOPI.setAdresseFixe(getAdresseOPI(candidat.getAdresse(), candidat));
    }
    /* Les voeux */
    int rang = 0;
    if (listeMAJOpiVoeuDTO != null) {
        final TableauVoeu3 tabDonneesVoeux = new TableauVoeu3();
        for (final MAJOpiVoeuDTO3 v : listeMAJOpiVoeuDTO) {
            tabDonneesVoeux.getItem().add(v);
            rang++;
        }
        /**
         * TODO Voir avec l'amue pour la supression des voeux --> hack : passer un
         * tableau avec un voeu vide
         */
        if (tabDonneesVoeux.getItem().size() == 0) {
            tabDonneesVoeux.getItem().add(new MAJOpiVoeuDTO3());
            logger.debug("suppression des voeux" + logComp);
        }
        /**
         * Fin TODO
         */
        donneesOPI.setVoeux(tabDonneesVoeux);
    }
    /* else{ logger.debug("aucun OPI a passer"+logComp); return; } */
    logger.debug("listVoeux " + rang + logComp);
    boolean actionWSok = false;
    try {
        logger.debug("lancement ws OPI" + logComp);
        opiService.mettreajourDonneesOpiV10(donneesOPI);
        logger.debug("fin ws OPI" + logComp);
        actionWSok = true;
    } catch (final Exception e) {
        logger.error("erreur ws OPI" + logComp, e);
        return;
    }
    // Si l'appel au WS s'est bien passé
    if (actionWSok) {
        // Vérifie si l'OPI est passé
        final List<IndOpi> listIndOpi = findNneIndOpiByCodOpiIntEpo(codOpiIntEpo, individu.getCodEtuOpi(), etatCivil, candidat.getDatNaissCandidat());
        // dans apogee
        if (listIndOpi == null || listIndOpi.size() == 0) {
            mailController.sendErrorToAdminFonctionnel("Erreur OPI" + logComp, "Erreur OPI : Probleme d'insertion de l'OPI dans Apogée, pas de données OPI" + logComp, logger);
            return;
        }
        IndOpi indOpi = null;
        // Test si plusieurs indopi trouvé
        if (listIndOpi.size() > 1) {
            // on recherche celui qu'on vient d'inserer
            final List<IndOpi> listeFromEcandidat = listIndOpi.stream().filter(e -> e.getCodOpiIntEpo() != null && e.getCodOpiIntEpo().toUpperCase().equals(codOpiIntEpo.toUpperCase())).collect(Collectors.toList());
            // si il y en a plusieurs-->erreur
            if (listeFromEcandidat.size() > 1) {
                mailController.sendErrorToAdminFonctionnel("Erreur OPI" + logComp, "Erreur OPI : Probleme d'insertion de l'OPI dans Apogée, plusieurs données OPI trouvées avec le même CodOpiIntEpo = " + codOpiIntEpo.toUpperCase() + logComp, logger);
                return;
            } else // candiature
            if (listeFromEcandidat.size() == 0) {
                mailController.sendErrorToAdminFonctionnel("Erreur OPI" + logComp, "Erreur OPI : Probleme d'insertion de l'OPI dans Apogée, plusieurs données OPI trouvées" + logComp, logger);
                return;
            } else // si un seul, on a raccroché la candiature sur celui-ci
            if (listeFromEcandidat.size() == 1) {
                indOpi = listeFromEcandidat.get(0);
            }
        } else /* On a trouvé un seul OPI, c'est ok, on continue avec celui là */
        if (listIndOpi.size() == 1) {
            indOpi = listIndOpi.get(0);
        }
        /* Verification que l'opi est bien trouvé et que son code n'ets pas null */
        if (indOpi == null) {
            logger.error("Erreur OPI : opi null ou non trouvé " + logComp);
            return;
        }
        /* On vérifie aussi que tout s'est bien passé */
        try {
            final List<VoeuxIns> listeVoeux = getVoeuxApogee(indOpi);
            final List<Opi> listeOpiATraiter = new ArrayList<>();
            listeVoeux.forEach(voeu -> {
                listeOpi.stream().filter(opi -> opi.getDatPassageOpi() == null && voeu.getId().getCodEtp().equals(opi.getCandidature().getFormation().getCodEtpVetApoForm()) && String.valueOf(voeu.getId().getCodVrsVet()).equals(opi.getCandidature().getFormation().getCodVrsVetApoForm()) && voeu.getId().getCodCge().equals(opi.getCandidature().getFormation().getSiScolCentreGestion().getCodCge())).collect(Collectors.toList()).forEach(opiFiltre -> {
                    listeOpiATraiter.add(opiFiltre);
                });
            });
            /* Traitement des desistements apres confirmation */
            final List<Opi> listeOpiDesistementATraiter = new ArrayList<>();
            listeOpi.stream().filter(opi -> opi.getDatPassageOpi() == null && opi.getCandidature().getTemAcceptCand() != null && !opi.getCandidature().getTemAcceptCand()).forEach(opiDesist -> {
                final long nbvoeuxDesist = listeVoeux.stream().filter(voeu -> voeu.getId().getCodEtp().equals(opiDesist.getCandidature().getFormation().getCodEtpVetApoForm()) && String.valueOf(voeu.getId().getCodVrsVet()).equals(opiDesist.getCandidature().getFormation().getCodVrsVetApoForm()) && voeu.getId().getCodCge().equals(opiDesist.getCandidature().getFormation().getSiScolCentreGestion().getCodCge())).count();
                // sinon on le traite
                if (nbvoeuxDesist == 0) {
                    listeOpiDesistementATraiter.add(opiDesist);
                }
            });
            /* On verifie que le code OPI provient de ecandidat */
            final Boolean isCodOpiIntEpoFromEcandidat = codOpiIntEpo.toUpperCase().equals(indOpi.getCodOpiIntEpo().toUpperCase());
            /* On traite les OPI */
            opiController.traiteListOpiCandidat(candidat, listeOpiATraiter, isCodOpiIntEpoFromEcandidat, indOpi.getCodOpiIntEpo(), logComp);
            /* On traite les OPI en desistement */
            opiController.traiteListOpiDesistCandidat(candidat, listeOpiDesistementATraiter, logComp);
            /* Traitement des PJ */
            opiController.traiteListOpiPjCandidat(listeOpiATraiter, indOpi.getCodOpiIntEpo(), indOpi.getCodIndOpi(), logComp, isBatch);
        } catch (final SiScolException e) {
            logger.error("Erreur OPI : Probleme d'insertion des voeux dans Apogée" + logComp, e);
            // Affichage message dans l'interface
            return;
        }
    }
    return;
}
Also used : PedagogiqueMetierServiceInterface(gouv.education.apogee.commun.client.ws.PedagogiqueMetier.PedagogiqueMetierServiceInterface) SiScolSpecialiteBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolSpecialiteBac) BigDecimal(java.math.BigDecimal) CentreGestion(fr.univlorraine.ecandidat.entities.siscol.CentreGestion) Map(java.util.Map) DipAutCur(fr.univlorraine.ecandidat.entities.siscol.DipAutCur) VersionApo(fr.univlorraine.ecandidat.entities.siscol.VersionApo) ConstanteUtils(fr.univlorraine.ecandidat.utils.ConstanteUtils) MethodUtils(fr.univlorraine.ecandidat.utils.MethodUtils) Resource(javax.annotation.Resource) TableauVoeu3(gouv.education.apogee.commun.client.ws.OpiMetier.TableauVoeu3) ContratPedagogiqueResultatVdiVetDTO2(gouv.education.apogee.commun.client.ws.PedagogiqueMetier.ContratPedagogiqueResultatVdiVetDTO2) SiScolRestException(fr.univlorraine.ecandidat.services.siscol.SiScolRestUtils.SiScolRestException) Pays(fr.univlorraine.ecandidat.entities.siscol.Pays) Serializable(java.io.Serializable) Utilisateur(fr.univlorraine.ecandidat.entities.siscol.Utilisateur) ServiceProvider(fr.univlorraine.apowsutils.ServiceProvider) InfoAdmEtuDTO4(gouv.education.apogee.commun.client.ws.EtudiantMetier.InfoAdmEtuDTO4) SiScolDipAutCur(fr.univlorraine.ecandidat.entities.ecandidat.SiScolDipAutCur) OptionBac(fr.univlorraine.ecandidat.entities.siscol.OptionBac) EntityManagerFactory(javax.persistence.EntityManagerFactory) SiScolDepartement(fr.univlorraine.ecandidat.entities.ecandidat.SiScolDepartement) MentionNivBac(fr.univlorraine.ecandidat.entities.siscol.MentionNivBac) OpiMetierServiceInterface(gouv.education.apogee.commun.client.ws.OpiMetier.OpiMetierServiceInterface) Candidature(fr.univlorraine.ecandidat.entities.ecandidat.Candidature) SiScolMentionNivBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolMentionNivBac) IndOpi(fr.univlorraine.ecandidat.entities.siscol.IndOpi) SiScolBacOuxEqu(fr.univlorraine.ecandidat.entities.ecandidat.SiScolBacOuxEqu) Persistence(javax.persistence.Persistence) BacRegroupeSpeBac(fr.univlorraine.ecandidat.entities.siscol.BacRegroupeSpeBac) WSBac(fr.univlorraine.ecandidat.entities.siscol.WSBac) Departement(fr.univlorraine.ecandidat.entities.siscol.Departement) Fichier(fr.univlorraine.ecandidat.entities.ecandidat.Fichier) WSPjInfo(fr.univlorraine.ecandidat.entities.siscol.WSPjInfo) CoordonneesDTO2(gouv.education.apogee.commun.client.ws.EtudiantMetier.CoordonneesDTO2) SiScolTypDiplome(fr.univlorraine.ecandidat.entities.ecandidat.SiScolTypDiplome) ArrayList(java.util.ArrayList) SiScolPays(fr.univlorraine.ecandidat.entities.ecandidat.SiScolPays) Mention(fr.univlorraine.ecandidat.entities.siscol.Mention) NomenclatureUtils(fr.univlorraine.ecandidat.utils.NomenclatureUtils) SpecialiteBac(fr.univlorraine.ecandidat.entities.siscol.SpecialiteBac) SiScolCentreGestion(fr.univlorraine.ecandidat.entities.ecandidat.SiScolCentreGestion) Version(fr.univlorraine.ecandidat.entities.ecandidat.Version) EtapeResVdiVetDTO2(gouv.education.apogee.commun.client.ws.PedagogiqueMetier.EtapeResVdiVetDTO2) Adresse(fr.univlorraine.ecandidat.entities.ecandidat.Adresse) TypResultat(fr.univlorraine.ecandidat.entities.siscol.TypResultat) MAJEtatCivilDTO2(gouv.education.apogee.commun.client.ws.OpiMetier.MAJEtatCivilDTO2) DonneesOpiDTO10(gouv.education.apogee.commun.client.ws.OpiMetier.DonneesOpiDTO10) SiScolBacSpeBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolBacSpeBac) SiScolCommune(fr.univlorraine.ecandidat.entities.ecandidat.SiScolCommune) Opi(fr.univlorraine.ecandidat.entities.ecandidat.Opi) HttpMethod(org.springframework.http.HttpMethod) MultiValueMap(org.springframework.util.MultiValueMap) PjOpiMetierServiceInterface(gouv.education.apogee.commun.client.ws.PjOpiMetier.PjOpiMetierServiceInterface) EntityManager(javax.persistence.EntityManager) MAJDonneesNaissanceDTO2(gouv.education.apogee.commun.client.ws.OpiMetier.MAJDonneesNaissanceDTO2) ParametreController(fr.univlorraine.ecandidat.controllers.ParametreController) VoeuxIns(fr.univlorraine.ecandidat.entities.siscol.VoeuxIns) EtudiantMetierServiceInterface(gouv.education.apogee.commun.client.ws.EtudiantMetier.EtudiantMetierServiceInterface) AnneeUni(fr.univlorraine.ecandidat.entities.siscol.AnneeUni) Candidat(fr.univlorraine.ecandidat.entities.ecandidat.Candidat) ResultatVetDTO(gouv.education.apogee.commun.client.ws.PedagogiqueMetier.ResultatVetDTO) LinkedMultiValueMap(org.springframework.util.LinkedMultiValueMap) Etablissement(fr.univlorraine.ecandidat.entities.siscol.Etablissement) MailController(fr.univlorraine.ecandidat.controllers.MailController) IndBacDTO2(gouv.education.apogee.commun.client.ws.EtudiantMetier.IndBacDTO2) CandidatureController(fr.univlorraine.ecandidat.controllers.CandidatureController) LoggerFactory(org.slf4j.LoggerFactory) SiScolUtilisateur(fr.univlorraine.ecandidat.entities.ecandidat.SiScolUtilisateur) MAJOpiVoeuDTO3(gouv.education.apogee.commun.client.ws.OpiMetier.MAJOpiVoeuDTO3) MAJOpiAdresseDTO(gouv.education.apogee.commun.client.ws.OpiMetier.MAJOpiAdresseDTO) PjOpi(fr.univlorraine.ecandidat.entities.ecandidat.PjOpi) MAJOpiIndDTO6(gouv.education.apogee.commun.client.ws.OpiMetier.MAJOpiIndDTO6) URI(java.net.URI) TypDiplome(fr.univlorraine.ecandidat.entities.siscol.TypDiplome) RestTemplate(org.springframework.web.client.RestTemplate) WSAdresse(fr.univlorraine.ecandidat.entities.siscol.WSAdresse) HttpHeaders(org.springframework.http.HttpHeaders) CandidatBacOuEqu(fr.univlorraine.ecandidat.entities.ecandidat.CandidatBacOuEqu) TableauResultatVetDto(gouv.education.apogee.commun.client.ws.PedagogiqueMetier.TableauResultatVetDto) Collectors(java.util.stream.Collectors) WSIndividu(fr.univlorraine.ecandidat.entities.siscol.WSIndividu) TableauEtapeResVdiVetDto2(gouv.education.apogee.commun.client.ws.PedagogiqueMetier.TableauEtapeResVdiVetDto2) WSCursusInterne(fr.univlorraine.ecandidat.entities.siscol.WSCursusInterne) IdentifiantsEtudiantDTO2(gouv.education.apogee.commun.client.ws.EtudiantMetier.IdentifiantsEtudiantDTO2) List(java.util.List) Query(javax.persistence.Query) HttpEntity(org.springframework.http.HttpEntity) LocalDate(java.time.LocalDate) Optional(java.util.Optional) MAJOpiBacDTO2(gouv.education.apogee.commun.client.ws.OpiMetier.MAJOpiBacDTO2) OpiController(fr.univlorraine.ecandidat.controllers.OpiController) SiScolAnneeUni(fr.univlorraine.ecandidat.entities.ecandidat.SiScolAnneeUni) SiScolComBdi(fr.univlorraine.ecandidat.entities.ecandidat.SiScolComBdi) MAJDonneesPersonnellesDTO3(gouv.education.apogee.commun.client.ws.OpiMetier.MAJDonneesPersonnellesDTO3) HashMap(java.util.HashMap) BacOuxEqu(fr.univlorraine.ecandidat.entities.siscol.BacOuxEqu) CatExoExt(fr.univlorraine.ecandidat.entities.siscol.CatExoExt) SiScolBacOptBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolBacOptBac) Vet(fr.univlorraine.ecandidat.entities.siscol.Vet) CacheController(fr.univlorraine.ecandidat.controllers.CacheController) Diplome(fr.univlorraine.ecandidat.entities.siscol.Diplome) SiScolCatExoExt(fr.univlorraine.ecandidat.entities.ecandidat.SiScolCatExoExt) Commune(fr.univlorraine.ecandidat.entities.siscol.Commune) Logger(org.slf4j.Logger) AdresseDTO2(gouv.education.apogee.commun.client.ws.EtudiantMetier.AdresseDTO2) SiScolTypResultat(fr.univlorraine.ecandidat.entities.ecandidat.SiScolTypResultat) SiScolOptionBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolOptionBac) BacRegroupeOptBac(fr.univlorraine.ecandidat.entities.siscol.BacRegroupeOptBac) ComBdi(fr.univlorraine.ecandidat.entities.siscol.ComBdi) SiScolMention(fr.univlorraine.ecandidat.entities.ecandidat.SiScolMention) KeyValue(fr.univlorraine.ecandidat.utils.KeyValue) Component(org.springframework.stereotype.Component) DateTimeFormatter(java.time.format.DateTimeFormatter) ResponseEntity(org.springframework.http.ResponseEntity) Formation(fr.univlorraine.ecandidat.entities.ecandidat.Formation) SiScolEtablissement(fr.univlorraine.ecandidat.entities.ecandidat.SiScolEtablissement) InputStream(java.io.InputStream) StringUtils(org.springframework.util.StringUtils) ArrayList(java.util.ArrayList) IndOpi(fr.univlorraine.ecandidat.entities.siscol.IndOpi) Opi(fr.univlorraine.ecandidat.entities.ecandidat.Opi) PjOpi(fr.univlorraine.ecandidat.entities.ecandidat.PjOpi) DonneesOpiDTO10(gouv.education.apogee.commun.client.ws.OpiMetier.DonneesOpiDTO10) MAJOpiVoeuDTO3(gouv.education.apogee.commun.client.ws.OpiMetier.MAJOpiVoeuDTO3) SiScolOptionBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolOptionBac) MAJOpiIndDTO6(gouv.education.apogee.commun.client.ws.OpiMetier.MAJOpiIndDTO6) OpiMetierServiceInterface(gouv.education.apogee.commun.client.ws.OpiMetier.OpiMetierServiceInterface) PjOpiMetierServiceInterface(gouv.education.apogee.commun.client.ws.PjOpiMetier.PjOpiMetierServiceInterface) SiScolSpecialiteBac(fr.univlorraine.ecandidat.entities.ecandidat.SiScolSpecialiteBac) CandidatBacOuEqu(fr.univlorraine.ecandidat.entities.ecandidat.CandidatBacOuEqu) MAJDonneesNaissanceDTO2(gouv.education.apogee.commun.client.ws.OpiMetier.MAJDonneesNaissanceDTO2) MAJDonneesPersonnellesDTO3(gouv.education.apogee.commun.client.ws.OpiMetier.MAJDonneesPersonnellesDTO3) VoeuxIns(fr.univlorraine.ecandidat.entities.siscol.VoeuxIns) IndOpi(fr.univlorraine.ecandidat.entities.siscol.IndOpi) SiScolRestException(fr.univlorraine.ecandidat.services.siscol.SiScolRestUtils.SiScolRestException) MAJOpiBacDTO2(gouv.education.apogee.commun.client.ws.OpiMetier.MAJOpiBacDTO2) TableauVoeu3(gouv.education.apogee.commun.client.ws.OpiMetier.TableauVoeu3) MAJEtatCivilDTO2(gouv.education.apogee.commun.client.ws.OpiMetier.MAJEtatCivilDTO2)

Example 4 with Opi

use of fr.univlorraine.ecandidat.entities.ecandidat.Opi in project esup-ecandidat by EsupPortail.

the class CandidatureCtrCandController method editOpi.

/**
 * Modifie un numero opi
 * @param  listeCandidature
 * @param  newOpi
 * @param  isSendMail
 * @return                  true si tout s'est bien passé
 */
public Boolean editOpi(final List<Candidature> listeCandidature, final Opi newOpi, final Boolean isSendMail) {
    if (listeCandidature.size() > 1) {
        return false;
    }
    if (checkLockListCandidature(listeCandidature)) {
        return false;
    }
    final String user = userController.getCurrentUserLogin();
    for (Candidature candidature : listeCandidature) {
        Assert.notNull(candidature, applicationContext.getMessage("assert.notNull", null, UI.getCurrent().getLocale()));
        /* Verrou */
        if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
            continue;
        }
        final String newCodeOpi = newOpi.getCodOpi();
        Opi opi = candidature.getOpi();
        if (opi == null) {
            opi = new Opi(candidature);
        }
        opi.setCodOpi(newCodeOpi);
        opi.setDatPassageOpi(LocalDateTime.now());
        final Opi opiSave = opiRepository.save(opi);
        candidature.setOpi(opiSave);
        candidature.setUserModCand(user);
        candidature = candidatureRepository.save(candidature);
        if (isSendMail) {
            opiController.sendMailChangeCodeOpi(candidature.getCandidat(), newCodeOpi, "<ul><li>" + candidature.getFormation().getLibForm() + "</li></ul>");
        }
    }
    Notification.show(applicationContext.getMessage("candidature.action.opi.notif", null, UI.getCurrent().getLocale()), Type.TRAY_NOTIFICATION);
    return true;
}
Also used : Opi(fr.univlorraine.ecandidat.entities.ecandidat.Opi) CentreCandidature(fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature) TypeDecisionCandidature(fr.univlorraine.ecandidat.entities.ecandidat.TypeDecisionCandidature) Candidature(fr.univlorraine.ecandidat.entities.ecandidat.Candidature)

Example 5 with Opi

use of fr.univlorraine.ecandidat.entities.ecandidat.Opi in project esup-ecandidat by EsupPortail.

the class OpiController method generateOpi.

/**
 * Genere un opi si besoin
 * @param candidature
 * @param confirm
 */
public void generateOpi(final Candidature candidature, final Boolean confirm) {
    logger.debug("Generation de l'opi");
    if (candidature == null) {
        return;
    }
    final TypeDecisionCandidature lastTypeDecision = candidatureController.getLastTypeDecisionCandidature(candidature);
    if (parametreController.getIsUtiliseOpi() && lastTypeDecision.getTypeDecision().getTemDeverseOpiTypDec() && !demoController.getDemoMode()) {
        Opi opi = opiRepository.findOne(candidature.getIdCand());
        // cas de la confirmation
        if (opi == null && confirm) {
            opi = opiRepository.save(new Opi(candidature));
            candidature.setOpi(opi);
            if (parametreController.getIsOpiImmediat()) {
                logger.debug("Lancement OPI immédiat après confirmation");
                siScolService.creerOpiViaWS(candidature.getCandidat(), false);
            }
        } else if (opi != null && !confirm) {
            if (opi.getDatPassageOpi() == null) {
                opiRepository.delete(opi);
            } else {
                opi.setDatPassageOpi(null);
                opiRepository.save(opi);
                candidature.setOpi(opi);
                if (parametreController.getIsOpiImmediat()) {
                    logger.debug("Lancement OPI immédiat après desistement");
                    siScolService.creerOpiViaWS(candidature.getCandidat(), false);
                }
            }
        }
    }
}
Also used : PjOpi(fr.univlorraine.ecandidat.entities.ecandidat.PjOpi) Opi(fr.univlorraine.ecandidat.entities.ecandidat.Opi) TypeDecisionCandidature(fr.univlorraine.ecandidat.entities.ecandidat.TypeDecisionCandidature)

Aggregations

Opi (fr.univlorraine.ecandidat.entities.ecandidat.Opi)8 PjOpi (fr.univlorraine.ecandidat.entities.ecandidat.PjOpi)6 Candidature (fr.univlorraine.ecandidat.entities.ecandidat.Candidature)4 TypeDecisionCandidature (fr.univlorraine.ecandidat.entities.ecandidat.TypeDecisionCandidature)3 Adresse (fr.univlorraine.ecandidat.entities.ecandidat.Adresse)2 Candidat (fr.univlorraine.ecandidat.entities.ecandidat.Candidat)2 CentreCandidature (fr.univlorraine.ecandidat.entities.ecandidat.CentreCandidature)2 Formation (fr.univlorraine.ecandidat.entities.ecandidat.Formation)2 IndOpi (fr.univlorraine.ecandidat.entities.siscol.IndOpi)2 WSAdresse (fr.univlorraine.ecandidat.entities.siscol.WSAdresse)2 WSBac (fr.univlorraine.ecandidat.entities.siscol.WSBac)2 WSCursusInterne (fr.univlorraine.ecandidat.entities.siscol.WSCursusInterne)2 WSIndividu (fr.univlorraine.ecandidat.entities.siscol.WSIndividu)2 WSPjInfo (fr.univlorraine.ecandidat.entities.siscol.WSPjInfo)2 InputStream (java.io.InputStream)2 EntityManager (javax.persistence.EntityManager)2 EntityManagerFactory (javax.persistence.EntityManagerFactory)2 Query (javax.persistence.Query)2 Notification (com.vaadin.ui.Notification)1 Type (com.vaadin.ui.Notification.Type)1