Search in sources :

Example 1 with FichierFiabilisation

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

the class CandidaturePieceController method removeFileToPj.

/* @Transactional(rollbackFor=FileException.class) public void
	 * removeFileToPj(PjCand pjCand) throws FileException{ Fichier fichier =
	 * pjCand.getFichier(); pjCandRepository.delete(pjCand); if (fichier != null){
	 * fileController.deleteFichier(fichier,false); } } */
/**
 * Supprime un fichier d'une PJCand
 * @param pjCand
 */
public void removeFileToPj(final PjCand pjCand) {
    final Fichier fichier = pjCand.getFichier();
    final PjCandPK idPjCand = pjCand.getId();
    pjCandRepository.delete(pjCand);
    if (fichier != null) {
        FichierFiabilisation fichierFiabilisation = new FichierFiabilisation(fichier);
        fichierFiabilisation.setIdPj(idPjCand.getIdPj());
        fichierFiabilisation.setIdCand(idPjCand.getIdCand());
        fichierFiabilisation = fichierFiabilisationRepository.save(fichierFiabilisation);
        try {
            fileController.deleteFichier(fichier);
            fichierFiabilisationRepository.delete(fichierFiabilisation);
        } catch (final FileException e) {
        }
    }
}
Also used : FichierFiabilisation(fr.univlorraine.ecandidat.entities.ecandidat.FichierFiabilisation) FileException(fr.univlorraine.ecandidat.services.file.FileException) PjCandPK(fr.univlorraine.ecandidat.entities.ecandidat.PjCandPK) Fichier(fr.univlorraine.ecandidat.entities.ecandidat.Fichier)

Example 2 with FichierFiabilisation

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

the class CandidaturePieceController method addFileToPieceJustificative.

/**
 * Ajoute un fichier a une pj
 * @param pieceJustif
 * @param candidature
 * @param listener
 */
public void addFileToPieceJustificative(final PjPresentation pieceJustif, final Candidature candidature, final CandidatureListener listener) {
    /* Verification que le service n'est pas en maintenance */
    if (fileController.isFileServiceMaintenance(true)) {
        return;
    }
    Assert.notNull(candidature, applicationContext.getMessage("assert.notNull", null, UI.getCurrent().getLocale()));
    /* Verrou */
    if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
        return;
    }
    final String user = userController.getCurrentNoDossierCptMinOrLogin();
    final String cod = ConstanteUtils.TYPE_FICHIER_PJ_CAND + "_" + candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin() + "_" + candidature.getIdCand() + "_" + pieceJustif.getPieceJustif().getIdPj();
    final UploadWindow uw = new UploadWindow(cod, ConstanteUtils.TYPE_FICHIER_CANDIDAT, candidature, pieceJustif.getPJCommune(), false);
    uw.addUploadWindowListener(file -> {
        if (file == null) {
            return;
        }
        /* Verrou */
        if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
            return;
        }
        final PjCandPK pk = new PjCandPK(pieceJustif.getPieceJustif().getIdPj(), pieceJustif.getIdCandidature());
        PjCand pjCand = pjCandRepository.findOne(pk);
        if (pjCand == null) {
            pjCand = new PjCand(pk, user, candidature, pieceJustif.getPieceJustif());
        }
        final Fichier fichier = fileController.createFile(file, user, ConstanteUtils.TYPE_FICHIER_CANDIDAT);
        if (isPjModified(pieceJustif, candidature, true, listener)) {
            FichierFiabilisation fichierFiabilisation = new FichierFiabilisation(fichier);
            fichierFiabilisation = fichierFiabilisationRepository.save(fichierFiabilisation);
            try {
                fileController.deleteFichier(fichier);
                fichierFiabilisationRepository.delete(fichierFiabilisation);
            } catch (final FileException e) {
            }
            uw.close();
            return;
        }
        pjCand.setLibFilePjCand(fichier.getNomFichier());
        pjCand.setUserModPjCand(user);
        pjCand.setFichier(fichier);
        final TypeStatutPiece statutTr = tableRefController.getTypeStatutPieceTransmis();
        pjCand.setTypeStatutPiece(statutTr);
        pjCandRepository.save(pjCand);
        // obligé de recharger l'objet car le datetime est arrondi :(
        final PjCand pjCandSave = pjCandRepository.findOne(pk);
        pieceJustif.setFilePj(fichier);
        pieceJustif.setCodStatut(statutTr.getCodTypStatutPiece());
        pieceJustif.setLibStatut(i18nController.getI18nTraduction(statutTr.getI18nLibTypStatutPiece()));
        pieceJustif.setDatModification(pjCandSave.getDatModPjCand());
        candidature.setUserModCand(user);
        candidature.updatePjCand(pjCandSave);
        candidature.setDatModCand(LocalDateTime.now());
        final Candidature candidatureSave = candidatureRepository.save(candidature);
        listener.pjModified(pieceJustif, candidatureSave);
        Notification.show(applicationContext.getMessage("window.upload.success", new Object[] { file.getFileName() }, UI.getCurrent().getLocale()), Type.TRAY_NOTIFICATION);
        uw.close();
    });
    UI.getCurrent().addWindow(uw);
}
Also used : FichierFiabilisation(fr.univlorraine.ecandidat.entities.ecandidat.FichierFiabilisation) UploadWindow(fr.univlorraine.ecandidat.views.windows.UploadWindow) TypeStatutPiece(fr.univlorraine.ecandidat.entities.ecandidat.TypeStatutPiece) FileException(fr.univlorraine.ecandidat.services.file.FileException) PjCand(fr.univlorraine.ecandidat.entities.ecandidat.PjCand) PjCandPK(fr.univlorraine.ecandidat.entities.ecandidat.PjCandPK) Candidature(fr.univlorraine.ecandidat.entities.ecandidat.Candidature) FormulaireCandidature(fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidature) Fichier(fr.univlorraine.ecandidat.entities.ecandidat.Fichier)

Example 3 with FichierFiabilisation

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

the class FileController method launchFiabilisationFichier.

// @Scheduled(fixedRateString="${fiabilisation.fichier.refresh.fixedRate}")
// @Scheduled(fixedRateString="30000")
/**
 * Batch de fiabilisation des fichiers
 * @param dateArchivageCampagne
 */
public void launchFiabilisationFichier(final LocalDateTime dateArchivageCampagne) {
    logger.debug("Lancement batch fiabilisation fichiers");
    // Suppression des fichiers orphelins et créés depuis plus d'un jour
    final List<Fichier> listOrphans = fichierRepository.findFichierOrphelin(dateArchivageCampagne);
    logger.debug("Suppression fichiers orphelins : " + listOrphans.size() + " fichiers a supprimer");
    Integer i = 0;
    Integer nb = 0;
    for (final Fichier fichier : listOrphans) {
        try {
            final List<Fichier> listFileFichier = fichierRepository.findByFileFichierAndIdFichierNot(fichier.getFileFichier(), fichier.getIdFichier());
            if (listFileFichier.size() == 0) {
                logger.trace("Fichiers orphelins non trouvés avec le meme Fichier (" + fichier.getFileFichier() + ")");
                FichierFiabilisation fichierFiabilisation = new FichierFiabilisation(fichier);
                fichierFiabilisation = fichierFiabilisationRepository.save(fichierFiabilisation);
                deleteFichier(fichier);
                fichierFiabilisationRepository.delete(fichierFiabilisation);
            } else {
                logger.trace("Fichiers orphelins trouvés avec le meme Fichier (" + fichier.getFileFichier() + "), aucune suppression");
                fichierRepository.delete(fichier);
            }
        } catch (final Exception e) {
        }
        i++;
        nb++;
        if (i.equals(1000)) {
            logger.debug("Batch de destruction fichiers orphelins, destruction de " + nb + " fichiers ok");
            i = 0;
        }
    }
    // Suppression des fichiers non supprimés
    final List<FichierFiabilisation> listFichierFiab = fichierFiabilisationRepository.findByDatCreFichierBefore(dateArchivageCampagne);
    logger.debug("Suppression fichiers à fiabiliser : " + listFichierFiab.size() + " fichiers a supprimer");
    i = 0;
    nb = 0;
    for (final FichierFiabilisation fichierFiab : listFichierFiab) {
        logger.trace("Début fiabilisation de : " + fichierFiab);
        if (fichierFiab.getIdFichier() != null && fichierFiab.getFileFichier() != null) {
            final Fichier file = fichierRepository.findOne(fichierFiab.getIdFichier());
            if (file == null) {
                final List<Fichier> listFileFichier = fichierRepository.findByFileFichier(fichierFiab.getFileFichier());
                if (listFileFichier.size() == 0) {
                    logger.trace("Fiabilisation activée pour : " + fichierFiab);
                    final Fichier fichier = new Fichier(fichierFiab.getCodFichier(), fichierFiab.getFileFichier(), fichierFiab.getNomFichier(), fichierFiab.getTypFichier(), fichierFiab.getTypStockageFichier(), fichierFiab.getAuteurFichier());
                    Boolean isBackoffice = false;
                    if (fichier.getTypFichier().equals(ConstanteUtils.TYPE_FICHIER_GESTIONNAIRE)) {
                        isBackoffice = true;
                    }
                    try {
                        if (!isModeFileStockageOk(fichier, isBackoffice)) {
                            return;
                        }
                        if (isModeStockagePrincipalOk(fichier, isBackoffice)) {
                            logger.trace("Suppression fichier activée pour : " + fichierFiab);
                            fileManager.deleteFile(fichier, false);
                        } else if (isModeStockageSecondaireOk(fichier, isBackoffice)) {
                            logger.trace("Suppression fichier activée pour : " + fichierFiab);
                            fileManagerSecondaire.deleteFile(fichier, false);
                        }
                        logger.trace("Suppression ligne fiabilisation pour : " + fichierFiab);
                        fichierFiabilisationRepository.delete(fichierFiab);
                    } catch (final Exception ex) {
                        try {
                            if (!existFile(fichier)) {
                                logger.trace("Suppression ligne fiabilisation (fichier non existant) suite à erreur pour : " + fichierFiab);
                                fichierFiabilisationRepository.delete(fichierFiab);
                            }
                        } catch (final Exception ex1) {
                        }
                    }
                } else {
                    logger.trace("Pas de fiabilisation (File fichier trouvé) pour : " + fichierFiab);
                    fichierFiabilisationRepository.delete(fichierFiab);
                }
            } else {
                logger.trace("Pas de fiabilisation (Id fichier trouvé) pour : " + fichierFiab);
                fichierFiabilisationRepository.delete(fichierFiab);
            }
        }
        i++;
        nb++;
        if (i.equals(1000)) {
            logger.debug("Batch de destruction fichiers fiabilisation, destruction de " + nb + " fichiers ok");
            i = 0;
        }
    }
}
Also used : FichierFiabilisation(fr.univlorraine.ecandidat.entities.ecandidat.FichierFiabilisation) Fichier(fr.univlorraine.ecandidat.entities.ecandidat.Fichier) NoSuchMessageException(org.springframework.context.NoSuchMessageException) FileException(fr.univlorraine.ecandidat.services.file.FileException) SiScolException(fr.univlorraine.ecandidat.services.siscol.SiScolException)

Example 4 with FichierFiabilisation

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

the class PieceJustifController method removeFileToPieceJustif.

/**
 * @param pieceJustif
 * @param fichier
 * @throws FileException
 */
private void removeFileToPieceJustif(PieceJustif pieceJustif, final Fichier fichier) {
    pieceJustif.setFichier(null);
    pieceJustif = pieceJustifRepository.save(pieceJustif);
    if (fichier != null) {
        FichierFiabilisation fichierFiabilisation = new FichierFiabilisation(fichier);
        fichierFiabilisation.setIdPj(pieceJustif.getIdPj());
        fichierFiabilisation = fichierFiabilisationRepository.save(fichierFiabilisation);
        try {
            fileController.deleteFichier(fichier);
            fichierFiabilisationRepository.delete(fichierFiabilisation);
        } catch (FileException e) {
        }
    }
}
Also used : FichierFiabilisation(fr.univlorraine.ecandidat.entities.ecandidat.FichierFiabilisation) FileException(fr.univlorraine.ecandidat.services.file.FileException)

Example 5 with FichierFiabilisation

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

the class PieceJustifController method deletePieceJustifDbAndFile.

/**
 * Supprime une PJ
 *
 * @param pieceJustif
 */
private void deletePieceJustifDbAndFile(final PieceJustif pieceJustif) {
    Fichier fichier = pieceJustif.getFichier();
    Integer id = pieceJustif.getIdPj();
    pieceJustifRepository.delete(pieceJustif);
    if (fichier != null) {
        FichierFiabilisation fichierFiabilisation = new FichierFiabilisation(fichier);
        fichierFiabilisation.setIdPj(id);
        fichierFiabilisation = fichierFiabilisationRepository.save(fichierFiabilisation);
        try {
            fileController.deleteFichier(fichier);
            fichierFiabilisationRepository.delete(fichierFiabilisation);
        } catch (FileException e) {
        }
    }
}
Also used : FichierFiabilisation(fr.univlorraine.ecandidat.entities.ecandidat.FichierFiabilisation) FileException(fr.univlorraine.ecandidat.services.file.FileException) Fichier(fr.univlorraine.ecandidat.entities.ecandidat.Fichier)

Aggregations

FichierFiabilisation (fr.univlorraine.ecandidat.entities.ecandidat.FichierFiabilisation)7 FileException (fr.univlorraine.ecandidat.services.file.FileException)7 Fichier (fr.univlorraine.ecandidat.entities.ecandidat.Fichier)5 PjCandPK (fr.univlorraine.ecandidat.entities.ecandidat.PjCandPK)2 Candidature (fr.univlorraine.ecandidat.entities.ecandidat.Candidature)1 FormulaireCandidature (fr.univlorraine.ecandidat.entities.ecandidat.FormulaireCandidature)1 PjCand (fr.univlorraine.ecandidat.entities.ecandidat.PjCand)1 TypeStatutPiece (fr.univlorraine.ecandidat.entities.ecandidat.TypeStatutPiece)1 SiScolException (fr.univlorraine.ecandidat.services.siscol.SiScolException)1 UploadWindow (fr.univlorraine.ecandidat.views.windows.UploadWindow)1 NoSuchMessageException (org.springframework.context.NoSuchMessageException)1