diff --git a/pom.xml b/pom.xml
index f87f92dc..2d1846cf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
fr.univlorraine
ecandidat
war
- 2.3.1-SNAPSHOT
+ 2.3.2-SNAPSHOT
ecandidat
@@ -45,8 +45,8 @@
1.0.2
- 5.1.6.RELEASE
- 5.1.5.RELEASE
+ 5.2.4.RELEASE
+ 5.2.2.RELEASE
1.1.8
@@ -64,12 +64,12 @@
5.1.39
- 18.3.0.0
+ 19.3.0.0
2.7.2
2.1.1
2.0.1.Final
1.11.22.RELEASE
- 6.0.13.Final
+ 6.1.2.Final
5.3.7.Final
4.2.0
@@ -83,7 +83,7 @@
1.5.11
1.18.6
2.9.10
- 2.9.10.1
+ 2.9.10.3
3.0.1
@@ -165,6 +165,7 @@
configUrlServices.ul.*
ul/
VAADIN/gwt-unitCache/
+ test-ws.properties
@@ -183,8 +184,7 @@
license/
assembly/
repository/
- i18n/*.sample.properties
-
+ i18n/*.sample.properties
**/logo.sample.png
template/*.sample.docx
**/*.scss
@@ -201,33 +201,7 @@
- oracle-enable
-
-
-
- maven.oracle.com
- oracle-maven-repo
- https://maven.oracle.com
- default
-
- true
- always
-
-
-
-
-
- com.oracle.jdbc
- ojdbc8
- ${ojdbc8.version}
-
-
- *
- *
-
-
-
-
+ local
${project.name}-${project-distribution.version}
@@ -389,6 +363,41 @@
+
+
+
+ test-ws
+
+
+
+ maven-resources-plugin
+ ${maven-resources-plugin.version}
+
+
+ copy-resources-test-ws
+
+ process-resources
+
+ copy-resources
+
+
+ ${project.build.outputDirectory}
+ true
+
+
+ src/main/resources/ul/test
+ delete-opi.sql
+ false
+
+
+
+
+
+
+
+
+
+
license
@@ -768,11 +777,11 @@
provided
-
- javax.annotation
- javax.annotation-api
- 1.3.2
-
+
+ javax.annotation
+ javax.annotation-api
+ 1.3.2
+
@@ -977,6 +986,18 @@
mysql-connector-java
${mysql.connector.version}
+
+
+ com.oracle.ojdbc
+ ojdbc8
+ ${ojdbc8.version}
+
+
+ *
+ *
+
+
+
diff --git a/src/main/java/fr/univlorraine/ecandidat/config/SpringConfig.java b/src/main/java/fr/univlorraine/ecandidat/config/SpringConfig.java
index 53fe888e..f8f471b9 100644
--- a/src/main/java/fr/univlorraine/ecandidat/config/SpringConfig.java
+++ b/src/main/java/fr/univlorraine/ecandidat/config/SpringConfig.java
@@ -32,11 +32,13 @@
import fr.univlorraine.ecandidat.Initializer;
import fr.univlorraine.ecandidat.utils.ConstanteUtils;
+import fr.univlorraine.ecandidat.utils.KeyValue;
import fr.univlorraine.ecandidat.utils.MethodUtils;
-/** Configuration Spring
- *
- * @author Adrien Colson */
+/**
+ * Configuration Spring
+ * @author Adrien Colson
+ */
@Configuration
@EnableSpringConfigured
@ComponentScan(basePackageClasses = Initializer.class)
@@ -56,7 +58,7 @@ public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderCon
/** @return ResourceBundleMessageSource pour les messages de l'application */
@Bean
public ResourceBundleMessageSource messageSource() {
- ResourceBundleMessageSource resourceBundleMessageSource = new ResourceBundleMessageSource();
+ final ResourceBundleMessageSource resourceBundleMessageSource = new ResourceBundleMessageSource();
resourceBundleMessageSource.setBasenames("i18n/messages", "i18n/backoffice/backoffice-messages", "i18n/backoffice/nomenclature-messages", "i18n/candidat/candidat-messages");
resourceBundleMessageSource.setFallbackToSystemLocale(false);
return resourceBundleMessageSource;
@@ -107,12 +109,24 @@ public static DateTimeFormatter formatterDateTimeApoWsPj() {
/** @return l'url du WS des PJ Apogée */
@Bean
static String urlWsPjApogee() {
- return MethodUtils.getUrlWSApogee(ConstanteUtils.WS_APOGEE_PJ_SERVICE);
+ return MethodUtils.getUrlWSApogee(ConstanteUtils.WS_APOGEE_PJ_URL_SERVICE);
+ }
+
+ /** @return l'url du WS des PJ Apogée */
+ @Bean
+ static KeyValue headerWsPjApogee() {
+ return MethodUtils.getHeaderWSApogee(ConstanteUtils.WS_APOGEE_PJ_URL_SERVICE);
}
/** @return l'url du WS de verification de l'INES */
@Bean
static String urlWsCheckInes() {
- return MethodUtils.getUrlWSApogee(ConstanteUtils.WS_INES_CHECK_URI_SERVICE);
+ return MethodUtils.getUrlWSApogee(ConstanteUtils.WS_INES_CHECK_URL_SERVICE);
+ }
+
+ /** @return l'url du WS des PJ Apogée */
+ @Bean
+ static KeyValue headerWsCheckInes() {
+ return MethodUtils.getHeaderWSApogee(ConstanteUtils.WS_INES_CHECK_URL_SERVICE);
}
}
diff --git a/src/main/java/fr/univlorraine/ecandidat/controllers/AdresseController.java b/src/main/java/fr/univlorraine/ecandidat/controllers/AdresseController.java
index fb8d5f28..322558bc 100644
--- a/src/main/java/fr/univlorraine/ecandidat/controllers/AdresseController.java
+++ b/src/main/java/fr/univlorraine/ecandidat/controllers/AdresseController.java
@@ -26,9 +26,10 @@
import fr.univlorraine.ecandidat.entities.ecandidat.Adresse;
import fr.univlorraine.ecandidat.entities.ecandidat.Commission;
-/** Gestion de l'entité campagne
- *
- * @author Kevin Hergalant */
+/**
+ * Gestion de l'entité campagne
+ * @author Kevin Hergalant
+ */
@Component
public class AdresseController {
/* Injections */
@@ -39,9 +40,11 @@ public class AdresseController {
@Resource
private transient I18nController i18nController;
- /** @param adresse
- * @param delimiter
- * @return le libelle d'une adresse */
+ /**
+ * @param adresse
+ * @param delimiter
+ * @return le libelle d'une adresse
+ */
public String getLibelleAdresse(final Adresse adresse, final String delimiter) {
String libAdr = "";
if (adresse != null) {
@@ -81,32 +84,42 @@ public String getLibelleAdresse(final Adresse adresse, final String delimiter) {
return libAdr;
}
- /** @param commission
- * @param delimiter
- * @return le libelle de l'adresse de la commission */
+ /**
+ * @param commission
+ * @param delimiter
+ * @return le libelle de l'adresse de la commission
+ */
public String getLibelleAdresseCommission(final Commission commission, final String delimiter) {
String libAdr = getLibelleAdresse(commission.getAdresse(), delimiter);
Boolean addDelimiter = false;
if (commission.getTelComm() != null) {
addDelimiter = true;
- libAdr = libAdr + delimiter + applicationContext.getMessage("candidature.adresse.tel", new Object[] {commission.getTelComm()}, UI.getCurrent().getLocale()) + delimiter;
+ libAdr = libAdr + delimiter + applicationContext.getMessage("candidature.adresse.tel", new Object[] { commission.getTelComm() }, UI.getCurrent().getLocale()) + delimiter;
}
if (commission.getMailComm() != null) {
if (!addDelimiter) {
addDelimiter = true;
libAdr = libAdr + delimiter;
}
- String libMail = "" + commission.getMailComm() + "";
- libAdr = libAdr + applicationContext.getMessage("candidature.adresse.mail", new Object[] {libMail}, UI.getCurrent().getLocale()) + delimiter;
+ final String libMail = "" + commission.getMailComm() + "";
+ libAdr = libAdr + applicationContext.getMessage("candidature.adresse.mail", new Object[] { libMail }, UI.getCurrent().getLocale()) + delimiter;
+ }
+ if (commission.getUrlComm() != null) {
+ if (!addDelimiter) {
+ addDelimiter = true;
+ libAdr = libAdr + delimiter;
+ }
+ final String libUrl = "" + commission.getUrlComm() + "";
+ libAdr = libAdr + applicationContext.getMessage("candidature.adresse.url", new Object[] { libUrl }, UI.getCurrent().getLocale()) + delimiter;
}
if (commission.getFaxComm() != null) {
if (!addDelimiter) {
addDelimiter = true;
libAdr = libAdr + delimiter;
}
- libAdr = libAdr + applicationContext.getMessage("candidature.adresse.fax", new Object[] {commission.getFaxComm()}, UI.getCurrent().getLocale()) + delimiter;
+ libAdr = libAdr + applicationContext.getMessage("candidature.adresse.fax", new Object[] { commission.getFaxComm() }, UI.getCurrent().getLocale()) + delimiter;
}
- String commentRetour = i18nController.getI18nTraduction(commission.getI18nCommentRetourComm());
+ final String commentRetour = i18nController.getI18nTraduction(commission.getI18nCommentRetourComm());
if (commentRetour != null && !commentRetour.equals("")) {
if (!addDelimiter) {
addDelimiter = true;
diff --git a/src/main/java/fr/univlorraine/ecandidat/controllers/CandidatureController.java b/src/main/java/fr/univlorraine/ecandidat/controllers/CandidatureController.java
index a32139d4..8c37cc9a 100644
--- a/src/main/java/fr/univlorraine/ecandidat/controllers/CandidatureController.java
+++ b/src/main/java/fr/univlorraine/ecandidat/controllers/CandidatureController.java
@@ -402,7 +402,7 @@ private Candidature saveCandidature(Candidature candidature, final Boolean isPro
if (isProposition) {
/* envoi du mail à la commission */
if (candidature.getFormation().getCommission().getTemAlertPropComm()) {
- mailController.sendMailByCod(candidature.getFormation().getCommission().getMailComm(),
+ mailController.sendMailByCod(candidature.getFormation().getCommission().getMailAlertComm(),
NomenclatureUtils.MAIL_COMMISSION_ALERT_PROPOSITION,
null,
candidature,
@@ -948,7 +948,7 @@ public void setConfirmationCandidature(final Candidature candidature, final Bool
if (!confirm) {
/* envoi du mail à la commission */
if (candidature.getFormation().getCommission().getTemAlertDesistComm()) {
- mailController.sendMailByCod(candidature.getFormation().getCommission().getMailComm(),
+ mailController.sendMailByCod(candidature.getFormation().getCommission().getMailAlertComm(),
NomenclatureUtils.MAIL_COMMISSION_ALERT_DESISTEMENT,
null,
candidature,
@@ -1029,7 +1029,7 @@ public void cancelCandidature(final Candidature candidature,
/* envoi du mail à la commission */
if (candidature.getFormation().getCommission().getTemAlertAnnulComm()) {
- mailController.sendMailByCod(candidature.getFormation().getCommission().getMailComm(),
+ mailController.sendMailByCod(candidature.getFormation().getCommission().getMailAlertComm(),
NomenclatureUtils.MAIL_COMMISSION_ALERT_ANNULATION,
null,
candidature,
@@ -1153,7 +1153,7 @@ public InputStream downloadLettre(final Candidature candidature, final String mo
libAvis = i18nController.getI18nTraduction(typeDecisionCand.getTypeDecision().getI18nLibTypDec(), locale);
// motif pour un avis défavorable
if (typeDecisionCand.getMotivationAvis() != null && templateLettre.equals(ConstanteUtils.TEMPLATE_LETTRE_REFUS)) {
- motif = i18nController.getI18nTraduction(typeDecisionCand.getMotivationAvis().getI18nLibMotiv());
+ motif = i18nController.getI18nTraduction(typeDecisionCand.getMotivationAvis().getI18nLibMotiv(), locale);
}
// commentaire
if (typeDecisionCand.getCommentTypeDecCand() != null && !typeDecisionCand.getCommentTypeDecCand().equals("")
diff --git a/src/main/java/fr/univlorraine/ecandidat/controllers/CandidatureGestionController.java b/src/main/java/fr/univlorraine/ecandidat/controllers/CandidatureGestionController.java
index 09cfeb74..f013bca6 100644
--- a/src/main/java/fr/univlorraine/ecandidat/controllers/CandidatureGestionController.java
+++ b/src/main/java/fr/univlorraine/ecandidat/controllers/CandidatureGestionController.java
@@ -71,7 +71,7 @@
*/
@Component
public class CandidatureGestionController {
- private Logger logger = LoggerFactory.getLogger(CandidatureGestionController.class);
+ private final Logger logger = LoggerFactory.getLogger(CandidatureGestionController.class);
/* Injections */
@Resource
@@ -126,38 +126,38 @@ public class CandidatureGestionController {
* @return la liste des type decision LC classé par rang puis par Id
*/
public List findTypDecLc(final Formation formation, final Campagne campagne) {
- Specification spec = new Specification() {
+ final Specification spec = new Specification() {
@Override
public Predicate toPredicate(final Root root, final CriteriaQuery> query, final CriteriaBuilder cb) {
/* Creation de la subquery pour récupérer le max des id de type decision pour chaque candidature de la formation */
- Subquery subquery = query.subquery(Integer.class);
- Root rootSq = subquery.from(TypeDecisionCandidature.class);
+ final Subquery subquery = query.subquery(Integer.class);
+ final Root rootSq = subquery.from(TypeDecisionCandidature.class);
/* On fait la jointure sur la candidature */
- Join joinCandSq = rootSq.join(TypeDecisionCandidature_.candidature);
+ final Join joinCandSq = rootSq.join(TypeDecisionCandidature_.candidature);
/* Select du max */
subquery.select(cb.max(rootSq.get(TypeDecisionCandidature_.idTypeDecCand)));
/* Group by sur idCand */
subquery.groupBy(rootSq.get(TypeDecisionCandidature_.candidature).get(Candidature_.idCand));
/* Ajout des clauses where : formation, campagne et datAnnul null */
- Predicate predicateFormation = cb.equal(joinCandSq.get(Candidature_.formation), formation);
- Predicate predicateCampagne =
+ final Predicate predicateFormation = cb.equal(joinCandSq.get(Candidature_.formation), formation);
+ final Predicate predicateCampagne =
cb.equal(joinCandSq.join(Candidature_.candidat).join(Candidat_.compteMinima).get(CompteMinima_.campagne), campagne);
- Predicate predicateDtAnnul = cb.isNull(joinCandSq.get(Candidature_.datAnnulCand));
+ final Predicate predicateDtAnnul = cb.isNull(joinCandSq.get(Candidature_.datAnnulCand));
/* Finalisation de la subquery */
subquery.where(predicateFormation, predicateCampagne, predicateDtAnnul);
/* Selection des typeDecisionCandidature, creation des clauses where :
* L'avis doit etre validé, avec un rang non null, un avis LC et contenu dans la subquery */
- Predicate predicateValid = cb.equal(root.get(TypeDecisionCandidature_.temValidTypeDecCand), true);
- Predicate predicateRang = cb.isNotNull(root.get(TypeDecisionCandidature_.listCompRangTypDecCand));
- Predicate predicateAvis =
+ final Predicate predicateValid = cb.equal(root.get(TypeDecisionCandidature_.temValidTypeDecCand), true);
+ final Predicate predicateRang = cb.isNotNull(root.get(TypeDecisionCandidature_.listCompRangTypDecCand));
+ final Predicate predicateAvis =
cb.equal(root.join(TypeDecisionCandidature_.typeDecision).get(TypeDecision_.typeAvis), tableRefController.getTypeAvisListComp());
- Predicate predicateSqMaxIds = cb.in(root.get(TypeDecisionCandidature_.idTypeDecCand)).value(subquery);
+ final Predicate predicateSqMaxIds = cb.in(root.get(TypeDecisionCandidature_.idTypeDecCand)).value(subquery);
/* Recherche avec ces clauses */
return cb.and(predicateValid, predicateRang, predicateAvis, predicateSqMaxIds);
@@ -165,8 +165,8 @@ public Predicate toPredicate(final Root root, final Cri
};
/* On sort sur le rang en premier puis si même rang, sur l'id --> l'id le plus bas sera classé premier */
- Order orderRang = new Order(Direction.ASC, TypeDecisionCandidature_.listCompRangTypDecCand.getName());
- Order orderId = new Order(Direction.ASC, TypeDecisionCandidature_.idTypeDecCand.getName());
+ final Order orderRang = new Order(Direction.ASC, TypeDecisionCandidature_.listCompRangTypDecCand.getName());
+ final Order orderId = new Order(Direction.ASC, TypeDecisionCandidature_.idTypeDecCand.getName());
return typeDecisionCandidatureRepository.findAll(spec, new Sort(orderRang, orderId));
}
@@ -175,16 +175,16 @@ public Predicate toPredicate(final Root root, final Cri
* @param batchHisto
*/
public void calculRangLcAllFormation(final BatchHisto batchHisto) {
- Campagne camp = campagneController.getCampagneActive();
+ final Campagne camp = campagneController.getCampagneActive();
if (camp == null) {
return;
}
- List listForm = formationRepository.findByTesFormAndTemListCompForm(true, true);
+ final List listForm = formationRepository.findByTesFormAndTemListCompForm(true, true);
batchController.addDescription(batchHisto, "Lancement batch de recalcul des rangs LC pour " + listForm.size() + " formations");
- int[] cpt = { 0 };
+ final int[] cpt = { 0 };
listForm.forEach(formation -> {
- List listeTdc = findTypDecLc(formation, camp);
- int size = listeTdc.size();
+ final List listeTdc = findTypDecLc(formation, camp);
+ final int size = listeTdc.size();
cpt[0] = cpt[0] + size;
batchController.addDescription(batchHisto, "Batch calcul rang : formation '" + formation.getCodForm() + "', " + size + " décisions à recalculer");
calculRangReel(listeTdc);
@@ -199,12 +199,12 @@ public void calculRangLcAllFormation(final BatchHisto batchHisto) {
* @return la liste des TypeDecisionCandidature
*/
public List calculRangReelListForm(final List liste) {
- Campagne camp = campagneController.getCampagneActive();
- List listeTypDecRangReel = new ArrayList<>();
+ final Campagne camp = campagneController.getCampagneActive();
+ final List listeTypDecRangReel = new ArrayList<>();
if (camp == null) {
return listeTypDecRangReel;
}
- for (Formation formation : liste) {
+ for (final Formation formation : liste) {
if (formation == null || !formation.getTemListCompForm()) {
continue;
}
@@ -219,12 +219,12 @@ public List calculRangReelListForm(final List calculRangReel(final List liste) {
- List listeTypDecRangReel = new ArrayList<>();
+ final List listeTypDecRangReel = new ArrayList<>();
int i = 1;
- for (TypeDecisionCandidature td : liste) {
+ for (final TypeDecisionCandidature td : liste) {
if (td.getListCompRangReelTypDecCand() == null || !td.getListCompRangReelTypDecCand().equals(i)) {
td.setListCompRangReelTypDecCand(i);
- TypeDecisionCandidature tdSave = typeDecisionCandidatureRepository.save(td);
+ final TypeDecisionCandidature tdSave = typeDecisionCandidatureRepository.save(td);
listeTypDecRangReel.add(tdSave);
Candidature candidature = td.getCandidature();
candidature.setUserModCand(ConstanteUtils.AUTO_LISTE_COMP);
@@ -243,16 +243,16 @@ public List calculRangReel(final List listTypDecLc = findTypDecLc(formation, camp);
- Optional optTypDec = listTypDecLc.stream().findFirst();
+ final List listTypDecLc = findTypDecLc(formation, camp);
+ final Optional optTypDec = listTypDecLc.stream().findFirst();
if (optTypDec.isPresent()) {
- TypeDecisionCandidature td = optTypDec.get();
+ final TypeDecisionCandidature td = optTypDec.get();
Candidature candidature = td.getCandidature();
logger.debug("Traitement liste comp. : " + candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin());
@@ -265,7 +265,7 @@ public void candidatFirstCandidatureListComp(Formation formation) {
candidature = candidatureController.loadCandidature(candidature.getIdCand());
/* On affecte une nouvelle date de confirmation si besoin */
- LocalDate newDateConfirm = candidatureController.getDateConfirmCandidat(formation.getDatConfirmListCompForm(),
+ final LocalDate newDateConfirm = candidatureController.getDateConfirmCandidat(formation.getDatConfirmListCompForm(),
formation.getDelaiConfirmListCompForm(),
null,
candidatureController.getLastTypeDecisionCandidature(candidature));
@@ -282,14 +282,14 @@ public void candidatFirstCandidatureListComp(Formation formation) {
candidature.setLastTypeDecision(candidatureController.getLastTypeDecisionCandidature(candidature));
PdfAttachement attachement = null;
- InputStream is =
+ final InputStream is =
candidatureController.downloadLettre(candidature, ConstanteUtils.TYP_LETTRE_MAIL, candidature.getCandidat().getLangue().getCodLangue(), false);
if (is != null) {
try {
attachement = new PdfAttachement(is,
candidatureController
.getNomFichierLettre(candidature, ConstanteUtils.TYP_LETTRE_MAIL, candidature.getCandidat().getLangue().getCodLangue()));
- } catch (Exception e) {
+ } catch (final Exception e) {
attachement = null;
}
}
@@ -301,7 +301,7 @@ public void candidatFirstCandidatureListComp(Formation formation) {
attachement);
/* envoi du mail à la commission */
if (candidature.getFormation().getCommission().getTemAlertListePrincComm()) {
- mailController.sendMailByCod(candidature.getFormation().getCommission().getMailComm(),
+ mailController.sendMailByCod(candidature.getFormation().getCommission().getMailAlertComm(),
NomenclatureUtils.MAIL_COMMISSION_ALERT_LISTE_PRINC,
null,
candidature,
@@ -320,16 +320,16 @@ public void candidatFirstCandidatureListComp(Formation formation) {
/** Lance le batch de destruction des dossiers */
public void launchBatchDestructDossier(final BatchHisto batchHisto) throws FileException {
- Boolean deleteFileManualy = enableDeleteFileManuallyBatchDestruct != null && enableDeleteFileManuallyBatchDestruct;
- Boolean deleteRootManualy = enableDeleteRootFolderManuallyBatchDestruct != null && enableDeleteRootFolderManuallyBatchDestruct;
- List listeCamp = campagneController.getCampagnes()
+ final Boolean deleteFileManualy = enableDeleteFileManuallyBatchDestruct != null && enableDeleteFileManuallyBatchDestruct;
+ final Boolean deleteRootManualy = enableDeleteRootFolderManuallyBatchDestruct != null && enableDeleteRootFolderManuallyBatchDestruct;
+ final List listeCamp = campagneController.getCampagnes()
.stream()
.filter(e -> (e.getDatDestructEffecCamp() == null && e.getDatArchivCamp() != null))
.collect(Collectors.toList());
batchController.addDescription(batchHisto, "Lancement batch de destruction");
batchController.addDescription(batchHisto, "Batch de destruction, option enableDeleteFileManuallyBatchDestruct=" + deleteFileManualy);
batchController.addDescription(batchHisto, "Batch de destruction, option enableDeleteRootFolderManuallyBatchDestruct=" + deleteRootManualy);
- for (Campagne campagne : listeCamp) {
+ for (final Campagne campagne : listeCamp) {
if (campagneController.getDateDestructionDossier(campagne).isBefore(LocalDateTime.now())) {
batchController.addDescription(batchHisto,
"Batch de destruction, destruction dossiers campagne : " + campagne.getCodCamp()
@@ -338,10 +338,10 @@ public void launchBatchDestructDossier(final BatchHisto batchHisto) throws FileE
+ " comptes à supprimer");
Integer i = 0;
Integer cpt = 0;
- for (CompteMinima cptMin : campagne.getCompteMinimas()) {
+ for (final CompteMinima cptMin : campagne.getCompteMinimas()) {
if (cptMin.getCandidat() != null) {
- for (Candidature candidature : cptMin.getCandidat().getCandidatures()) {
- for (PjCand pjCand : candidature.getPjCands()) {
+ for (final Candidature candidature : cptMin.getCandidat().getCandidatures()) {
+ for (final PjCand pjCand : candidature.getPjCands()) {
if (deleteFileManualy) {
candidaturePieceController.removeFileToPjManually(pjCand);
} else {
@@ -366,9 +366,9 @@ public void launchBatchDestructDossier(final BatchHisto batchHisto) throws FileE
batchController.addDescription(batchHisto, "Batch de destruction, destruction dossier root campagne : " + campagne.getCodCamp());
fileController.deleteCampagneFolder(campagne.getCodCamp());
}
+ campagneController.saveDateDestructionCampagne(campagne);
/* Enregistre la date de suppression */
- campagneController.saveDateDestructionCampagne(campagne);
batchController.addDescription(batchHisto,
"Batch de destruction, fin destruction campagne : " + campagne.getCodCamp() + ", " + cpt + " comptes supprimés");
}
@@ -382,29 +382,29 @@ public void launchBatchDestructDossier(final BatchHisto batchHisto) throws FileE
* @return la liste des type decision favorable non confirmée
*/
public List findTypDecFavoNotAccept(final Campagne campagne, final Boolean isCandidatureRelance) {
- Specification spec = new Specification() {
+ final Specification spec = new Specification() {
@Override
public Predicate toPredicate(final Root root, final CriteriaQuery> query, final CriteriaBuilder cb) {
/* Creation de la subquery pour récupérer le max des id de type decision pour chaque candidature de la formation */
- Subquery subquery = query.subquery(Integer.class);
- Root rootSq = subquery.from(TypeDecisionCandidature.class);
+ final Subquery subquery = query.subquery(Integer.class);
+ final Root rootSq = subquery.from(TypeDecisionCandidature.class);
/* On fait la jointure sur la candidature */
- Join joinCandSq = rootSq.join(TypeDecisionCandidature_.candidature);
+ final Join joinCandSq = rootSq.join(TypeDecisionCandidature_.candidature);
/* Select du max */
subquery.select(cb.max(rootSq.get(TypeDecisionCandidature_.idTypeDecCand)));
/* Group by sur idCand */
subquery.groupBy(rootSq.get(TypeDecisionCandidature_.candidature).get(Candidature_.idCand));
/* Ajout des clauses where : campagne , datAnnul null, temAccept null */
- Predicate predicateCampagne = cb.equal(joinCandSq.get(Candidature_.candidat).get(Candidat_.compteMinima).get(CompteMinima_.campagne), campagne);
- Predicate predicateDtAnnul = cb.isNull(joinCandSq.get(Candidature_.datAnnulCand));
- Predicate predicateNotAccept = cb.isNull(joinCandSq.get(Candidature_.temAcceptCand));
+ final Predicate predicateCampagne = cb.equal(joinCandSq.get(Candidature_.candidat).get(Candidat_.compteMinima).get(CompteMinima_.campagne), campagne);
+ final Predicate predicateDtAnnul = cb.isNull(joinCandSq.get(Candidature_.datAnnulCand));
+ final Predicate predicateNotAccept = cb.isNull(joinCandSq.get(Candidature_.temAcceptCand));
/* Si isCandidatureRelance à false, on ne prend pas les relancés, sinon on prend tout le monde */
if (!isCandidatureRelance) {
- Predicate predicateIsNotRelance = cb.equal(joinCandSq.get(Candidature_.temRelanceCand), false);
+ final Predicate predicateIsNotRelance = cb.equal(joinCandSq.get(Candidature_.temRelanceCand), false);
/* Finalisation de la subquery */
subquery.where(predicateCampagne, predicateDtAnnul, predicateNotAccept, predicateIsNotRelance);
} else {
@@ -414,10 +414,10 @@ public Predicate toPredicate(final Root root, final Cri
/* Selection des typeDecisionCandidature, creation des clauses where :
* L'avis doit etre validé, un avis Favo et contenu dans la subquery */
- Predicate predicateValid = cb.equal(root.get(TypeDecisionCandidature_.temValidTypeDecCand), true);
- Predicate predicateAvis =
+ final Predicate predicateValid = cb.equal(root.get(TypeDecisionCandidature_.temValidTypeDecCand), true);
+ final Predicate predicateAvis =
cb.equal(root.get(TypeDecisionCandidature_.typeDecision).get(TypeDecision_.typeAvis), tableRefController.getTypeAvisFavorable());
- Predicate predicateSqMaxIds = cb.in(root.get(TypeDecisionCandidature_.idTypeDecCand)).value(subquery);
+ final Predicate predicateSqMaxIds = cb.in(root.get(TypeDecisionCandidature_.idTypeDecCand)).value(subquery);
/* Recherche avec ces clauses */
return cb.and(predicateValid, predicateAvis, predicateSqMaxIds);
@@ -433,20 +433,20 @@ public Predicate toPredicate(final Root root, final Cri
*/
public void desistAutoCandidature(final BatchHisto batchHisto) {
logger.debug("Lancement batch BATCH_DESIST_AUTO");
- Campagne campagne = campagneController.getCampagneActive();
+ final Campagne campagne = campagneController.getCampagneActive();
if (campagne == null) {
return;
}
/* Recuperation des candidatures a traiter */
// List listeTyDec = typeDecisionCandidatureRepository.findListFavoNotConfirmToDesist(campagne, true, tableRefController.getTypeAvisFavorable());
- List listeTyDec = findTypDecFavoNotAccept(campagne, true);
+ final List listeTyDec = findTypDecFavoNotAccept(campagne, true);
batchController.addDescription(batchHisto, "Lancement batch BATCH_DESIST_AUTO, " + listeTyDec.size() + " candidatures à analyser");
Integer i = 0;
Integer cpt = 0;
- for (TypeDecisionCandidature td : listeTyDec) {
- Candidature candidature = td.getCandidature();
- LocalDate dateConfirm = candidatureController.getDateConfirmCandidat(candidature);
+ for (final TypeDecisionCandidature td : listeTyDec) {
+ final Candidature candidature = td.getCandidature();
+ final LocalDate dateConfirm = candidatureController.getDateConfirmCandidat(candidature);
/* Vérification date non null et date avant aujourd'hui */
if (dateConfirm == null || dateConfirm.equals(LocalDate.now()) || dateConfirm.isAfter(LocalDate.now())) {
continue;
@@ -475,11 +475,11 @@ public void desistAutoCandidature(final BatchHisto batchHisto) {
* @param batchHisto
*/
public void relanceFavorableNotConfirm(final BatchHisto batchHisto) {
- Campagne campagne = campagneController.getCampagneActive();
+ final Campagne campagne = campagneController.getCampagneActive();
if (campagne == null) {
return;
}
- LocalDate dateConfirmCalc = LocalDate.now().plusDays(parametreController.getNbJourRelanceFavo());
+ final LocalDate dateConfirmCalc = LocalDate.now().plusDays(parametreController.getNbJourRelanceFavo());
if (dateConfirmCalc == null) {
return;
}
@@ -492,14 +492,14 @@ public void relanceFavorableNotConfirm(final BatchHisto batchHisto) {
* - leur dernier avis est validé
* - leur dernier avis est favorable **/
// List listeTyDec = typeDecisionCandidatureRepository.findListFavoNotConfirmToRelance(campagne, true, false, tableRefController.getTypeAvisFavorable());
- List listeTyDec = findTypDecFavoNotAccept(campagne, false);
+ final List listeTyDec = findTypDecFavoNotAccept(campagne, false);
batchController.addDescription(batchHisto, "Batch de relance, chargement des décisions, ok");
batchController.addDescription(batchHisto, "Batch de relance, " + listeTyDec.size() + " candidatures à analyser");
Integer i = 0;
Integer cpt = 0;
- for (TypeDecisionCandidature td : listeTyDec) {
- Candidature candidature = td.getCandidature();
- LocalDate dateConfirmCandidat = candidatureController.getDateConfirmCandidat(candidature);
+ for (final TypeDecisionCandidature td : listeTyDec) {
+ final Candidature candidature = td.getCandidature();
+ final LocalDate dateConfirmCandidat = candidatureController.getDateConfirmCandidat(candidature);
/* Vérification date non null et date égale à date calculée */
if (dateConfirmCandidat == null || !dateConfirmCandidat.equals(dateConfirmCalc)) {
diff --git a/src/main/java/fr/univlorraine/ecandidat/controllers/CandidaturePieceController.java b/src/main/java/fr/univlorraine/ecandidat/controllers/CandidaturePieceController.java
index 6ef7e08a..65578c5e 100644
--- a/src/main/java/fr/univlorraine/ecandidat/controllers/CandidaturePieceController.java
+++ b/src/main/java/fr/univlorraine/ecandidat/controllers/CandidaturePieceController.java
@@ -78,7 +78,7 @@
*/
@Component
public class CandidaturePieceController {
- private Logger logger = LoggerFactory.getLogger(CandidaturePieceController.class);
+ private final Logger logger = LoggerFactory.getLogger(CandidaturePieceController.class);
/* Injections */
@Resource
private transient ApplicationContext applicationContext;
@@ -127,13 +127,13 @@ public class CandidaturePieceController {
* @return la liste des pj d'une candidature
*/
public List getPjCandidature(final Candidature candidature) {
- List liste = new ArrayList<>();
- TypeStatutPiece statutAtt = tableRefController.getTypeStatutPieceAttente();
- TypeStatutPiece statutValide = tableRefController.getTypeStatutPieceValide();
- Boolean isDemat = candidature.getFormation().getTemDematForm();
+ final List liste = new ArrayList<>();
+ final TypeStatutPiece statutAtt = tableRefController.getTypeStatutPieceAttente();
+ final TypeStatutPiece statutValide = tableRefController.getTypeStatutPieceValide();
+ final Boolean isDemat = candidature.getFormation().getTemDematForm();
int i = 1;
- for (PieceJustif e : pieceJustifController.getPjForCandidature(candidature, true)) {
+ for (final PieceJustif e : pieceJustifController.getPjForCandidature(candidature, true)) {
liste.add(getPjPresentation(e, candidature, statutAtt, statutValide, i, isDemat));
i++;
}
@@ -155,8 +155,8 @@ private PjPresentation getPjPresentation(final PieceJustif pj,
final TypeStatutPiece statutValide,
final Integer order,
final Boolean isDemat) {
- String libPj = i18nController.getI18nTraduction(pj.getI18nLibPj());
- PjCand pjCand = getPjCandFromList(pj, candidature, isDemat);
+ final String libPj = i18nController.getI18nTraduction(pj.getI18nLibPj());
+ final PjCand pjCand = getPjCandFromList(pj, candidature, isDemat);
String libStatut = null;
String codStatut = null;
@@ -198,7 +198,7 @@ private PjPresentation getPjPresentation(final PieceJustif pj,
idCandidature = candidature.getIdCand();
}
}
- Boolean commun = pj.getTemCommunPj() && !pj.getTemUnicitePj();
+ final Boolean commun = pj.getTemCommunPj() && !pj.getTemUnicitePj();
return new PjPresentation(pj,
libPj,
fichier,
@@ -221,7 +221,7 @@ private PjPresentation getPjPresentation(final PieceJustif pj,
* @return Renvoi un fichier si il existe
*/
public PjCand getPjCandFromList(final PieceJustif piece, final Candidature candidature, final Boolean isDemat) {
- Optional pjCandOpt = candidature.getPjCands().stream().filter(e -> e.getId().getIdPj().equals(piece.getIdPj())).findAny();
+ final Optional pjCandOpt = candidature.getPjCands().stream().filter(e -> e.getId().getIdPj().equals(piece.getIdPj())).findAny();
if (pjCandOpt.isPresent()) {
return pjCandOpt.get();
}
@@ -231,7 +231,7 @@ public PjCand getPjCandFromList(final PieceJustif piece, final Candidature candi
// si on ne trouve pas et que la pièce est commune, on va chercher dans les
// autres candidatures
if (piece.getTemCommunPj() && !piece.getTemUnicitePj()) {
- List liste =
+ final List liste =
pjCandRepository.findByIdIdPjAndCandidatureCandidatIdCandidatAndCandidatureFormationTemDematFormOrderByDatModPjCandDesc(piece.getIdPj(),
candidature.getCandidat().getIdCandidat(),
true);
@@ -247,22 +247,23 @@ public PjCand getPjCandFromList(final PieceJustif piece, final Candidature candi
* @return la liste des formulaires d'une candidature
*/
public List getFormulaireCandidature(final Candidature candidature) {
- String numDossier = candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin();
- List liste = new ArrayList<>();
- TypeStatutPiece statutAT = tableRefController.getTypeStatutPieceAttente();
- TypeStatutPiece statutNC = tableRefController.getTypeStatutPieceNonConcerne();
- TypeStatutPiece statutTR = tableRefController.getTypeStatutPieceTransmis();
+ final String numDossier = candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin();
+ final List liste = new ArrayList<>();
+ final TypeStatutPiece statutAT = tableRefController.getTypeStatutPieceAttente();
+ final TypeStatutPiece statutNC = tableRefController.getTypeStatutPieceNonConcerne();
+ final TypeStatutPiece statutTR = tableRefController.getTypeStatutPieceTransmis();
- List listeFormulaireCand = candidature.getFormulaireCands();
- List listeFormulaireCandidat = candidature.getCandidat().getFormulaireCandidats();
+ final List listeFormulaireCand = candidature.getFormulaireCands();
+ final List listeFormulaireCandidat = candidature.getCandidat().getFormulaireCandidats();
formulaireController.getFormulaireForCandidature(candidature).forEach(e -> {
- String libForm = i18nController.getI18nTraduction(e.getI18nLibFormulaire());
+ final String libForm = i18nController.getI18nTraduction(e.getI18nLibFormulaire());
String urlForm = i18nController.getI18nTraduction(e.getI18nUrlFormulaire());
/* Possibilité d'ajout du numdossier dans l'url sous la forme ${numDossier} */
if (urlForm != null) {
urlForm = urlForm.replaceAll(ConstanteUtils.VAR_REGEX_FORM_NUM_DOSSIER, numDossier);
+ urlForm = urlForm.replaceAll(ConstanteUtils.VAR_REGEX_FORM_NUM_DOSSIER_OLD, numDossier);
}
String libStatut = null;
@@ -270,7 +271,7 @@ public List getFormulaireCandidature(final Candidature c
String reponses = null;
/* On recherche d'abord les réponses */
- FormulaireCandidat formulaireCandidat = getFormulaireCandidatFromList(e, listeFormulaireCandidat);
+ final FormulaireCandidat formulaireCandidat = getFormulaireCandidatFromList(e, listeFormulaireCandidat);
if (formulaireCandidat != null) {
codStatut = statutTR.getCodTypStatutPiece();
libStatut = i18nController.getI18nTraduction(statutTR.getI18nLibTypStatutPiece());
@@ -278,7 +279,7 @@ public List getFormulaireCandidature(final Candidature c
} else {
/* Si pas de réponse on recherche une ligne dans formulaireCand pour vérifier
* qu'il est concerné */
- FormulaireCand formulaireCand = getFormulaireCandFromList(e, listeFormulaireCand);
+ final FormulaireCand formulaireCand = getFormulaireCandFromList(e, listeFormulaireCand);
if (formulaireCand != null) {
codStatut = statutNC.getCodTypStatutPiece();
libStatut = i18nController.getI18nTraduction(statutNC.getI18nLibTypStatutPiece());
@@ -300,7 +301,7 @@ public List getFormulaireCandidature(final Candidature c
* @return recherche une reponse non concerné a un formulaire
*/
private FormulaireCand getFormulaireCandFromList(final Formulaire formulaire, final List listFormulaireCand) {
- Optional formulaireCandOpt =
+ final Optional formulaireCandOpt =
listFormulaireCand.stream().filter(e -> e.getId().getIdFormulaire().equals(formulaire.getIdFormulaire())).findAny();
if (formulaireCandOpt.isPresent()) {
return formulaireCandOpt.get();
@@ -315,7 +316,7 @@ private FormulaireCand getFormulaireCandFromList(final Formulaire formulaire, fi
* @return recherche une reponse a formulaire
*/
private FormulaireCandidat getFormulaireCandidatFromList(final Formulaire formulaire, final List listFormulaireCandidat) {
- Optional formulaireCandOpt = listFormulaireCandidat.stream()
+ final Optional formulaireCandOpt = listFormulaireCandidat.stream()
.filter(e -> e.getId().getIdFormulaireLimesurvey().equals(formulaire.getIdFormulaireLimesurvey()))
.sorted((e1, e2) -> (e2.getDatReponseFormulaireCandidat().compareTo(e1.getDatReponseFormulaireCandidat())))
.findFirst();
@@ -331,21 +332,22 @@ private FormulaireCandidat getFormulaireCandidatFromList(final Formulaire formul
* @param candidature
*/
public void relanceFormulaires(final List listeToRelance, final Candidature candidature) {
- ConfirmWindow confirmWindow = new ConfirmWindow(
+ final ConfirmWindow confirmWindow = new ConfirmWindow(
applicationContext.getMessage("formulaireComp.relance.window.msg", new String[]
{ String.valueOf(listeToRelance.size()) }, UI.getCurrent().getLocale()),
applicationContext.getMessage("formulaireComp.relance.window", null, UI.getCurrent().getLocale()));
confirmWindow.addBtnOuiListener(event -> {
- String codLangue = candidature.getCandidat().getLangue().getCodLangue();
- String numDossier = candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin();
+ final String codLangue = candidature.getCandidat().getLangue().getCodLangue();
+ final String numDossier = candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin();
- FormulaireMailBean mailBean = new FormulaireMailBean();
+ final FormulaireMailBean mailBean = new FormulaireMailBean();
listeToRelance.forEach(e -> {
- String libForm = i18nController.getI18nTraduction(e.getFormulaire().getI18nLibFormulaire(), codLangue);
+ final String libForm = i18nController.getI18nTraduction(e.getFormulaire().getI18nLibFormulaire(), codLangue);
String urlForm = i18nController.getI18nTraduction(e.getFormulaire().getI18nUrlFormulaire(), codLangue);
/* Possibilité d'ajout du numdossier dans l'url sous la forme ${numDossier} */
if (urlForm != null) {
urlForm = urlForm.replaceAll(ConstanteUtils.VAR_REGEX_FORM_NUM_DOSSIER, numDossier);
+ urlForm = urlForm.replaceAll(ConstanteUtils.VAR_REGEX_FORM_NUM_DOSSIER_OLD, numDossier);
}
mailBean.addFormulaire(libForm, urlForm);
});
@@ -384,7 +386,7 @@ public Boolean isOkToTransmettreCandidatureStatutDossier(final String codStatut,
* dossier
*/
public Boolean isOkToTransmettreCandidatureStatutPiece(final List listePj, final Boolean notification) {
- for (PjPresentation pj : listePj) {
+ for (final PjPresentation pj : listePj) {
if (pj.getCodStatut() == null) {
if (notification) {
Notification
@@ -471,7 +473,7 @@ public void transmettreCandidatureAfterDepot(final Candidature candidature,
* @param message
*/
private void transmettreCandidature(final Candidature candidature, final CandidatureListener listener, final String message) {
- ConfirmWindow confirmWindow =
+ final ConfirmWindow confirmWindow =
new ConfirmWindow(message, applicationContext.getMessage("candidature.validPJ.window.confirmTitle", null, UI.getCurrent().getLocale()));
confirmWindow.addBtnOuiListener(event -> {
candidature.setTypeStatut(tableRefController.getTypeStatutReceptionne());
@@ -479,7 +481,7 @@ private void transmettreCandidature(final Candidature candidature, final Candida
candidature.setDatModTypStatutCand(LocalDateTime.now());
candidature.setDatTransDossierCand(LocalDateTime.now());
- Candidature candidatureSave = candidatureRepository.save(candidature);
+ final Candidature candidatureSave = candidatureRepository.save(candidature);
mailController.sendMailByCod(candidature.getCandidat().getCompteMinima().getMailPersoCptMin(),
NomenclatureUtils.MAIL_STATUT_RE,
@@ -488,7 +490,7 @@ private void transmettreCandidature(final Candidature candidature, final Candida
candidature.getCandidat().getLangue().getCodLangue());
if (candidature.getFormation().getCommission().getTemAlertTransComm()) {
- mailController.sendMailByCod(candidature.getFormation().getCommission().getMailComm(),
+ mailController.sendMailByCod(candidature.getFormation().getCommission().getMailAlertComm(),
NomenclatureUtils.MAIL_COMMISSION_ALERT_TRANSMISSION,
null,
candidature,
@@ -557,14 +559,14 @@ public Boolean isPjModified(final PjPresentation pieceJustif, final Candidature
Boolean needToReload = false;
if (pieceJustif.getPJCommune()) {
- List listePjCand = pjCandRepository.findByIdIdPjAndCandidatureCandidatIdCandidatAndCandidatureFormationTemDematFormOrderByDatModPjCandDesc(
+ final List listePjCand = pjCandRepository.findByIdIdPjAndCandidatureCandidatIdCandidatAndCandidatureFormationTemDematFormOrderByDatModPjCandDesc(
pieceJustif.getPieceJustif().getIdPj(),
candidature.getCandidat().getIdCandidat(),
true);
PjCand pjCandFind = null;
if (listePjCand != null && listePjCand.size() > 0) {
// on cherche d'abord en priorité si la pièce est présente sur la candidature
- Optional pjCandOpt =
+ final Optional pjCandOpt =
listePjCand.stream().filter(e -> e.getCandidature().getIdCand().equals(pieceJustif.getIdCandidature())).findFirst();
if (pjCandOpt.isPresent()) {
pjCandFind = pjCandOpt.get();
@@ -608,8 +610,8 @@ else if (!pjCandFind.getDatModPjCand().equals(pieceJustif.getDatModification()))
} else {
// si pièce non commune, présente dans la fenetre mais absente en base
if (pieceJustif.getDatModification() != null) {
- PjCandPK pk = new PjCandPK(pieceJustif.getPieceJustif().getIdPj(), candidature.getIdCand());
- PjCand pjCand = pjCandRepository.findOne(pk);
+ final PjCandPK pk = new PjCandPK(pieceJustif.getPieceJustif().getIdPj(), candidature.getIdCand());
+ final PjCand pjCand = pjCandRepository.findOne(pk);
if (pjCand == null) {
logger.debug("Cas no4, pièce non commune mais supprimée");
@@ -624,7 +626,7 @@ else if (!pjCandFind.getDatModPjCand().equals(pieceJustif.getDatModification()))
if (showNotif) {
Notification.show(applicationContext.getMessage("pj.modified", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
}
- Candidature candidatureLoad = candidatureRepository.findOne(candidature.getIdCand());
+ final Candidature candidatureLoad = candidatureRepository.findOne(candidature.getIdCand());
listener.reloadAllPiece(getPjCandidature(candidatureLoad), candidatureLoad);
return true;
}
@@ -651,15 +653,15 @@ public void addFileToPieceJustificative(final PjPresentation pieceJustif, final
return;
}
- String user = userController.getCurrentNoDossierCptMinOrLogin();
+ final String user = userController.getCurrentNoDossierCptMinOrLogin();
- String cod = ConstanteUtils.TYPE_FICHIER_PJ_CAND + "_"
+ final String cod = ConstanteUtils.TYPE_FICHIER_PJ_CAND + "_"
+ candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin()
+ "_"
+ candidature.getIdCand()
+ "_"
+ pieceJustif.getPieceJustif().getIdPj();
- UploadWindow uw = new UploadWindow(cod, ConstanteUtils.TYPE_FICHIER_CANDIDAT, candidature, pieceJustif.getPJCommune(), false);
+ final UploadWindow uw = new UploadWindow(cod, ConstanteUtils.TYPE_FICHIER_CANDIDAT, candidature, pieceJustif.getPJCommune(), false);
uw.addUploadWindowListener(file -> {
if (file == null) {
return;
@@ -669,21 +671,21 @@ public void addFileToPieceJustificative(final PjPresentation pieceJustif, final
return;
}
- PjCandPK pk = new PjCandPK(pieceJustif.getPieceJustif().getIdPj(), pieceJustif.getIdCandidature());
+ 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());
}
- Fichier fichier = fileController.createFile(file, user, ConstanteUtils.TYPE_FICHIER_CANDIDAT);
+ 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 (FileException e) {
+ } catch (final FileException e) {
}
uw.close();
return;
@@ -693,13 +695,13 @@ public void addFileToPieceJustificative(final PjPresentation pieceJustif, final
pjCand.setUserModPjCand(user);
pjCand.setFichier(fichier);
- TypeStatutPiece statutTr = tableRefController.getTypeStatutPieceTransmis();
+ final TypeStatutPiece statutTr = tableRefController.getTypeStatutPieceTransmis();
pjCand.setTypeStatutPiece(statutTr);
pjCandRepository.save(pjCand);
// obligé de recharger l'objet car le datetime est arrondi :(
- PjCand pjCandSave = pjCandRepository.findOne(pk);
+ final PjCand pjCandSave = pjCandRepository.findOne(pk);
pieceJustif.setFilePj(fichier);
pieceJustif.setCodStatut(statutTr.getCodTypStatutPiece());
@@ -709,7 +711,7 @@ public void addFileToPieceJustificative(final PjPresentation pieceJustif, final
candidature.setUserModCand(user);
candidature.updatePjCand(pjCandSave);
candidature.setDatModCand(LocalDateTime.now());
- Candidature candidatureSave = candidatureRepository.save(candidature);
+ final Candidature candidatureSave = candidatureRepository.save(candidature);
listener.pjModified(pieceJustif, candidatureSave);
@@ -738,9 +740,9 @@ public void setIsConcernedPieceJustificative(final PjPresentation pieceJustif,
if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
return;
}
- String user = userController.getCurrentUserLogin();
+ final String user = userController.getCurrentUserLogin();
if (isConcerned) {
- ConfirmWindow confirmWindow =
+ final ConfirmWindow confirmWindow =
new ConfirmWindow(applicationContext.getMessage("pj.window.concerne", new Object[]
{ pieceJustif.getLibPj() }, UI.getCurrent().getLocale()),
applicationContext.getMessage("pj.window.conditionnel.title", null, UI.getCurrent().getLocale()));
@@ -756,14 +758,14 @@ public void setIsConcernedPieceJustificative(final PjPresentation pieceJustif,
PjCand pjCand = null;
if (pieceJustif.getPJCommune()) {
- List listePjCand =
+ final List listePjCand =
pjCandRepository.findByIdIdPjAndCandidatureCandidatIdCandidatAndCandidatureFormationTemDematFormOrderByDatModPjCandDesc(
pieceJustif.getPieceJustif().getIdPj(),
candidature.getCandidat().getIdCandidat(),
true);
if (listePjCand != null && listePjCand.size() > 0) {
// on cherche d'abord en priorité si la pièce est présente sur la candidature
- Optional pjCandOpt =
+ final Optional pjCandOpt =
listePjCand.stream().filter(e -> e.getCandidature().getIdCand().equals(pieceJustif.getIdCandidature())).findFirst();
if (pjCandOpt.isPresent()) {
pjCand = pjCandOpt.get();
@@ -772,7 +774,7 @@ public void setIsConcernedPieceJustificative(final PjPresentation pieceJustif,
}
}
} else {
- PjCandPK pk = new PjCandPK(pieceJustif.getPieceJustif().getIdPj(), candidature.getIdCand());
+ final PjCandPK pk = new PjCandPK(pieceJustif.getPieceJustif().getIdPj(), candidature.getIdCand());
pjCand = pjCandRepository.findOne(pk);
}
@@ -782,18 +784,18 @@ public void setIsConcernedPieceJustificative(final PjPresentation pieceJustif,
candidature.setDatModCand(LocalDateTime.now());
candidature.removePjCand(pjCand);
- TypeStatutPiece statutAtt = tableRefController.getTypeStatutPieceAttente();
+ final TypeStatutPiece statutAtt = tableRefController.getTypeStatutPieceAttente();
pieceJustif.setCodStatut(statutAtt.getCodTypStatutPiece());
pieceJustif.setLibStatut(i18nController.getI18nTraduction(statutAtt.getI18nLibTypStatutPiece()));
pieceJustif.setDatModification(null);
- Candidature candidatureSave = candidatureRepository.save(candidature);
+ final Candidature candidatureSave = candidatureRepository.save(candidature);
listener.pjModified(pieceJustif, candidatureSave);
}
});
UI.getCurrent().addWindow(confirmWindow);
} else {
- ConfirmWindow confirmWindow =
+ final ConfirmWindow confirmWindow =
new ConfirmWindow(applicationContext.getMessage("pj.window.nonConcerne", new Object[]
{ pieceJustif.getLibPj() }, UI.getCurrent().getLocale()),
applicationContext.getMessage("pj.window.conditionnel.title", null, UI.getCurrent().getLocale()));
@@ -807,16 +809,16 @@ public void setIsConcernedPieceJustificative(final PjPresentation pieceJustif,
}
PjCand pjCand = null;
- PjCandPK pk = new PjCandPK(pieceJustif.getPieceJustif().getIdPj(), candidature.getIdCand());
+ final PjCandPK pk = new PjCandPK(pieceJustif.getPieceJustif().getIdPj(), candidature.getIdCand());
if (pieceJustif.getPJCommune()) {
- List listePjCand =
+ final List listePjCand =
pjCandRepository.findByIdIdPjAndCandidatureCandidatIdCandidatAndCandidatureFormationTemDematFormOrderByDatModPjCandDesc(
pieceJustif.getPieceJustif().getIdPj(),
candidature.getCandidat().getIdCandidat(),
true);
if (listePjCand != null && listePjCand.size() > 0) {
// on cherche d'abord en priorité si la pièce est présente sur la candidature
- Optional pjCandOpt =
+ final Optional pjCandOpt =
listePjCand.stream().filter(e -> e.getCandidature().getIdCand().equals(pieceJustif.getIdCandidature())).findFirst();
if (pjCandOpt.isPresent()) {
pjCand = pjCandOpt.get();
@@ -835,7 +837,7 @@ public void setIsConcernedPieceJustificative(final PjPresentation pieceJustif,
pjCand.setUserModPjCand(user);
pjCand.setFichier(null);
- TypeStatutPiece statutNotConcern = tableRefController.getTypeStatutPieceNonConcerne();
+ final TypeStatutPiece statutNotConcern = tableRefController.getTypeStatutPieceNonConcerne();
pieceJustif.setCodStatut(statutNotConcern.getCodTypStatutPiece());
pieceJustif.setLibStatut(i18nController.getI18nTraduction(statutNotConcern.getI18nLibTypStatutPiece()));
@@ -843,7 +845,7 @@ public void setIsConcernedPieceJustificative(final PjPresentation pieceJustif,
pjCand = pjCandRepository.saveAndFlush(pjCand);
// obligé de recharger l'objet car le datetime est arrondi :(
- PjCand pjCandSave = pjCandRepository.findOne(pk);
+ final PjCand pjCandSave = pjCandRepository.findOne(pk);
pieceJustif.setFilePj(null);
pieceJustif.setCodStatut(statutNotConcern.getCodTypStatutPiece());
@@ -854,7 +856,7 @@ public void setIsConcernedPieceJustificative(final PjPresentation pieceJustif,
candidature.setUserModCand(user);
candidature.updatePjCand(pjCandSave);
candidature.setDatModCand(LocalDateTime.now());
- Candidature candidatureSave = candidatureRepository.save(candidature);
+ final Candidature candidatureSave = candidatureRepository.save(candidature);
listener.pjModified(pieceJustif, candidatureSave);
}
@@ -881,9 +883,9 @@ public void setIsConcernedFormulaire(final FormulairePresentation formulaire,
if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
return;
}
- String user = userController.getCurrentUserLogin();
+ final String user = userController.getCurrentUserLogin();
if (isConcerned) {
- ConfirmWindow confirmWindow =
+ final ConfirmWindow confirmWindow =
new ConfirmWindow(applicationContext.getMessage("formulaire.window.concerne", new Object[]
{ formulaire.getLibFormulaire() }, UI.getCurrent().getLocale()),
applicationContext.getMessage("formulaire.window.conditionnel.title", null, UI.getCurrent().getLocale()));
@@ -892,25 +894,25 @@ public void setIsConcernedFormulaire(final FormulairePresentation formulaire,
if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
return;
}
- FormulaireCandPK pk = new FormulaireCandPK(formulaire.getFormulaire().getIdFormulaire(), candidature.getIdCand());
- FormulaireCand formulaireCand = formulaireCandRepository.findOne(pk);
+ final FormulaireCandPK pk = new FormulaireCandPK(formulaire.getFormulaire().getIdFormulaire(), candidature.getIdCand());
+ final FormulaireCand formulaireCand = formulaireCandRepository.findOne(pk);
if (formulaireCand != null) {
formulaireCandRepository.delete(formulaireCand);
candidature.setUserModCand(user);
candidature.setDatModCand(LocalDateTime.now());
candidature.removeFormulaireCand(formulaireCand);
- TypeStatutPiece statutAtt = tableRefController.getTypeStatutPieceAttente();
+ final TypeStatutPiece statutAtt = tableRefController.getTypeStatutPieceAttente();
formulaire.setCodStatut(statutAtt.getCodTypStatutPiece());
formulaire.setLibStatut(i18nController.getI18nTraduction(statutAtt.getI18nLibTypStatutPiece()));
- Candidature candidatureSave = candidatureRepository.save(candidature);
+ final Candidature candidatureSave = candidatureRepository.save(candidature);
listener.formulaireModified(formulaire, candidatureSave);
}
});
UI.getCurrent().addWindow(confirmWindow);
} else {
- ConfirmWindow confirmWindow =
+ final ConfirmWindow confirmWindow =
new ConfirmWindow(applicationContext.getMessage("formulaire.window.nonConcerne", new Object[]
{ formulaire.getLibFormulaire() }, UI.getCurrent().getLocale()),
applicationContext.getMessage("formulaire.window.conditionnel.title", null, UI.getCurrent().getLocale()));
@@ -919,14 +921,14 @@ public void setIsConcernedFormulaire(final FormulairePresentation formulaire,
if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
return;
}
- FormulaireCandPK pk = new FormulaireCandPK(formulaire.getFormulaire().getIdFormulaire(), candidature.getIdCand());
+ final FormulaireCandPK pk = new FormulaireCandPK(formulaire.getFormulaire().getIdFormulaire(), candidature.getIdCand());
FormulaireCand formulaireCand = formulaireCandRepository.findOne(pk);
if (formulaireCand == null) {
formulaireCand = new FormulaireCand(pk, user, candidature, formulaire.getFormulaire());
formulaireCand.setUserModFormulaireCand(user);
- TypeStatutPiece statutNotConcern = tableRefController.getTypeStatutPieceNonConcerne();
+ final TypeStatutPiece statutNotConcern = tableRefController.getTypeStatutPieceNonConcerne();
formulaire.setCodStatut(statutNotConcern.getCodTypStatutPiece());
formulaire.setLibStatut(i18nController.getI18nTraduction(statutNotConcern.getI18nLibTypStatutPiece()));
formulaireCand = formulaireCandRepository.save(formulaireCand);
@@ -934,7 +936,7 @@ public void setIsConcernedFormulaire(final FormulairePresentation formulaire,
candidature.setUserModCand(user);
candidature.updateFormulaireCand(formulaireCand);
candidature.setDatModCand(LocalDateTime.now());
- Candidature candidatureSave = candidatureRepository.save(candidature);
+ final Candidature candidatureSave = candidatureRepository.save(candidature);
listener.formulaireModified(formulaire, candidatureSave);
}
@@ -964,8 +966,8 @@ public void deleteFileToPieceJustificative(final PjPresentation pieceJustif, fin
if (!fileController.isModeFileStockageOk(pieceJustif.getFilePj(), false)) {
return;
}
- Fichier fichier = pieceJustif.getFilePj();
- ConfirmWindow confirmWindow =
+ final Fichier fichier = pieceJustif.getFilePj();
+ final ConfirmWindow confirmWindow =
new ConfirmWindow(applicationContext.getMessage("file.window.confirmDelete", new Object[]
{ fichier.getNomFichier() }, UI.getCurrent().getLocale()),
applicationContext.getMessage("file.window.confirmDeleteTitle", null, UI.getCurrent().getLocale()));
@@ -977,13 +979,13 @@ public void deleteFileToPieceJustificative(final PjPresentation pieceJustif, fin
if (isPjModified(pieceJustif, candidature, true, listener)) {
return;
}
- PjCandPK pk = new PjCandPK(pieceJustif.getPieceJustif().getIdPj(), pieceJustif.getIdCandidature());
- PjCand pjCand = pjCandRepository.findOne(pk);
- String user = userController.getCurrentNoDossierCptMinOrLogin();
+ final PjCandPK pk = new PjCandPK(pieceJustif.getPieceJustif().getIdPj(), pieceJustif.getIdCandidature());
+ final PjCand pjCand = pjCandRepository.findOne(pk);
+ final String user = userController.getCurrentNoDossierCptMinOrLogin();
removeFileToPj(pjCand);
- TypeStatutPiece statutAtt = tableRefController.getTypeStatutPieceAttente();
+ final TypeStatutPiece statutAtt = tableRefController.getTypeStatutPieceAttente();
pieceJustif.setFilePj(null);
pieceJustif.setCodStatut(statutAtt.getCodTypStatutPiece());
@@ -995,7 +997,7 @@ public void deleteFileToPieceJustificative(final PjPresentation pieceJustif, fin
candidature.setDatModCand(LocalDateTime.now());
candidature.removePjCand(pjCand);
- Candidature candidatureSave = candidatureRepository.save(candidature);
+ final Candidature candidatureSave = candidatureRepository.save(candidature);
listener.pjModified(pieceJustif, candidatureSave);
});
@@ -1012,8 +1014,8 @@ public void deleteFileToPieceJustificative(final PjPresentation pieceJustif, fin
* @param pjCand
*/
public void removeFileToPj(final PjCand pjCand) {
- Fichier fichier = pjCand.getFichier();
- PjCandPK idPjCand = pjCand.getId();
+ final Fichier fichier = pjCand.getFichier();
+ final PjCandPK idPjCand = pjCand.getId();
pjCandRepository.delete(pjCand);
if (fichier != null) {
FichierFiabilisation fichierFiabilisation = new FichierFiabilisation(fichier);
@@ -1023,7 +1025,7 @@ public void removeFileToPj(final PjCand pjCand) {
try {
fileController.deleteFichier(fichier);
fichierFiabilisationRepository.delete(fichierFiabilisation);
- } catch (FileException e) {
+ } catch (final FileException e) {
}
}
}
@@ -1035,7 +1037,7 @@ public void removeFileToPj(final PjCand pjCand) {
* @throws FileException
*/
public void removeFileToPjManually(final PjCand pjCand) throws FileException {
- Fichier fichier = pjCand.getFichier();
+ final Fichier fichier = pjCand.getFichier();
pjCandRepository.delete(pjCand);
if (fichier != null) {
fichierRepository.delete(fichier);
@@ -1056,7 +1058,7 @@ public void changeStatutPj(final List listePj, final Candidature
return;
}
- CtrCandActionPjWindow window = new CtrCandActionPjWindow(listePj);
+ final CtrCandActionPjWindow window = new CtrCandActionPjWindow(listePj);
window.addChangeStatutPieceWindowListener((t, c) -> {
/* Verrou */
if (!lockCandidatController.getLockOrNotifyCandidature(candidature)) {
@@ -1064,16 +1066,16 @@ public void changeStatutPj(final List listePj, final Candidature
}
/* Verification de modif de piece */
- for (PjPresentation pj : listePj) {
+ for (final PjPresentation pj : listePj) {
if (isPjModified(pj, candidature, false, listener)) {
Notification.show(applicationContext.getMessage("pjs.modified", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return;
}
}
- String user = userController.getCurrentUserLogin();
+ final String user = userController.getCurrentUserLogin();
listePj.forEach(e -> {
- PjCandPK pk = new PjCandPK(e.getPieceJustif().getIdPj(), e.getIdCandidature());
+ final PjCandPK pk = new PjCandPK(e.getPieceJustif().getIdPj(), e.getIdCandidature());
PjCand pjCand = pjCandRepository.findOne(pk);
if (pjCand == null) {
@@ -1086,7 +1088,7 @@ public void changeStatutPj(final List listePj, final Candidature
pjCand.setUserModStatutPjCand(user);
pjCandRepository.save(pjCand);
- PjCand pjCandSave = pjCandRepository.findOne(pk);
+ final PjCand pjCandSave = pjCandRepository.findOne(pk);
candidature.updatePjCand(pjCandSave);
if (pjCandSave.getTypeStatutPiece() != null) {
@@ -1098,7 +1100,7 @@ public void changeStatutPj(final List listePj, final Candidature
e.setUserModStatut(getLibModStatut(pjCand.getUserModStatutPjCand(), pjCand.getDatModStatutPjCand()));
});
candidature.setUserModCand(user);
- Candidature candidatureSave = candidatureRepository.save(candidature);
+ final Candidature candidatureSave = candidatureRepository.save(candidature);
listener.pjsModified(listePj, candidatureSave);
});
UI.getCurrent().addWindow(window);
@@ -1128,28 +1130,28 @@ public void checkPJAdmin(final PjPresentation pj, final Candidature candidature,
return;
}
- PjCandPK pk = new PjCandPK(pj.getPieceJustif().getIdPj(), pj.getIdCandidature());
- PjCand pjCand = pjCandRepository.findOne(pk);
+ final PjCandPK pk = new PjCandPK(pj.getPieceJustif().getIdPj(), pj.getIdCandidature());
+ final PjCand pjCand = pjCandRepository.findOne(pk);
if (pjCand == null) {
Notification.show(applicationContext.getMessage("pj.admin.pjnotexist", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return;
}
- Fichier fichier = pjCand.getFichier();
- String user = userController.getCurrentNoDossierCptMinOrLogin();
+ final Fichier fichier = pjCand.getFichier();
+ final String user = userController.getCurrentNoDossierCptMinOrLogin();
if (fichier != null) {
try {
if (!fileController.testDemat(false)) {
return;
}
- Boolean exist = fileController.existFile(fichier);
+ final Boolean exist = fileController.existFile(fichier);
if (!exist) {
- ConfirmWindow confirmWindow =
+ final ConfirmWindow confirmWindow =
new ConfirmWindow(applicationContext.getMessage("pj.admin.window.filenotexist", null, UI.getCurrent().getLocale()),
applicationContext.getMessage("pj.admin.window.title", null, UI.getCurrent().getLocale()));
confirmWindow.addBtnOuiListener(event -> {
pjCandRepository.delete(pjCand);
fichierRepository.delete(fichier);
- TypeStatutPiece statutAtt = tableRefController.getTypeStatutPieceAttente();
+ final TypeStatutPiece statutAtt = tableRefController.getTypeStatutPieceAttente();
pj.setFilePj(null);
pj.setCodStatut(statutAtt.getCodTypStatutPiece());
@@ -1159,7 +1161,7 @@ public void checkPJAdmin(final PjPresentation pj, final Candidature candidature,
candidature.setUserModCand(user);
candidature.setDatModCand(LocalDateTime.now());
candidature.removePjCand(pjCand);
- Candidature candidatureSave = candidatureRepository.save(candidature);
+ final Candidature candidatureSave = candidatureRepository.save(candidature);
listener.pjModified(pj, candidatureSave);
Notification.show(applicationContext.getMessage("pj.admin.success", null, UI.getCurrent().getLocale()), Type.TRAY_NOTIFICATION);
@@ -1168,7 +1170,7 @@ public void checkPJAdmin(final PjPresentation pj, final Candidature candidature,
} else {
Notification.show(applicationContext.getMessage("pj.admin.error.fileexist", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
}
- } catch (FileException e) {
+ } catch (final FileException e) {
return;
}
}
@@ -1180,25 +1182,25 @@ public void checkPJAdmin(final PjPresentation pj, final Candidature candidature,
* @return un zip contenant tous les dossiers
*/
public OnDemandFile downlaodMultiplePjZip(final List liste, final PieceJustif pieceJustif) {
- ByteArrayInOutStream out = new ByteArrayInOutStream();
- ZipOutputStream zos = new ZipOutputStream(out);
+ final ByteArrayInOutStream out = new ByteArrayInOutStream();
+ final ZipOutputStream zos = new ZipOutputStream(out);
Boolean error = false;
int nbPj = 0;
- for (Candidature candidature : liste) {
- PjCand pj = getPjCandFromList(pieceJustif, candidature, true);
+ for (final Candidature candidature : liste) {
+ final PjCand pj = getPjCandFromList(pieceJustif, candidature, true);
if (pj == null) {
continue;
}
- Fichier file = pj.getFichier();
+ final Fichier file = pj.getFichier();
if (file == null) {
continue;
}
- InputStream is = fileController.getInputStreamFromFichier(file);
+ final InputStream is = fileController.getInputStreamFromFichier(file);
if (is == null) {
continue;
}
try {
- String fileName =
+ final String fileName =
applicationContext.getMessage("candidature.download.pj.file.name", new Object[]
{ candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin(),
candidature.getCandidat().getNomPatCandidat(),
@@ -1207,13 +1209,13 @@ public OnDemandFile downlaodMultiplePjZip(final List liste, final P
file.getNomFichier() }, UI.getCurrent().getLocale());
zos.putNextEntry(new ZipEntry(fileName));
int count;
- byte data[] = new byte[2048];
+ final byte data[] = new byte[2048];
while ((count = is.read(data, 0, 2048)) != -1) {
zos.write(data, 0, count);
}
zos.closeEntry();
nbPj++;
- } catch (IOException e) {
+ } catch (final IOException e) {
error = true;
logger.error("erreur a la génération d'un dossier lors du zip", e);
} finally {
@@ -1232,7 +1234,7 @@ public OnDemandFile downlaodMultiplePjZip(final List liste, final P
return null;
}
return new OnDemandFile(pieceJustif.getCodPj() + ".zip", out.getInputStream());
- } catch (IOException e) {
+ } catch (final IOException e) {
logger.error("erreur a la génération du zip", e);
Notification.show(applicationContext.getMessage("candidature.download.pj.error.zip", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return null;
diff --git a/src/main/java/fr/univlorraine/ecandidat/controllers/CommissionController.java b/src/main/java/fr/univlorraine/ecandidat/controllers/CommissionController.java
index 2d5d6192..1e17661e 100644
--- a/src/main/java/fr/univlorraine/ecandidat/controllers/CommissionController.java
+++ b/src/main/java/fr/univlorraine/ecandidat/controllers/CommissionController.java
@@ -495,9 +495,11 @@ public List getListPresentationWritable(final Commissio
int i = 1;
liste.add(getItemPresentation(i++, Commission_.mailComm.getName(), commission.getMailComm()));
liste.add(getItemPresentation(i++, Commission_.telComm.getName(), commission.getTelComm()));
+ liste.add(getItemPresentation(i++, Commission_.urlComm.getName(), commission.getUrlComm()));
liste.add(getItemPresentation(i++, Commission_.faxComm.getName(), commission.getFaxComm()));
liste.add(getItemPresentation(i++, Commission_.i18nCommentRetourComm.getName(), i18nController.getI18nTraduction(commission.getI18nCommentRetourComm())));
liste.add(getItemPresentation(i++, Commission_.adresse.getName(), (commission.getAdresse() != null) ? adresseController.getLibelleAdresse(commission.getAdresse(), " ") : ""));
+ liste.add(getItemPresentation(i++, Commission_.mailAlertComm.getName(), commission.getMailAlertComm()));
liste.add(getItemPresentation(i++, Commission_.temAlertPropComm.getName(), commission.getTemAlertPropComm()));
liste.add(getItemPresentation(i++, Commission_.temAlertAnnulComm.getName(), commission.getTemAlertAnnulComm()));
liste.add(getItemPresentation(i++, Commission_.temAlertTransComm.getName(), commission.getTemAlertTransComm()));
diff --git a/src/main/java/fr/univlorraine/ecandidat/controllers/FormationController.java b/src/main/java/fr/univlorraine/ecandidat/controllers/FormationController.java
index 4d0b1df9..fe0593ce 100644
--- a/src/main/java/fr/univlorraine/ecandidat/controllers/FormationController.java
+++ b/src/main/java/fr/univlorraine/ecandidat/controllers/FormationController.java
@@ -64,7 +64,6 @@
/**
* Gestion de l'entité formation
- *
* @author Kevin Hergalant
*/
@Component
@@ -106,12 +105,12 @@ public List getFormations() {
}
/**
- * @param securityCtrCand
- * @return liste des formations d'un centre de candidature
+ * @param securityCtrCand
+ * @return liste des formations d'un centre de candidature
*/
public List getFormationsByCtrCand(final SecurityCtrCandFonc securityCtrCand) {
- List listeFormation = formationRepository.findByCommissionCentreCandidatureIdCtrCand(securityCtrCand.getCtrCand().getIdCtrCand());
- Campagne campagne = campagneController.getCampagneActive();
+ final List listeFormation = formationRepository.findByCommissionCentreCandidatureIdCtrCand(securityCtrCand.getCtrCand().getIdCtrCand());
+ final Campagne campagne = campagneController.getCampagneActive();
if (securityCtrCand.getIsGestAllCommission()) {
return listeFormation.stream().map(e -> alimenteFormationData(campagne, e)).collect(Collectors.toList());
} else {
@@ -120,17 +119,17 @@ public List getFormationsByCtrCand(final SecurityCtrCandFonc security
}
/**
- * @param f
- * @return la formation alimentée en data supplémentaires
+ * @param f
+ * @return la formation alimentée en data supplémentaires
*/
public Formation alimenteFormationData(final Formation f) {
return alimenteFormationData(campagneController.getCampagneActive(), f);
}
/**
- * @param campagne
- * @param f
- * @return la formation alimentée en data supplémentaires
+ * @param campagne
+ * @param f
+ * @return la formation alimentée en data supplémentaires
*/
public Formation alimenteFormationData(final Campagne campagne, final Formation f) {
String code = null;
@@ -141,24 +140,24 @@ public Formation alimenteFormationData(final Campagne campagne, final Formation
if (campagne == null) {
code = ConstanteUtils.FLAG_BLUE;
} else {
- LocalDate dateDeb = f.getDatDebDepotForm();
- LocalDate dateFin = f.getDatDebDepotForm();
- LocalDate dateRetour = f.getDatRetourForm();
- LocalDate dateConfirm = f.getDatConfirmForm();
- LocalDate dateConfirmListComp = f.getDatConfirmListCompForm();
- LocalDate datePubli = f.getDatPubliForm();
- LocalDate dateJury = f.getDatJuryForm();
- LocalDate dateAnalyse = f.getDatAnalyseForm();
- LocalDate datePreselect = f.getPreselectDateForm();
+ final LocalDate dateDeb = f.getDatDebDepotForm();
+ final LocalDate dateFin = f.getDatDebDepotForm();
+ final LocalDate dateRetour = f.getDatRetourForm();
+ final LocalDate dateConfirm = f.getDatConfirmForm();
+ final LocalDate dateConfirmListComp = f.getDatConfirmListCompForm();
+ final LocalDate datePubli = f.getDatPubliForm();
+ final LocalDate dateJury = f.getDatJuryForm();
+ final LocalDate dateAnalyse = f.getDatAnalyseForm();
+ final LocalDate datePreselect = f.getPreselectDateForm();
if (!MethodUtils.isDateIncludeInInterval(dateDeb, campagne.getDatDebCamp(), campagne.getDatFinCamp())
- || !MethodUtils.isDateIncludeInInterval(dateFin, campagne.getDatDebCamp(), campagne.getDatFinCamp())
- || !MethodUtils.isDateIncludeInInterval(dateRetour, campagne.getDatDebCamp(), campagne.getDatFinCamp())
- || !MethodUtils.isDateIncludeInInterval(dateConfirm, campagne.getDatDebCamp(), campagne.getDatFinCamp())
- || !MethodUtils.isDateIncludeInInterval(dateConfirmListComp, campagne.getDatDebCamp(), campagne.getDatFinCamp())
- || !MethodUtils.isDateIncludeInInterval(datePubli, campagne.getDatDebCamp(), campagne.getDatFinCamp())
- || !MethodUtils.isDateIncludeInInterval(dateJury, campagne.getDatDebCamp(), campagne.getDatFinCamp())
- || !MethodUtils.isDateIncludeInInterval(dateAnalyse, campagne.getDatDebCamp(), campagne.getDatFinCamp())
- || !MethodUtils.isDateIncludeInInterval(datePreselect, campagne.getDatDebCamp(), campagne.getDatFinCamp())) {
+ || !MethodUtils.isDateIncludeInInterval(dateFin, campagne.getDatDebCamp(), campagne.getDatFinCamp())
+ || !MethodUtils.isDateIncludeInInterval(dateRetour, campagne.getDatDebCamp(), campagne.getDatFinCamp())
+ || !MethodUtils.isDateIncludeInInterval(dateConfirm, campagne.getDatDebCamp(), campagne.getDatFinCamp())
+ || !MethodUtils.isDateIncludeInInterval(dateConfirmListComp, campagne.getDatDebCamp(), campagne.getDatFinCamp())
+ || !MethodUtils.isDateIncludeInInterval(datePubli, campagne.getDatDebCamp(), campagne.getDatFinCamp())
+ || !MethodUtils.isDateIncludeInInterval(dateJury, campagne.getDatDebCamp(), campagne.getDatFinCamp())
+ || !MethodUtils.isDateIncludeInInterval(dateAnalyse, campagne.getDatDebCamp(), campagne.getDatFinCamp())
+ || !MethodUtils.isDateIncludeInInterval(datePreselect, campagne.getDatDebCamp(), campagne.getDatFinCamp())) {
code = ConstanteUtils.FLAG_YELLOW;
} else {
code = ConstanteUtils.FLAG_GREEEN;
@@ -166,20 +165,24 @@ public Formation alimenteFormationData(final Campagne campagne, final Formation
}
}
f.setFlagEtat(code);
- f.setDateVoeux(applicationContext.getMessage("formation.table.dateVoeux.label", new Object[] {
- formatterDate.format(f.getDatDebDepotForm()), formatterDate.format(f.getDatFinDepotForm())}, UI.getCurrent().getLocale()));
+ f.setDateVoeux(applicationContext.getMessage("formation.table.dateVoeux.label",
+ new Object[]
+ {
+ formatterDate.format(f.getDatDebDepotForm()),
+ formatterDate.format(f.getDatFinDepotForm()) },
+ UI.getCurrent().getLocale()));
return f;
}
/** Ouvre une fenêtre d'édition d'un nouveau formation. */
public void editNewFormation(final SecurityCtrCandFonc securityCtrCand) {
- CentreCandidature ctrCand = securityCtrCand.getCtrCand();
- Formation form = new Formation(userController.getCurrentUserLogin());
+ final CentreCandidature ctrCand = securityCtrCand.getCtrCand();
+ final Formation form = new Formation(userController.getCurrentUserLogin());
- I18n i18n = new I18n(i18nController.getTypeTraduction(NomenclatureUtils.TYP_TRAD_FORM_INFO_COMP));
+ final I18n i18n = new I18n(i18nController.getTypeTraduction(NomenclatureUtils.TYP_TRAD_FORM_INFO_COMP));
if (ctrCand.getInfoCompCtrCand() != null) {
- I18nTraduction trad = new I18nTraduction(ctrCand.getInfoCompCtrCand(), i18n, cacheController.getLangueDefault());
- List i18nTraductions = new ArrayList<>();
+ final I18nTraduction trad = new I18nTraduction(ctrCand.getInfoCompCtrCand(), i18n, cacheController.getLangueDefault());
+ final List i18nTraductions = new ArrayList<>();
i18nTraductions.add(trad);
i18n.setI18nTraductions(i18nTraductions);
}
@@ -204,7 +207,6 @@ public void editNewFormation(final SecurityCtrCandFonc securityCtrCand) {
/**
* Ouvre une fenêtre d'édition de formation.
- *
* @param formation
* @param securityCtrCand
*/
@@ -218,14 +220,13 @@ public void editFormation(final Formation formation, final SecurityCtrCandFonc s
if (formation.getI18nInfoCompForm() == null) {
formation.setI18nInfoCompForm(new I18n(i18nController.getTypeTraduction(NomenclatureUtils.TYP_TRAD_FORM_INFO_COMP)));
}
- CtrCandFormationWindow window = new CtrCandFormationWindow(formation, securityCtrCand);
+ final CtrCandFormationWindow window = new CtrCandFormationWindow(formation, securityCtrCand);
window.addCloseListener(e -> lockController.releaseLock(formation));
UI.getCurrent().addWindow(window);
}
/**
* Edite les pieces complémentaires d'une formation
- *
* @param formations
* @param ctrCand
*/
@@ -239,16 +240,16 @@ public void editPieceCompFormation(final List formations, final Centr
List pieceJustifs = new ArrayList<>();
List formulaires = new ArrayList<>();
if (formations.size() == 1) {
- Formation form = formations.get(0);
+ final Formation form = formations.get(0);
pieceJustifs = form.getPieceJustifs();
formulaires = form.getFormulaires();
} else {
/* On calcule les PJ et formulaires communs */
- Formation form = formations.get(0);
+ final Formation form = formations.get(0);
pieceJustifs = form.getPieceJustifs();
formulaires = form.getFormulaires();
- for (Formation formation : formations) {
+ for (final Formation formation : formations) {
if (pieceJustifs.size() != 0) {
pieceJustifs.retainAll(formation.getPieceJustifs());
}
@@ -261,20 +262,20 @@ public void editPieceCompFormation(final List formations, final Centr
}
}
- CtrCandPieceComplementaireWindow window = new CtrCandPieceComplementaireWindow(formations, ctrCand, pieceJustifs, formulaires);
+ final CtrCandPieceComplementaireWindow window = new CtrCandPieceComplementaireWindow(formations, ctrCand, pieceJustifs, formulaires);
window.addCloseListener(e -> unlockFormations(formations));
UI.getCurrent().addWindow(window);
}
/**
* Enregistre les PJ et formulaires d'une ou plusieurs formations
- *
* @param formations
* @param listPj
* @param listFormulaire
*/
- public void savePiecesComplementaires(final List formations, final List listPj,
- final List listFormulaire) {
+ public void savePiecesComplementaires(final List formations,
+ final List listPj,
+ final List listFormulaire) {
formations.forEach(form -> {
/* Verrou */
if (!lockController.getLockOrNotify(form, null)) {
@@ -289,7 +290,6 @@ public void savePiecesComplementaires(final List formations, final Li
/**
* Edition des dates en masse
- *
* @param formations
* @param ctrCand
*/
@@ -298,9 +298,9 @@ public void editDates(final List formations, final CentreCandidature
unlockFormations(formations);
return;
}
- Formation form = new Formation();
+ final Formation form = new Formation();
if (formations.size() == 1) {
- Formation oneForm = formations.get(0);
+ final Formation oneForm = formations.get(0);
form.setTesForm(oneForm.getTesForm());
form.setDatConfirmForm(oneForm.getDatConfirmForm());
form.setDatConfirmListCompForm(oneForm.getDatConfirmListCompForm());
@@ -321,14 +321,13 @@ public void editDates(final List formations, final CentreCandidature
form.setDatPubliForm(ctrCand.getDatPubliCtrCand());
form.setDatRetourForm(ctrCand.getDatRetourCtrCand());
}
- CtrCandFormationDatesWindow window = new CtrCandFormationDatesWindow(form, formations);
+ final CtrCandFormationDatesWindow window = new CtrCandFormationDatesWindow(form, formations);
window.addCloseListener(e -> unlockFormations(formations));
UI.getCurrent().addWindow(window);
}
/**
* Enregistre les dates des formations en masse
- *
* @param formDate
* @param formations
*/
@@ -343,16 +342,19 @@ public void saveDatesFormation(final Formation formDate, final List f
form.setDatJuryForm(formDate.getDatJuryForm());
form.setDatPubliForm(formDate.getDatPubliForm());
form.setDatRetourForm(formDate.getDatRetourForm());
+ form.setDelaiConfirmForm(formDate.getDelaiConfirmForm());
+ form.setDelaiConfirmListCompForm(formDate.getDelaiConfirmListCompForm());
+
saveFormation(form);
});
}
/**
- * @param formations
- * @return true si une formation est lockée
+ * @param formations
+ * @return true si une formation est lockée
*/
private Boolean checkLockFormations(final List formations) {
- for (Formation f : formations) {
+ for (final Formation f : formations) {
if (!lockController.getLockOrNotify(f, null)) {
return false;
}
@@ -362,18 +364,16 @@ private Boolean checkLockFormations(final List formations) {
/**
* Unlock la liste de formations
- *
* @param formations
*/
private void unlockFormations(final List formations) {
- for (Formation f : formations) {
+ for (final Formation f : formations) {
lockController.releaseLock(f);
}
}
/**
* Enregistre un formation
- *
* @param formation
*/
public void saveFormation(Formation formation) {
@@ -385,7 +385,7 @@ public void saveFormation(Formation formation) {
}
formation.setUserModForm(userController.getCurrentUserLogin());
/* Pour les i18n nullable, attention a les supprimer si besoin */
- Integer idI18n = i18nController.getIdI18nNullable(formation.getI18nInfoCompForm());
+ final Integer idI18n = i18nController.getIdI18nNullable(formation.getI18nInfoCompForm());
formation.setI18nInfoCompForm(i18nController.saveI18nNullable(formation.getI18nInfoCompForm()));
formation = formationRepository.saveAndFlush(formation);
if (formation.getI18nInfoCompForm() == null && idI18n != null) {
@@ -402,14 +402,13 @@ public void saveFormation(Formation formation) {
/**
* Supprime une formation
- *
* @param formation
*/
public void deleteFormation(final Formation formation) {
Assert.notNull(formation, applicationContext.getMessage("assert.notNull", null, UI.getCurrent().getLocale()));
if (candidatureRepository.countByFormation(formation) > 0) {
- Notification.show(applicationContext.getMessage("formation.error.delete", new Object[] {Candidature.class.getSimpleName()}, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
+ Notification.show(applicationContext.getMessage("formation.error.delete", new Object[] { Candidature.class.getSimpleName() }, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return;
}
@@ -418,8 +417,11 @@ public void deleteFormation(final Formation formation) {
return;
}
- ConfirmWindow confirmWindow = new ConfirmWindow(applicationContext.getMessage("formation.window.confirmDelete", new Object[] {
- formation.getCodForm()}, UI.getCurrent().getLocale()), applicationContext.getMessage("formation.window.confirmDeleteTitle", null, UI.getCurrent().getLocale()));
+ final ConfirmWindow confirmWindow = new ConfirmWindow(applicationContext.getMessage("formation.window.confirmDelete",
+ new Object[]
+ {
+ formation.getCodForm() },
+ UI.getCurrent().getLocale()), applicationContext.getMessage("formation.window.confirmDeleteTitle", null, UI.getCurrent().getLocale()));
confirmWindow.addBtnOuiListener(e -> {
/* Contrôle que le client courant possède toujours le lock */
if (lockController.getLockOrNotify(formation, null)) {
@@ -438,13 +440,12 @@ public void deleteFormation(final Formation formation) {
/**
* Verifie l'unicité du code
- *
- * @param cod
- * @param id
- * @return true si le code est unique
+ * @param cod
+ * @param id
+ * @return true si le code est unique
*/
public Boolean isCodFormUnique(final String cod, final Integer id) {
- Formation form = formationRepository.findByCodForm(cod);
+ final Formation form = formationRepository.findByCodForm(cod);
if (form == null) {
return true;
} else {
@@ -456,13 +457,13 @@ public Boolean isCodFormUnique(final String cod, final Integer id) {
}
/**
- * @param search
- * @return la liste des VET d'un CGE et d'une recherche
+ * @param search
+ * @return la liste des VET d'un CGE et d'une recherche
* @throws SiScolException
*/
public List getVetByCGE(final String search) throws SiScolException {
if (siScolService.isImplementationApogee()) {
- SecurityCentreCandidature ctrCand = userController.getCentreCandidature();
+ final SecurityCentreCandidature ctrCand = userController.getCentreCandidature();
if (ctrCand != null) {
if (ctrCand.getIsAdmin()) {
return siScolService.getListFormation(null, search);
@@ -477,9 +478,9 @@ public List getVetByCGE(final String search) throws SiScolException {
}
/**
- * @param codEtpVet
- * @param codVrsVet
- * @return une liste de diplome grace a une vet
+ * @param codEtpVet
+ * @param codVrsVet
+ * @return une liste de diplome grace a une vet
* @throws SiScolException
*/
public List getDiplomeByVETs(final String codEtpVet, final String codVrsVet) throws SiScolException {
@@ -490,8 +491,8 @@ public List getDiplomeByVETs(final String codEtpVet, final String codVr
}
/**
- * @param formation
- * @return true si l'utilisateur a le droit de voir la formation
+ * @param formation
+ * @return true si l'utilisateur a le droit de voir la formation
*/
public Boolean hasRighToSeeFormation(final Formation formation, final SecurityCtrCandFonc securityCtrCand) {
if (securityCtrCand == null || securityCtrCand.getCtrCand() == null) {
@@ -505,9 +506,9 @@ public Boolean hasRighToSeeFormation(final Formation formation, final SecurityCt
}
/**
- * @param liste
- * liste de formations
- * @return le fichier
+ * @param liste
+ * liste de formations
+ * @return le fichier
*/
public OnDemandFile generateExport(final List liste, final SecurityCtrCandFonc ctrCand) {
if (liste == null || liste.size() == 0) {
@@ -536,7 +537,7 @@ public OnDemandFile generateExport(final List liste, final SecurityCt
e.setInfoCompFormStr(infosComp);
});
- Map beans = new HashMap<>();
+ final Map beans = new HashMap<>();
beans.put("formations", liste);
String libelle = "";
@@ -544,25 +545,34 @@ public OnDemandFile generateExport(final List liste, final SecurityCt
libelle = ctrCand.getCtrCand().getLibCtrCand() + " (" + ctrCand.getCtrCand().getCodCtrCand() + ")";
}
- String libFile = applicationContext.getMessage("formation.export.nom.fichier", new Object[] {libelle,
- DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss").format(LocalDateTime.now())}, UI.getCurrent().getLocale());
+ final String libFile = applicationContext.getMessage("formation.export.nom.fichier",
+ new Object[]
+ { libelle,
+ DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss").format(LocalDateTime.now()) },
+ UI.getCurrent().getLocale());
return exportController.generateXlsxExport(beans, "formations_template", libFile);
}
/**
- * @param datConfirm
- * @param datConfirmListComp
- * @param datDebDepot
- * @param datAnalyse
- * @param datFinDepo
- * @param datJury
- * @param datPubli
- * @param datRetour
- * @return un eventuel text d'erreur
+ * @param datConfirm
+ * @param datConfirmListComp
+ * @param datDebDepot
+ * @param datAnalyse
+ * @param datFinDepo
+ * @param datJury
+ * @param datPubli
+ * @param datRetour
+ * @return un eventuel text d'erreur
*/
- public String getTxtErrorEditDate(final Date datConfirm, final Date datConfirmListComp, final Date datDebDepot, final Date datAnalyse, final Date datFinDepo, final Date datJury,
- final Date datPubli, final Date datRetour) {
+ public String getTxtErrorEditDate(final Date datConfirm,
+ final Date datConfirmListComp,
+ final Date datDebDepot,
+ final Date datAnalyse,
+ final Date datFinDepo,
+ final Date datJury,
+ final Date datPubli,
+ final Date datRetour) {
String txtError = "";
/* Date de fin de dépôt des voeux >= Date de début de dépôt des voeux */
if (datFinDepo.before(datDebDepot)) {
@@ -600,16 +610,12 @@ public String getTxtErrorEditDate(final Date datConfirm, final Date datConfirmLi
if (datPubli != null && datConfirm.before(datPubli)) {
txtError = txtError + getErrorMessageDate(txtError, Formation_.datConfirmForm.getName(), Formation_.datPubliForm.getName());
}
- /*
- * Date limite de confirmation >= Date de jury
- **/
+ /* Date limite de confirmation >= Date de jury **/
if (datJury != null && datConfirm.before(datJury)) {
txtError = txtError + getErrorMessageDate(txtError, Formation_.datConfirmForm.getName(), Formation_.datJuryForm.getName());
}
- /*
- * Date limite de confirmation >= Date de publication des résultats
- **/
+ /* Date limite de confirmation >= Date de publication des résultats **/
if (datConfirm.before(datRetour)) {
txtError = txtError + getErrorMessageDate(txtError, Formation_.datConfirmForm.getName(), Formation_.datRetourForm.getName());
}
@@ -620,23 +626,17 @@ public String getTxtErrorEditDate(final Date datConfirm, final Date datConfirmLi
if (datPubli != null && datConfirmListComp.before(datPubli)) {
txtError = txtError + getErrorMessageDate(txtError, Formation_.datConfirmListCompForm.getName(), Formation_.datPubliForm.getName());
}
- /*
- * Date limite de confirmation liste comp >= Date de jury
- **/
+ /* Date limite de confirmation liste comp >= Date de jury **/
if (datJury != null && datConfirmListComp.before(datJury)) {
txtError = txtError + getErrorMessageDate(txtError, Formation_.datConfirmListCompForm.getName(), Formation_.datJuryForm.getName());
}
- /*
- * Date limite de confirmation liste comp >= Date de publication des résultats
- **/
+ /* Date limite de confirmation liste comp >= Date de publication des résultats **/
if (datConfirmListComp.before(datRetour)) {
txtError = txtError + getErrorMessageDate(txtError, Formation_.datConfirmListCompForm.getName(), Formation_.datRetourForm.getName());
}
- /*
- * Date limite de confirmation liste comp >= Date de confirmation
- **/
+ /* Date limite de confirmation liste comp >= Date de confirmation **/
if (datConfirm != null && datConfirmListComp.before(datConfirm)) {
txtError = txtError + getErrorMessageDate(txtError, Formation_.datConfirmListCompForm.getName(), Formation_.datConfirmForm.getName());
}
@@ -646,9 +646,9 @@ public String getTxtErrorEditDate(final Date datConfirm, final Date datConfirmLi
}
/**
- * @param txt
- * @param libDate
- * @param libDateToCompare
+ * @param txt
+ * @param libDate
+ * @param libDateToCompare
* @return
*/
private String getErrorMessageDate(final String txt, final String libDate, final String libDateToCompare) {
@@ -657,8 +657,11 @@ private String getErrorMessageDate(final String txt, final String libDate, final
txtRet = "
";
}
- return txtRet = txtRet + applicationContext.getMessage("formation.table.dat.error", new Object[] {
+ return txtRet = txtRet + applicationContext.getMessage("formation.table.dat.error",
+ new Object[]
+ {
applicationContext.getMessage("formation.table." + libDate, null, UI.getCurrent().getLocale()),
- applicationContext.getMessage("formation.table." + libDateToCompare, null, UI.getCurrent().getLocale())}, UI.getCurrent().getLocale());
+ applicationContext.getMessage("formation.table." + libDateToCompare, null, UI.getCurrent().getLocale()) },
+ UI.getCurrent().getLocale());
}
}
diff --git a/src/main/java/fr/univlorraine/ecandidat/controllers/FormulaireController.java b/src/main/java/fr/univlorraine/ecandidat/controllers/FormulaireController.java
index 6ae24a89..58c92cc7 100644
--- a/src/main/java/fr/univlorraine/ecandidat/controllers/FormulaireController.java
+++ b/src/main/java/fr/univlorraine/ecandidat/controllers/FormulaireController.java
@@ -62,12 +62,11 @@
/**
* Gestion de l'entité formulaire
- *
* @author Kevin Hergalant
*/
@Component
public class FormulaireController {
- private Logger logger = LoggerFactory.getLogger(FormulaireController.class);
+ private final Logger logger = LoggerFactory.getLogger(FormulaireController.class);
/* Injections */
@Resource
@@ -106,13 +105,13 @@ public List getFormulairesEnService() {
}
/**
- * @param cand
- * @return la liste des formulaires à afficher pour une candidature
- * Tout les commune de la scol + tout les commune du ctr + tout les formulaires de la formation + les formulaires effacées
+ * @param cand
+ * @return la liste des formulaires à afficher pour une candidature
+ * Tout les commune de la scol + tout les commune du ctr + tout les formulaires de la formation + les formulaires effacées
*/
public List getFormulaireForCandidature(final Candidature cand) {
- Formation formation = cand.getFormation();
- List liste = new ArrayList<>();
+ final Formation formation = cand.getFormation();
+ final List liste = new ArrayList<>();
liste.addAll(getFormulairesByCtrCandEnService(null, true));
liste.addAll(getFormulairesByCtrCandEnService(formation.getCommission().getCentreCandidature().getIdCtrCand(), true));
liste.addAll(formation.getFormulaires().stream().filter(e -> e.getTesFormulaire()).collect(Collectors.toList()));
@@ -124,18 +123,17 @@ public List getFormulaireForCandidature(final Candidature cand) {
/**
* Recherche les formulaires d'un centre de candidatures
- *
- * @param idCtrCand
- * @return les formulaires d'un centre de candidatures
+ * @param idCtrCand
+ * @return les formulaires d'un centre de candidatures
*/
public List getFormulairesByCtrCand(final Integer idCtrCand) {
return formulaireRepository.findByCentreCandidatureIdCtrCand(idCtrCand);
}
/**
- * @param idCtrCand
- * @param commun
- * @return les formulaires d'un centre de candidatures en service et commun ou non
+ * @param idCtrCand
+ * @param commun
+ * @return les formulaires d'un centre de candidatures en service et commun ou non
*/
private List getFormulairesByCtrCandEnService(final Integer idCtrCand, final Boolean commun) {
return formulaireRepository.findByCentreCandidatureIdCtrCandAndTesFormulaireAndTemCommunFormulaire(idCtrCand, true, commun);
@@ -149,23 +147,22 @@ public List getFormulairesCommunScolEnService() {
/**
* Renvoie la liste des formulaires pour un ctrCand +
* scol
- *
- * @param idCtrCand
- * @return les formulaires et propre au ctr et commun a tout l'etablissement
+ * @param idCtrCand
+ * @return les formulaires et propre au ctr et commun a tout l'etablissement
*/
public List getFormulairesByCtrCandAndScolCentral(final Integer idCtrCand) {
- List liste = new ArrayList<>();
+ final List liste = new ArrayList<>();
liste.addAll(getFormulairesByCtrCandEnService(null, false));
liste.addAll(getFormulairesByCtrCandEnService(idCtrCand, false));
return liste;
}
/**
- * @param idCtrCand
- * @return la liste des formulaires en service et commun
+ * @param idCtrCand
+ * @return la liste des formulaires en service et commun
*/
public List getFormulairesCommunCtrCandEnService(final Integer idCtrCand) {
- List liste = new ArrayList<>();
+ final List liste = new ArrayList<>();
liste.addAll(formulaireRepository.findByCentreCandidatureIdCtrCandAndTesFormulaireAndTemCommunFormulaire(null, true, true));
liste.addAll(formulaireRepository.findByCentreCandidatureIdCtrCandAndTesFormulaireAndTemCommunFormulaire(idCtrCand, true, true));
return liste;
@@ -173,11 +170,10 @@ public List getFormulairesCommunCtrCandEnService(final Integer idCtr
/**
* Ouvre une fenêtre d'édition d'un nouveau formulaire.
- *
* @param ctrCand
*/
public void editNewFormulaire(final CentreCandidature ctrCand) {
- Formulaire formulaire = new Formulaire(userController.getCurrentUserLogin());
+ final Formulaire formulaire = new Formulaire(userController.getCurrentUserLogin());
formulaire.setI18nLibFormulaire(new I18n(i18nController.getTypeTraduction(NomenclatureUtils.TYP_TRAD_FORM_LIB)));
formulaire.setI18nUrlFormulaire(new I18n(i18nController.getTypeTraduction(NomenclatureUtils.TYP_TRAD_FORM_URL)));
formulaire.setCentreCandidature(ctrCand);
@@ -186,7 +182,6 @@ public void editNewFormulaire(final CentreCandidature ctrCand) {
/**
* Ouvre une fenêtre d'édition de formulaire.
- *
* @param formulaire
*/
public void editFormulaire(final Formulaire formulaire) {
@@ -197,14 +192,13 @@ public void editFormulaire(final Formulaire formulaire) {
return;
}
- FormulaireWindow window = new FormulaireWindow(formulaire);
+ final FormulaireWindow window = new FormulaireWindow(formulaire);
window.addCloseListener(e -> lockController.releaseLock(formulaire));
UI.getCurrent().addWindow(window);
}
/**
* Enregistre un formulaire
- *
* @param formulaire
*/
public void saveFormulaire(Formulaire formulaire) {
@@ -224,14 +218,13 @@ public void saveFormulaire(Formulaire formulaire) {
/**
* Supprime une formulaire
- *
* @param formulaire
*/
public void deleteFormulaire(final Formulaire formulaire) {
Assert.notNull(formulaire, applicationContext.getMessage("assert.notNull", null, UI.getCurrent().getLocale()));
if (formulaireCandRepository.countByFormulaire(formulaire) > 0) {
- Notification.show(applicationContext.getMessage("formulaire.error.delete", new Object[] {FormulaireCand.class.getSimpleName()}, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
+ Notification.show(applicationContext.getMessage("formulaire.error.delete", new Object[] { FormulaireCand.class.getSimpleName() }, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return;
}
@@ -240,8 +233,8 @@ public void deleteFormulaire(final Formulaire formulaire) {
return;
}
- ConfirmWindow confirmWindow = new ConfirmWindow(applicationContext.getMessage("motivAvis.window.confirmDelete", new Object[] {formulaire.getCodFormulaire()}, UI.getCurrent().getLocale()),
- applicationContext.getMessage("motivAvis.window.confirmDeleteTitle", null, UI.getCurrent().getLocale()));
+ final ConfirmWindow confirmWindow = new ConfirmWindow(applicationContext.getMessage("motivAvis.window.confirmDelete", new Object[] { formulaire.getCodFormulaire() }, UI.getCurrent().getLocale()),
+ applicationContext.getMessage("motivAvis.window.confirmDeleteTitle", null, UI.getCurrent().getLocale()));
confirmWindow.addBtnOuiListener(e -> {
/* Contrôle que le client courant possède toujours le lock */
if (lockController.getLockOrNotify(formulaire, null)) {
@@ -259,19 +252,18 @@ public void deleteFormulaire(final Formulaire formulaire) {
/**
* Verifie l'unicité du code
- *
- * @param cod
- * @param id
- * @return true si le code est unique
+ * @param cod
+ * @param id
+ * @return true si le code est unique
*/
public Boolean isCodFormUnique(final String cod, final String idLimeSurveyStr, final Integer id) {
Integer idLimeSurvey = -1;
try {
idLimeSurvey = Integer.valueOf(idLimeSurveyStr);
- } catch (NumberFormatException e) {
+ } catch (final NumberFormatException e) {
}
- List form = formulaireRepository.findByCodFormulaireOrIdFormulaireLimesurvey(cod, idLimeSurvey);
+ final List form = formulaireRepository.findByCodFormulaireOrIdFormulaireLimesurvey(cod, idLimeSurvey);
if (form.size() == 0) {
return true;
} else if (form.size() == 1 && form.get(0).getIdFormulaire().equals(id)) {
@@ -282,7 +274,7 @@ public Boolean isCodFormUnique(final String cod, final String idLimeSurveyStr, f
/** Lance le batch de synchro LimeSurvey */
public void launchBatchSyncLimeSurvey() {
- List listeLangue = new ArrayList<>(cacheController.getLangueEnServiceWithoutDefault());
+ final List listeLangue = new ArrayList<>(cacheController.getLangueEnServiceWithoutDefault());
listeLangue.add(cacheController.getLangueDefault());
// on parcourt la liste des idLimeSurvey distinct et on exporte les réponse pour chaque langue en service
@@ -293,28 +285,29 @@ public void launchBatchSyncLimeSurvey() {
/**
* Synchronise un formulaire
- *
* @param idFormulaireLimeSurvey
*/
public void syncSurvey(final Integer idFormulaireLimeSurvey) {
- String codLangue = null;
+ logger.debug("Synchronisation formulaire " + idFormulaireLimeSurvey);
+ final String codLangue = null;
+
try {
/* On recherche les réponses du formulaire que l'on dedoublonne par rapport à la date de reponse */
- for (SurveyReponse reponse : getListeReponseDedoublonne(limeSurveyRest.exportResponse(idFormulaireLimeSurvey, codLangue))) {
+ for (final SurveyReponse reponse : getListeReponseDedoublonne(limeSurveyRest.exportResponse(idFormulaireLimeSurvey, codLangue))) {
if (reponse.getNumDossier() == null) {
continue;
}
/* Recup des info du candidat */
- CompteMinima cptMin = candidatController.searchCptMinByNumDossier(reponse.getNumDossier());
+ final CompteMinima cptMin = candidatController.searchCptMinByNumDossier(reponse.getNumDossier());
if (cptMin == null || cptMin.getCandidat() == null) {
continue;
}
- Candidat candidat = cptMin.getCandidat();
- FormulaireCandidatPK pk = new FormulaireCandidatPK(candidat.getIdCandidat(), idFormulaireLimeSurvey);
+ final Candidat candidat = cptMin.getCandidat();
+ final FormulaireCandidatPK pk = new FormulaireCandidatPK(candidat.getIdCandidat(), idFormulaireLimeSurvey);
LocalDateTime timeReponse;
try {
timeReponse = LocalDateTime.parse(reponse.getSubmitdate(), formatterDateTimeWS);
- } catch (Exception e) {
+ } catch (final Exception e) {
timeReponse = LocalDateTime.now();
}
@@ -326,33 +319,35 @@ public void syncSurvey(final Integer idFormulaireLimeSurvey) {
formulaireCandidat.setCandidat(candidat);
formulaireCandidat.setReponsesFormulaireCandidat(getTextReponseSurvey(reponse.getMapReponses()));
formulaireCandidat.setDatReponseFormulaireCandidat(timeReponse);
+ logger.debug("Enr. reponse formulaire : " + formulaireCandidat);
formulaireCandidatRepository.save(formulaireCandidat);
} else if (timeReponse.isAfter(formulaireCandidat.getDatReponseFormulaireCandidat())) {
formulaireCandidat.setReponsesFormulaireCandidat(getTextReponseSurvey(reponse.getMapReponses()));
formulaireCandidat.setDatReponseFormulaireCandidat(timeReponse);
+ logger.debug("Enr. reponse formulaire : " + formulaireCandidat);
formulaireCandidatRepository.save(formulaireCandidat);
}
}
- } catch (Exception e) {
+ } catch (final Exception e) {
logger.error("Erreur WebService LimeSurvey (idFormulaireLimeSurvey=" + idFormulaireLimeSurvey + ")", e);
return;
}
}
/**
- * @param listeReponse
- * @return la liste dedoublonne de réponse avec la réponse max
+ * @param listeReponse
+ * @return la liste dedoublonne de réponse avec la réponse max
*/
private List getListeReponseDedoublonne(final List listeReponse) {
if (listeReponse == null) {
return new ArrayList<>();
}
- Map mapReponse = new HashMap<>();
+ final Map mapReponse = new HashMap<>();
listeReponse.forEach(e -> {
if (e.getNumDossier() == null || e.getSubmitdate() == null) {
return;
}
- SurveyReponse rep = mapReponse.get(e.getNumDossier());
+ final SurveyReponse rep = mapReponse.get(e.getNumDossier());
if (rep == null || e.getSubmitdate().compareTo(rep.getSubmitdate()) > 0) {
mapReponse.put(e.getNumDossier(), e);
}
@@ -361,21 +356,21 @@ private List getListeReponseDedoublonne(final List
}
/**
- * @param mapReponses
- * @return les réponses formatées
+ * @param mapReponses
+ * @return les réponses formatées
*/
private String getTextReponseSurvey(final Map mapReponses) {
String txtReponse = null;
if (mapReponses == null) {
return txtReponse;
}
- /*Nettoyage réponses ignorées*/
+ /* Nettoyage réponses ignorées */
ConstanteUtils.LIME_SURVEY_FIELD_TO_IGNORE.forEach(e -> mapReponses.remove(e));
if (mapReponses.size() == 0) {
return txtReponse;
}
- for (Entry entry : mapReponses.entrySet()) {
+ for (final Entry entry : mapReponses.entrySet()) {
if (txtReponse == null) {
txtReponse = "";
}
@@ -386,21 +381,23 @@ private String getTextReponseSurvey(final Map mapReponses) {
/** Teste la connexion à LimeSurvey */
public void testConnexionLS() {
- InputWindow inputWindow = new InputWindow(applicationContext.getMessage("version.ls.message", null, UI.getCurrent().getLocale()),
- applicationContext.getMessage("version.ls.title", null, UI.getCurrent().getLocale()), false, 15);
+ final InputWindow inputWindow = new InputWindow(applicationContext.getMessage("version.ls.message", null, UI.getCurrent().getLocale()),
+ applicationContext.getMessage("version.ls.title", null, UI.getCurrent().getLocale()),
+ false,
+ 15);
inputWindow.addBtnOkListener(text -> {
if (text instanceof String && !text.isEmpty()) {
if (text != null) {
try {
- Integer idForm = Integer.valueOf(text);
- List listeReponse = getListeReponseDedoublonne(limeSurveyRest.exportResponse(idForm, "fr"));
- StringBuilder sb = new StringBuilder();
- sb.append("" + applicationContext.getMessage("version.ls.resultTxt", new Object[] {listeReponse.size()}, UI.getCurrent().getLocale()) + "");
+ final Integer idForm = Integer.valueOf(text);
+ final List listeReponse = getListeReponseDedoublonne(limeSurveyRest.exportResponse(idForm, "fr"));
+ final StringBuilder sb = new StringBuilder();
+ sb.append("" + applicationContext.getMessage("version.ls.resultTxt", new Object[] { listeReponse.size() }, UI.getCurrent().getLocale()) + "");
sb.append("
");
listeReponse.forEach(e -> {
sb.append("NumDossier : " + e.getNumDossier() + ", date : " + e.getDatestamp() + "
");
if (e.getMapReponses() != null) {
- for (Entry entry : e.getMapReponses().entrySet()) {
+ for (final Entry entry : e.getMapReponses().entrySet()) {
sb.append(entry.getKey() + " : " + entry.getValue() + "
");
}
}
@@ -408,7 +405,7 @@ public void testConnexionLS() {
});
UI.getCurrent().addWindow(new InfoWindow(applicationContext.getMessage("version.ls.result", null, UI.getCurrent().getLocale()), sb.toString(), 500, 40));
- } catch (Exception e) {
+ } catch (final Exception e) {
Notification.show(applicationContext.getMessage("version.ls.error", null, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
}
}
diff --git a/src/main/java/fr/univlorraine/ecandidat/controllers/LdapController.java b/src/main/java/fr/univlorraine/ecandidat/controllers/LdapController.java
index d54b4e58..18d41943 100644
--- a/src/main/java/fr/univlorraine/ecandidat/controllers/LdapController.java
+++ b/src/main/java/fr/univlorraine/ecandidat/controllers/LdapController.java
@@ -18,7 +18,6 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.Locale;
import java.util.stream.Collectors;
import javax.annotation.Resource;
@@ -28,6 +27,7 @@
import org.springframework.stereotype.Component;
import com.vaadin.ui.Notification;
+import com.vaadin.ui.UI;
import fr.univlorraine.ecandidat.services.ldap.LdapException;
import fr.univlorraine.ecandidat.services.ldap.LdapGenericService;
@@ -36,58 +36,56 @@
/**
* Controller gérant les appels Ldap
* @author Kevin Hergalant
- *
*/
@Component
public class LdapController {
-
- /*applicationContext pour les messages*/
+
+ /* applicationContext pour les messages */
@Resource
private transient ApplicationContext applicationContext;
-
- /*Les services Ldap*/
- @Resource(name="ldapPeopleServiceImpl")
+
+ /* Les services Ldap */
+ @Resource(name = "ldapPeopleServiceImpl")
private LdapGenericService ldapPeopleService;
-
+
@Value("${ldap.champs.cn}")
private String champsCn;
-
+
@Value("${ldap.champs.uid}")
private String champsUid;
-
+
@Value("${ldap.filtre.personnel}")
private String filtrePersonnel;
-
-
-
- /**Rafraichi le container de recherche de people Ldap
+
+ /**
+ * Rafraichi le container de recherche de people Ldap
* @param txt le filtre a appliquer
*/
- public List getPeopleByFilter(String txt) {
- String filtreTotal = "(|("+champsUid+"="+txt+")("+champsCn+"=*"+txt+"*))";
- if (filtrePersonnel!=null && !filtrePersonnel.equals("")){
- filtreTotal = "(&"+filtreTotal+filtrePersonnel+")";
- }
- try{
- List l = ldapPeopleService.findEntitiesByFilter(filtreTotal);
- if (l==null || l.size()==0){
- Notification.show(applicationContext.getMessage("ldap.search.noresult", null, Locale.getDefault()), Notification.Type.TRAY_NOTIFICATION);
- return new ArrayList();
- }else{
- return l.stream().filter(e->e.getUid()!=null).collect(Collectors.toList());
+ public List getPeopleByFilter(final String txt) {
+ String filtreTotal = "(|(" + champsUid + "=" + txt + ")(" + champsCn + "=*" + txt + "*))";
+ if (filtrePersonnel != null && !filtrePersonnel.equals("")) {
+ filtreTotal = "(&" + filtreTotal + filtrePersonnel + ")";
+ }
+ try {
+ final List l = ldapPeopleService.findEntitiesByFilter(filtreTotal);
+ if (l == null || l.size() == 0) {
+ Notification.show(applicationContext.getMessage("ldap.search.noresult", null, UI.getCurrent().getLocale()), Notification.Type.TRAY_NOTIFICATION);
+ return new ArrayList<>();
+ } else {
+ return l.stream().filter(e -> e.getUid() != null).collect(Collectors.toList());
}
- }catch (LdapException e) {
- Notification.show(applicationContext.getMessage(e.getMessage(), null, Locale.getDefault()), Notification.Type.TRAY_NOTIFICATION);
- return new ArrayList();
- }
+ } catch (final LdapException e) {
+ Notification.show(applicationContext.getMessage(e.getMessage(), null, UI.getCurrent().getLocale()), Notification.Type.TRAY_NOTIFICATION);
+ return new ArrayList<>();
+ }
}
-
- /**
- * @param uid
- * @return Retourne un people par son uid
+
+ /**
+ * @param uid
+ * @return Retourne un people par son uid
*/
- public PeopleLdap findByPrimaryKey(String uid) {
- return ldapPeopleService.findByPrimaryKey(uid);
+ public PeopleLdap findByPrimaryKey(final String uid) {
+ return ldapPeopleService.findByPrimaryKey(uid);
}
-
+
}
diff --git a/src/main/java/fr/univlorraine/ecandidat/controllers/MailController.java b/src/main/java/fr/univlorraine/ecandidat/controllers/MailController.java
index ba7719cb..4990ed77 100644
--- a/src/main/java/fr/univlorraine/ecandidat/controllers/MailController.java
+++ b/src/main/java/fr/univlorraine/ecandidat/controllers/MailController.java
@@ -310,6 +310,7 @@ private CandidatureMailBean getCandidatureMailBean(final Candidature candidature
final CommissionMailBean commissionMailBean = new CommissionMailBean();
commissionMailBean.setLibelle(commission.getLibComm());
commissionMailBean.setTel(commission.getTelComm());
+ commissionMailBean.setUrl(commission.getUrlComm());
commissionMailBean.setMail(commission.getMailComm());
commissionMailBean.setFax(commission.getFaxComm());
commissionMailBean.setAdresse(adresseController.getLibelleAdresse(commission.getAdresse(), "
"));
@@ -327,8 +328,9 @@ private CandidatureMailBean getCandidatureMailBean(final Candidature candidature
* @param text
* @param bcc
* @param attachement
+ * @param locale
*/
- private void sendMail(final String mailTo, final String title, String text, final String bcc, final PdfAttachement attachement) {
+ private void sendMail(final String mailTo, final String title, String text, final String bcc, final PdfAttachement attachement, final String locale) {
try {
final MimeMessage message = javaMailService.createMimeMessage();
message.setFrom(new InternetAddress(mailFromNoreply));
@@ -336,8 +338,8 @@ private void sendMail(final String mailTo, final String title, String text, fina
if (bcc != null) {
message.addRecipient(Message.RecipientType.BCC, new InternetAddress(bcc));
}
- message.setSubject(title);
- text = text + applicationContext.getMessage("mail.footer", null, Locale.getDefault());
+ message.setSubject(title, "utf-8");
+ text = text + applicationContext.getMessage("mail.footer", null, locale == null ? new Locale("fr") : new Locale(locale));
message.setHeader("X-Mailer", "Java");
message.setSentDate(new Date());
@@ -419,7 +421,7 @@ public void sendMail(final String mailAdr, final Mail mail, final MailBean bean,
bcc = ctrCand.getMailContactCtrCand();
}
}
- sendMail(mailAdr, sujetMail, contentMail, bcc, attachement);
+ sendMail(mailAdr, sujetMail, contentMail, bcc, attachement, locale);
}
/**
@@ -571,7 +573,7 @@ public String getVarMailCandidature(final String codMail) {
*/
public void sendErrorToAdminFonctionnel(final String title, final String text, final Logger loggers) {
if (mailToFonctionnel != null && !mailToFonctionnel.equals("") && MethodUtils.isValidEmailAddress(mailToFonctionnel)) {
- sendMail(mailToFonctionnel, title, text, null, null);
+ sendMail(mailToFonctionnel, title, text, null, null, cacheController.getLangueDefault().getCodLangue());
logger.debug(text);
} else {
logger.error(text);
diff --git a/src/main/java/fr/univlorraine/ecandidat/controllers/SiScolController.java b/src/main/java/fr/univlorraine/ecandidat/controllers/SiScolController.java
index 2e00c4bd..2620dafa 100644
--- a/src/main/java/fr/univlorraine/ecandidat/controllers/SiScolController.java
+++ b/src/main/java/fr/univlorraine/ecandidat/controllers/SiScolController.java
@@ -99,6 +99,9 @@ public class SiScolController {
@Resource
private transient BatchController batchController;
+ @Resource
+ private transient DemoController demoController;
+
/* Injection repository ecandidat */
@Resource
private transient SiScolUtilisateurRepository siScolUtilisateurRepository;
@@ -481,7 +484,12 @@ public void testWSSiScolConnnexion() {
if (text instanceof String && !text.isEmpty()) {
if (text != null) {
try {
- final WSIndividu ind = siScolService.getIndividu(text, null, null);
+ WSIndividu ind;
+ if (demoController.getDemoMode()) {
+ ind = demoController.recupInfoEtudiant("0000000000");
+ } else {
+ ind = siScolService.getIndividu(text, null, null);
+ }
String ret = "Pas d'info";
if (ind != null) {
ret = "Individu :
" + ind
@@ -511,7 +519,7 @@ public void testWSSiScolConnnexion() {
public void testWSPJSiScolInfo(final String codEtu, final String codTpj) {
try {
if (urlWsPjApogee == null || urlWsPjApogee.equals("")) {
- Notification.show(applicationContext.getMessage("version.ws.pj.noparam", new Object[] { ConstanteUtils.WS_APOGEE_PJ_SERVICE }, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
+ Notification.show(applicationContext.getMessage("version.ws.pj.noparam", new Object[] { ConstanteUtils.WS_APOGEE_PJ_URL_SERVICE + ConstanteUtils.WS_APOGEE_SERVICE_SUFFIXE }, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return;
}
final WSPjInfo info = siScolService.getPjInfoFromApogee(null, codEtu, codTpj);
@@ -535,7 +543,7 @@ public void testWSPJSiScolInfo(final String codEtu, final String codTpj) {
public OnDemandFile testWSPJSiScolFile(final String codEtu, final String codTpj) {
try {
if (urlWsPjApogee == null || urlWsPjApogee.equals("")) {
- Notification.show(applicationContext.getMessage("version.ws.pj.noparam", new Object[] { ConstanteUtils.WS_APOGEE_PJ_SERVICE }, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
+ Notification.show(applicationContext.getMessage("version.ws.pj.noparam", new Object[] { ConstanteUtils.WS_APOGEE_PJ_URL_SERVICE + ConstanteUtils.WS_APOGEE_SERVICE_SUFFIXE }, UI.getCurrent().getLocale()), Type.WARNING_MESSAGE);
return null;
}
final WSPjInfo info = siScolService.getPjInfoFromApogee(null, codEtu, codTpj);
diff --git a/src/main/java/fr/univlorraine/ecandidat/controllers/TestController.java b/src/main/java/fr/univlorraine/ecandidat/controllers/TestController.java
index 5e0fa451..d401934f 100644
--- a/src/main/java/fr/univlorraine/ecandidat/controllers/TestController.java
+++ b/src/main/java/fr/univlorraine/ecandidat/controllers/TestController.java
@@ -34,6 +34,8 @@
import org.apache.chemistry.opencmis.client.api.CmisObject;
import org.apache.chemistry.opencmis.client.api.Folder;
+import org.apache.chemistry.opencmis.client.api.ItemIterable;
+import org.apache.chemistry.opencmis.client.api.OperationContext;
import org.apache.chemistry.opencmis.client.api.QueryStatement;
import org.apache.chemistry.opencmis.client.api.Session;
import org.apache.chemistry.opencmis.client.api.SessionFactory;
@@ -217,6 +219,39 @@ public Boolean isTestMode() {
}
public void testMethode() {
+ final Session cmisSession = getCmisSession();
+
+ final OperationContext operationContext = getCmisSession().createOperationContext();
+ operationContext.setCacheEnabled(false);
+
+ final ItemIterable resultsFolder = cmisSession.queryObjects("cmis:folder", "IN_FOLDER('23a3fe93-566b-4efa-9553-b3f6aa9a351c')", true, operationContext);
+ System.out.println("Nombre de folders : " + resultsFolder.getTotalNumItems());
+// resultsFolder.forEach(e -> {
+//// final Folder folder = (Folder) e;
+//// final List liste = folder.deleteTree(true, UnfileObject.DELETE, true);
+// System.out.println("Folder : " + e.getName());
+// });
+
+// final ItemIterable resultsDoc = cmisSession.queryObjects("cmis:document", "IN_TREE('" + folderCandidatCmis + "')", true, operationContext);
+// final ItemIterable resultsFolder = cmisSession.queryObjects("cmis:folder", "IN_TREE('" + folderCandidatCmis + "')", true, operationContext);
+//
+// System.out.println("Nombre de docs : " + resultsDoc.getTotalNumItems());
+// System.out.println("Nombre de folders : " + resultsFolder.getTotalNumItems());
+//
+// resultsDoc.forEach(e -> {
+// System.out.println("Doc : " + e.getName());
+// });
+//
+// resultsFolder.forEach(e -> {
+// System.out.println("Folder : " + e.getName());
+// });
+
+// final String queryFolder = "SELECT * FROM cmis:folder WHERE IN_TREE('" + folderCandidatCmis + "')";
+//
+// /* Requete CMIS pour rechercher le fichier */
+// final QueryStatement qsF = getCmisSession().createQueryStatement(queryDoc);
+//
+// System.out.println(qsF.query(true).getTotalNumItems());
//siScolService.creerOpiViaWS(candidatRepository.findOne(62433), true);
diff --git a/src/main/java/fr/univlorraine/ecandidat/controllers/TestWsController.java b/src/main/java/fr/univlorraine/ecandidat/controllers/TestWsController.java
new file mode 100644
index 00000000..07ea76a1
--- /dev/null
+++ b/src/main/java/fr/univlorraine/ecandidat/controllers/TestWsController.java
@@ -0,0 +1,310 @@
+/**
+ * ESUP-Portail eCandidat - Copyright (c) 2016 ESUP-Portail consortium
+ *
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package fr.univlorraine.ecandidat.controllers;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.ResourceBundle;
+
+import javax.annotation.Resource;
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.Persistence;
+import javax.persistence.Query;
+
+import org.apache.chemistry.opencmis.client.api.Document;
+import org.apache.chemistry.opencmis.client.api.Folder;
+import org.apache.chemistry.opencmis.client.api.Session;
+import org.apache.chemistry.opencmis.client.api.SessionFactory;
+import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl;
+import org.apache.chemistry.opencmis.commons.SessionParameter;
+import org.apache.chemistry.opencmis.commons.enums.BindingType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import fr.univlorraine.ecandidat.entities.ecandidat.Candidature;
+import fr.univlorraine.ecandidat.entities.ecandidat.Opi;
+import fr.univlorraine.ecandidat.entities.ecandidat.PjOpi;
+import fr.univlorraine.ecandidat.entities.ecandidat.PjOpiPK;
+import fr.univlorraine.ecandidat.entities.siscol.IndOpi;
+import fr.univlorraine.ecandidat.entities.siscol.WSAdresse;
+import fr.univlorraine.ecandidat.entities.siscol.WSBac;
+import fr.univlorraine.ecandidat.entities.siscol.WSCursusInterne;
+import fr.univlorraine.ecandidat.entities.siscol.WSIndividu;
+import fr.univlorraine.ecandidat.entities.siscol.WSPjInfo;
+import fr.univlorraine.ecandidat.repositories.CandidatureRepository;
+import fr.univlorraine.ecandidat.repositories.OpiRepository;
+import fr.univlorraine.ecandidat.repositories.PjOpiRepository;
+import fr.univlorraine.ecandidat.services.siscol.SiScolGenericService;
+
+/**
+ * Gestion de l'entité campagne
+ * @author Kevin Hergalant
+ */
+@Component
+public class TestWsController {
+ private final Logger logger = LoggerFactory.getLogger(TestWsController.class);
+
+ /* Le service SI Scol */
+ @Resource(name = "${siscol.implementation}")
+ private SiScolGenericService siScolService;
+
+ @Resource
+ private transient CandidatureRepository candidatureRepository;
+
+ @Resource
+ private transient OpiRepository opiRepository;
+
+ @Resource
+ private transient PjOpiRepository pjOpiRepository;
+
+ private Session cmisSession;
+
+ @SuppressWarnings("unchecked")
+ public void testWs() throws IOException {
+ final EntityManagerFactory emf = Persistence.createEntityManagerFactory("pun-jpa-siscol");
+ final EntityManager em = emf.createEntityManager();
+ final ResourceBundle bundle = ResourceBundle.getBundle("test-ws");
+ final String codOpi = bundle.getString("opi.codOpi");
+ try {
+ logger.info("********** Vérifications OPI **********");
+ final Candidature candOpi = candidatureRepository.findOne(Integer.valueOf(bundle.getString("opi.idCand")));
+ if (countOpiData(em, "IND_OPI", codOpi) > 0) {
+ throw new RuntimeException("Impossible de lancer les tests, nettoyez d'abord les OPI");
+ }
+ logger.info("********** Vérifications OPI terminée, lancement des tests **********");
+
+ /* Données individu */
+ logger.info("********** Test Données individu **********");
+ final String codEtu = bundle.getString("ind.codEtu");
+ final WSIndividu ind = siScolService.getIndividu(codEtu, null, null);
+ checkString(bundle, String.valueOf(ind.getCodEtu()), "ind.codEtu");
+ checkString(bundle, String.valueOf(ind.getCodInd()), "ind.codInd");
+ checkString(bundle, ind.getCodNneInd(), "ind.codNneInd");
+ checkString(bundle, ind.getCodCleNneInd(), "ind.codCleNneInd");
+ checkString(bundle, ind.getCodPayNai(), "ind.codPayNai");
+ checkString(bundle, ind.getCodDepNai(), "ind.codDepNai");
+ checkString(bundle, ind.getCodPayNat(), "ind.codPayNat");
+ checkString(bundle, ind.getLibNomPatInd(), "ind.libNomPatInd");
+ checkString(bundle, ind.getLibNomUsuInd(), "ind.libNomUsuInd");
+ checkString(bundle, ind.getLibPr1Ind(), "ind.libPr1Ind");
+ checkString(bundle, ind.getLibPr2Ind(), "ind.libPr2Ind");
+ checkString(bundle, ind.getLibVilNaiEtu(), "ind.libVilNaiEtu");
+
+ /* Données bac */
+ logger.info("********** Test Données bac **********");
+ final WSBac bac = ind.getBac();
+ checkString(bundle, bac.getCodBac(), "bac.codBac");
+ checkString(bundle, bac.getCodDep(), "bac.codDep");
+ checkString(bundle, bac.getCodEtb(), "bac.codEtb");
+ checkString(bundle, bac.getCodMnb(), "bac.codMnb");
+ checkString(bundle, bac.getDaaObtBacIba(), "bac.daaObtBacIba");
+ checkString(bundle, bac.getTemInsAdm(), "bac.temInsAdm");
+
+ /* Données Adresse */
+ logger.info("********** Test Données adresse **********");
+ final WSAdresse adr = ind.getAdresse();
+ checkString(bundle, adr.getCodBdi(), "adr.codBdi");
+ checkString(bundle, adr.getCodCom(), "adr.codCom");
+ checkString(bundle, adr.getCodPay(), "adr.codPay");
+ checkString(bundle, adr.getLibAd1(), "adr.libAd1");
+ checkString(bundle, adr.getLibAd2(), "adr.libAd2");
+ checkString(bundle, adr.getLibAd3(), "adr.libAd3");
+ checkString(bundle, adr.getLibAde(), "adr.libAde");
+ checkString(bundle, adr.getNumTel(), "adr.numTel");
+ checkString(bundle, adr.getNumTelPort(), "adr.numTelPort");
+
+ /* Données Cursus (test de la taille de liste et de la premiere inscription) */
+ logger.info("********** Test Données Cursus interne **********");
+ final List listCursus = ind.getListCursusInterne();
+ checkString(bundle, String.valueOf(listCursus.size()), "cursus.size");
+ final WSCursusInterne cursus = listCursus.get(0);
+ checkString(bundle, cursus.getCodVet(), "cursus.codVet");
+ checkString(bundle, cursus.getLibVet(), "cursus.libVet");
+ checkString(bundle, cursus.getCodAnu(), "cursus.codAnu");
+ checkString(bundle, cursus.getCodMen(), "cursus.codMen");
+ checkString(bundle, cursus.getCodTre(), "cursus.codTre");
+ checkString(bundle, cursus.getNotVet(), "cursus.notVet");
+ checkString(bundle, String.valueOf(cursus.getBarNotVet()), "cursus.barNotVet");
+
+ /* Données PJ */
+ logger.info("********** Test Données PJ **********");
+ final WSPjInfo pjInfo = siScolService.getPjInfoFromApogee(bundle.getString("pj.codAnu"), bundle.getString("pj.codEtu"), bundle.getString("pj.codTpj"));
+ checkString(bundle, pjInfo.getCodAnu(), "pj.codAnu");
+ checkString(bundle, pjInfo.getCodTpj(), "pj.codTpj");
+ checkString(bundle, pjInfo.getLibTpj(), "pj.libTpj");
+ checkString(bundle, pjInfo.getNomFic(), "pj.nomFic");
+ checkString(bundle, String.valueOf(pjInfo.getTemDemPJ()), "pj.temDemPJ");
+ checkString(bundle, pjInfo.getStuPj(), "pj.stuPj");
+ checkString(bundle, pjInfo.getMtfRefus(), "pj.mtfRefus");
+ checkString(bundle, pjInfo.getCmtMtfRefus(), "pj.cmtMtfRefus");
+ checkString(bundle, pjInfo.getDatDemPj(), "pj.datDemPj");
+ checkString(bundle, pjInfo.getDatRecPj(), "pj.datRecPj");
+ checkString(bundle, pjInfo.getDatRefus(), "pj.datRefus");
+ checkString(bundle, pjInfo.getDatVal(), "pj.datVal");
+ checkString(bundle, pjInfo.getDatExp(), "pj.datExp");
+ checkString(bundle, pjInfo.getDaaPreTra(), "pj.daaPreTra");
+
+ /* Données PJ */
+ logger.info("********** Test Fichier PJ **********");
+ final InputStream pjFichier = siScolService.getPjFichierFromApogee(bundle.getString("pj.codAnu"), bundle.getString("pj.codEtu"), bundle.getString("pj.codTpj"));
+ final ByteArrayOutputStream out = new ByteArrayOutputStream();
+ final byte[] bytes = new byte[1024];
+ int count;
+ while ((count = pjFichier.read(bytes)) > 0) {
+ out.write(bytes, 0, count);
+ }
+ checkString(bundle, String.valueOf(out.size()), "filepj.size");
+
+ logger.info("********** Test OPI **********");
+ final Opi opi = opiRepository.findOne(candOpi.getIdCand());
+ opi.setDatPassageOpi(null);
+ opi.setCodOpi(null);
+ opiRepository.save(opi);
+
+ final PjOpiPK pk = new PjOpiPK(bundle.getString("opi.codOpi"), bundle.getString("opi.codTpj"));
+ final PjOpi pj = pjOpiRepository.findOne(pk);
+ pj.setDatDeversement(null);
+ pjOpiRepository.save(pj);
+
+ siScolService.creerOpiViaWS(candOpi.getCandidat(), true);
+
+ logger.info("********** Vérification OPI **********");
+ checkOpiData(em, "IND_OPI", codOpi);
+ checkOpiData(em, "OPI_BAC", codOpi);
+ checkOpiData(em, "VOEUX_INS", codOpi);
+ checkOpiData(em, "ADRESSE_OPI", codOpi);
+ checkOpiData(em, "OPI_PJ", codOpi);
+
+ logger.info("********** Vérification OPI PJ **********");
+ final String requete = "Select a from IndOpi a where a.codOpiIntEpo='" + codOpi + "'";
+ final Query query = em.createQuery(requete, IndOpi.class);
+ final List lindopi = query.getResultList();
+ final IndOpi indOpi = lindopi.get(0);
+
+ final Session cmisSession = getCmisSession(bundle);
+ final Folder folder = (Folder) cmisSession.getObject(cmisSession.createObjectId(bundle.getString("opi.pj.candidatureId")));
+ final String pathDoc = folder.getPath() + "/" + indOpi.getCodIndOpi() + "_OPI/PJ_" + bundle.getString("pj.codTpj") + "_" + indOpi.getCodIndOpi() + bundle.getString("opi.pj.ext");
+ logger.info("Recherche par path : " + pathDoc);
+
+ final Document d = (Document) cmisSession.getObjectByPath(pathDoc);
+ checkString(bundle, String.valueOf(d.getContentStreamLength()), "opi.pj.size");
+
+ logger.info("********** Vérifications Checkine **********");
+ final Boolean isInes = siScolService.checkStudentINES(bundle.getString("checkine.ine"), bundle.getString("checkine.key"));
+ if (!isInes) {
+ throw new RuntimeException("Checkines ne fonctionne pas");
+ } else {
+ logger.info("Ok - " + bundle.getString("checkine.ine") + bundle.getString("checkine.key"));
+ }
+
+ } catch (final Exception e) {
+ e.printStackTrace();
+ } finally {
+ em.close();
+ }
+ }
+
+ /**
+ * Verifie le nombre d'une ligne d'une requete OPI
+ * @param em
+ * @param table
+ * @param codOpi
+ */
+ private void checkOpiData(final EntityManager em, final String table, final String codOpi) {
+ final Integer count = countOpiData(em, "IND_OPI", codOpi);
+ final String log = "table = " + table + " - codOpi = " + codOpi + " - Nombre de lignes trouvées = " + count;
+ if (count.equals(1)) {
+ logger.info("Ok - " + log);
+ return;
+ }
+ throw new RuntimeException("Erreur vérif OPI - " + log);
+ }
+
+ /**
+ * @param em
+ * @param table
+ * @param codOpi
+ * @return le nombre de lignes d'une table OPI
+ */
+ private Integer countOpiData(final EntityManager em, final String table, final String codOpi) {
+ final String requete = "select count(*) from APOGEE." + table + " where COD_IND_OPI = (select COD_IND_OPI from APOGEE.IND_OPI where COD_OPI_INT_EPO = '" + codOpi + "')";
+ final Query query = em.createNativeQuery(requete);
+ final int count = ((Number) query.getSingleResult()).intValue();
+ return count;
+ }
+
+ /**
+ * Verifie le retour du WS avec le fichier properties
+ * @param bundle
+ * @param str
+ * @param codBundle
+ */
+ private void checkString(final ResourceBundle bundle, final String str, final String codBundle) {
+ final String value = bundle.getString(codBundle);
+ final String log = "codeBundle = " + codBundle + ", valBundle = " + value + ", valeur = " + str;
+
+ if (value.equals("null") && str == null) {
+ logger.info("Ok - " + log);
+ return;
+ }
+
+ if (Objects.equals(str, value)) {
+ logger.info("Ok - " + log);
+ return;
+ }
+
+ throw new RuntimeException("Erreur - " + log);
+ }
+
+ /** @return la session CMIS */
+ public Session getCmisSession(final ResourceBundle bundle) {
+ if (cmisSession == null) {
+ cmisSession = cmisSession(bundle);
+ }
+ return cmisSession;
+ }
+
+ /** @return la session CMIS */
+ private Session cmisSession(final ResourceBundle bundle) {
+ try {
+ // default factory implementation
+ final SessionFactory factory = SessionFactoryImpl.newInstance();
+ final Map parameter = new HashMap<>();
+
+ // user credentials
+ parameter.put(SessionParameter.USER, bundle.getString("opi.pj.user"));
+ parameter.put(SessionParameter.PASSWORD, bundle.getString("opi.pj.pwd"));
+
+ // connection settings
+ parameter.put(SessionParameter.ATOMPUB_URL, bundle.getString("opi.pj.url"));
+ parameter.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
+ parameter.put(SessionParameter.REPOSITORY_ID, bundle.getString("opi.pj.repository"));
+ // create session
+ return factory.createSession(parameter);
+ } catch (final Exception e) {
+ logger.error("Stockage de fichier - Impossible de se connecter au serveur de fichier CMIS", e);
+ return null;
+ }
+ }
+}
diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/CentreCandidature.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/CentreCandidature.java
index 25128e81..39991911 100644
--- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/CentreCandidature.java
+++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/CentreCandidature.java
@@ -51,7 +51,7 @@
@EntityListeners(EntityPushEntityListener.class)
@Data
@EqualsAndHashCode(of = "idCtrCand")
-@ToString(of = {"idCtrCand", "codCtrCand", "libCtrCand", "tesCtrCand"})
+@ToString(of = { "idCtrCand", "codCtrCand", "libCtrCand", "tesCtrCand" })
@SuppressWarnings("serial")
public class CentreCandidature implements Serializable {
@@ -208,18 +208,18 @@ public class CentreCandidature implements Serializable {
@PrePersist
private void onPrePersist() {
- this.datCreCtrCand = LocalDateTime.now();
- this.datModCtrCand = LocalDateTime.now();
+ datCreCtrCand = LocalDateTime.now();
+ datModCtrCand = LocalDateTime.now();
}
@PreUpdate
private void onPreUpdate() {
- this.datModCtrCand = LocalDateTime.now();
+ datModCtrCand = LocalDateTime.now();
}
/** @return le libellé à afficher dans la listBox */
public String getGenericLibelle() {
- return this.codCtrCand + "/" + this.libCtrCand;
+ return codCtrCand + "/" + libCtrCand;
}
public CentreCandidature() {
@@ -228,17 +228,17 @@ public CentreCandidature() {
public CentreCandidature(final String user, final TypeDecision typeDecDefault, final Integer nbVoeuxDefaut, final Boolean temDemat) {
super();
- this.userCreCtrCand = user;
- this.userModCtrCand = user;
- this.typeDecisionFavListComp = null;
- this.typeDecisionFav = typeDecDefault;
- this.nbMaxVoeuxCtrCand = nbVoeuxDefaut;
- this.tesCtrCand = false;
- this.temListCompCtrCand = false;
- this.temDematCtrCand = temDemat;
- this.datDebDepotCtrCand = LocalDate.now();
- this.datFinDepotCtrCand = LocalDate.now();
- this.datRetourCtrCand = LocalDate.now();
+ userCreCtrCand = user;
+ userModCtrCand = user;
+ typeDecisionFavListComp = null;
+ typeDecisionFav = typeDecDefault;
+ nbMaxVoeuxCtrCand = nbVoeuxDefaut;
+ tesCtrCand = false;
+ temListCompCtrCand = false;
+ temDematCtrCand = temDemat;
+ datDebDepotCtrCand = LocalDate.now();
+ datFinDepotCtrCand = LocalDate.now();
+ datRetourCtrCand = LocalDate.now();
}
diff --git a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Commission.java b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Commission.java
index e52b3160..70700791 100644
--- a/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Commission.java
+++ b/src/main/java/fr/univlorraine/ecandidat/entities/ecandidat/Commission.java
@@ -96,11 +96,19 @@ public class Commission implements Serializable {
@NotNull
private String libComm;
- @Column(name = "mail_comm", nullable = false, length = 80)
+ @Column(name = "mail_comm", nullable = true, length = 80)
@Size(max = 80)
- @NotNull
private String mailComm;
+ @Column(name = "mail_alert_comm", nullable = false, length = 80)
+ @Size(max = 80)
+ @NotNull
+ private String mailAlertComm;
+
+ @Column(name = "url_comm", nullable = true, length = 255)
+ @Size(max = 255)
+ private String urlComm;
+
@Column(name = "signataire_comm", length = 255)
@Size(max = 255)
private String signataireComm;
diff --git a/src/main/java/fr/univlorraine/ecandidat/services/file/FileManager.java b/src/main/java/fr/univlorraine/ecandidat/services/file/FileManager.java
index 7a9423a3..1cea4270 100644
--- a/src/main/java/fr/univlorraine/ecandidat/services/file/FileManager.java
+++ b/src/main/java/fr/univlorraine/ecandidat/services/file/FileManager.java
@@ -27,62 +27,66 @@
public interface FileManager extends Serializable {
/** @return le type de dematerialisation */
- public String getType();
+ String getType();
/** test le mode de dematerialisation */
- public Boolean testSession();
+ Boolean testSession();
- /** Creéé un fichier provenant d'une fenetre d'upload
- *
- * @param file
- * @param mimeType
- * @param filename
- * @param length
- * @param typeFichier
- * @param prefixe
- * @param candidature
- * @param commune
- * @return le fichier
+ /**
+ * Creéé un fichier provenant d'une fenetre d'upload
+ * @param file
+ * @param mimeType
+ * @param filename
+ * @param length
+ * @param typeFichier
+ * @param prefixe
+ * @param candidature
+ * @param commune
+ * @return le fichier
* @throws FileException
*/
- public FileCustom createFileFromUpload(ByteArrayInOutStream file, String mimeType, String filename, long length, String typeFichier, String prefixe, Candidature candidature, Boolean commune)
- throws FileException;
+ FileCustom createFileFromUpload(ByteArrayInOutStream file, String mimeType, String filename, long length, String typeFichier, String prefixe, Candidature candidature, Boolean commune)
+ throws FileException;
- /** Supprime un fichier
- *
- * @param fichier
- * @param sendErrorLog
- * si une erreur est loguée
+ /**
+ * Supprime un fichier
+ * @param fichier
+ * @param sendErrorLog
+ * si une erreur est loguée
* @throws FileException
*/
- public void deleteFile(Fichier fichier, Boolean sendErrorLog) throws FileException;
+ void deleteFile(Fichier fichier, Boolean sendErrorLog) throws FileException;
- /** Recupere un flux permettant de telecharger un fichier
- *
- * @param file
- * @return l'InputStream du fichier
+ /**
+ * Recupere un flux permettant de telecharger un fichier
+ * @param file
+ * @return l'InputStream du fichier
* @throws FileException
*/
- public InputStream getInputStreamFromFile(Fichier file, Boolean logAction) throws FileException;
+ InputStream getInputStreamFromFile(Fichier file, Boolean logAction) throws FileException;
- /** @param file
- * @return true si le fichier exist
+ /**
+ * @param file
+ * @return true si le fichier exist
* @throws FileException
*/
- public Boolean existFile(Fichier file) throws FileException;
+ Boolean existFile(Fichier file) throws FileException;
- /** Supprime le dossier de la campagne
- *
- * @param codCampagne
- * @return true si ok */
- public Boolean deleteCampagneFolder(String codCampagne);
+ /**
+ * Supprime le dossier de la campagne
+ * @param codCampagne
+ * @return true si ok
+ * @throws FileException
+ */
+ Boolean deleteCampagneFolder(String codCampagne) throws FileException;
- /** @param pjOpi
- * @param file
- * @param complementLog
- * @return true si le fichier existe
+ /**
+ * @param pjOpi
+ * @param file
+ * @param complementLog
+ * @return true si le fichier existe
* @throws FileException
*/
- public Boolean isFileCandidatureOpiExist(final PjOpi pjOpi, final Fichier file, final String complementLog) throws FileException;
+ Boolean isFileCandidatureOpiExist(final PjOpi pjOpi, final Fichier file, final String complementLog) throws FileException;
}
diff --git a/src/main/java/fr/univlorraine/ecandidat/services/file/FileManagerCmisImpl.java b/src/main/java/fr/univlorraine/ecandidat/services/file/FileManagerCmisImpl.java
index d1de6d0d..e6f9d07d 100644
--- a/src/main/java/fr/univlorraine/ecandidat/services/file/FileManagerCmisImpl.java
+++ b/src/main/java/fr/univlorraine/ecandidat/services/file/FileManagerCmisImpl.java
@@ -19,6 +19,7 @@
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.math.BigInteger;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -28,6 +29,8 @@
import org.apache.chemistry.opencmis.client.api.CmisObject;
import org.apache.chemistry.opencmis.client.api.Document;
import org.apache.chemistry.opencmis.client.api.Folder;
+import org.apache.chemistry.opencmis.client.api.ItemIterable;
+import org.apache.chemistry.opencmis.client.api.OperationContext;
import org.apache.chemistry.opencmis.client.api.QueryStatement;
import org.apache.chemistry.opencmis.client.api.Session;
import org.apache.chemistry.opencmis.client.api.SessionFactory;
@@ -60,25 +63,22 @@
/**
* Class d'implementation de l'interface de manager de fichier pour CMIS
- *
* @author Kevin Hergalant
*/
@SuppressWarnings("serial")
@Component(value = "fileManagerCmisImpl")
public class FileManagerCmisImpl implements FileManager {
- private Logger logger = LoggerFactory.getLogger(FileManagerCmisImpl.class);
+ private final Logger logger = LoggerFactory.getLogger(FileManagerCmisImpl.class);
/* applicationContext pour les messages */
@Resource
private transient ApplicationContext applicationContext;
/* La session CMIS */
- /*
- * CMIS itself is stateless. OpenCMIS uses the concept of a session to cache data across calls and to deal with user authentication.
+ /* CMIS itself is stateless. OpenCMIS uses the concept of a session to cache data across calls and to deal with user authentication.
* The session object is also used as entry point to all CMIS operations and objects.
- * Because a session is only a client side concept, the session object needs not to be closed or released when it's not needed anymore.
- **/
+ * Because a session is only a client side concept, the session object needs not to be closed or released when it's not needed anymore. **/
private Session cmisSession;
/* Les informations de context */
@@ -98,7 +98,6 @@ public FileManagerCmisImpl() {
/**
* Constructeur et affectation des variables
- *
* @param user
* @param password
* @param url
@@ -107,8 +106,14 @@ public FileManagerCmisImpl() {
* @param idFolderCandidat
* @param enableVersioningCmis
*/
- public FileManagerCmisImpl(final String user, final String password, final String url, final String repository, final String idFolderGestionnaire,
- final String idFolderCandidat, final String idFolderApoCandidature, final Boolean enableVersioningCmis) {
+ public FileManagerCmisImpl(final String user,
+ final String password,
+ final String url,
+ final String repository,
+ final String idFolderGestionnaire,
+ final String idFolderCandidat,
+ final String idFolderApoCandidature,
+ final Boolean enableVersioningCmis) {
super();
this.user = user;
this.password = password;
@@ -136,8 +141,8 @@ private Session cmisSession() {
try {
// default factory implementation
- SessionFactory factory = SessionFactoryImpl.newInstance();
- Map parameter = new HashMap<>();
+ final SessionFactory factory = SessionFactoryImpl.newInstance();
+ final Map parameter = new HashMap<>();
// user credentials
parameter.put(SessionParameter.USER, user);
@@ -148,7 +153,7 @@ private Session cmisSession() {
parameter.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
parameter.put(SessionParameter.REPOSITORY_ID, repository);
// create session
- Session session = factory.createSession(parameter);
+ final Session session = factory.createSession(parameter);
if (session == null) {
logger.error("Stockage de fichier - Impossible de se connecter au serveur de fichier CMIS");
return null;
@@ -158,7 +163,7 @@ private Session cmisSession() {
}
}
return null;
- } catch (Exception e) {
+ } catch (final Exception e) {
logger.error("Stockage de fichier - Impossible de se connecter au serveur de fichier CMIS", e);
return null;
}
@@ -166,10 +171,10 @@ private Session cmisSession() {
@Override
public Boolean testSession() {
- Session cmisSession = cmisSession();
+ final Session cmisSession = cmisSession();
if (cmisSession != null) {
- Boolean testGest = directoryExistCMIS(idFolderGestionnaire, getCmisSession());
- Boolean testCand = directoryExistCMIS(idFolderCandidat, getCmisSession());
+ final Boolean testGest = directoryExistCMIS(idFolderGestionnaire, getCmisSession());
+ final Boolean testCand = directoryExistCMIS(idFolderCandidat, getCmisSession());
if (!testGest || !testCand) {
return false;
}
@@ -180,8 +185,7 @@ public Boolean testSession() {
/**
* Verifie qu'un dossier existe en mode CMIS
- *
- * @param idFolder
+ * @param idFolder
* @return
*/
private Boolean directoryExistCMIS(final String idFolder, final Session cmisSession) {
@@ -189,12 +193,12 @@ private Boolean directoryExistCMIS(final String idFolder, final Session cmisSess
return false;
}
try {
- CmisObject object = cmisSession.getObject(cmisSession.createObjectId(idFolder));
+ final CmisObject object = cmisSession.getObject(cmisSession.createObjectId(idFolder));
if (!(object instanceof Folder)) {
logger.error("Stockage de fichier - CMIS : l'object CMIS " + idFolder + " n'est pas un dossier");
return false;
}
- } catch (Exception e) {
+ } catch (final Exception e) {
logger.error("Stockage de fichier - CMIS : erreur sur l'object CMIS " + idFolder, e);
return false;
}
@@ -208,41 +212,41 @@ public String getType() {
}
/**
- * @param id
- * @return l'objet CMIS par son id
+ * @param id
+ * @return l'objet CMIS par son id
* @throws FileException
* @throws NoSuchMessageException
*/
public CmisObject getObjectById(final String id) {
- Session session = getCmisSession();
- CmisObject object = session.getObject(session.createObjectId(id));
+ final Session session = getCmisSession();
+ final CmisObject object = session.getObject(session.createObjectId(id));
return object;
}
/**
- * @return le folder CMIS des candidat
+ * @return le folder CMIS des candidat
* @throws FileException
* @throws NoSuchMessageException
*/
public Folder getFolderCandidat() throws NoSuchMessageException, FileException {
- CmisObject object = getObjectById(idFolderCandidat);
- Folder folder = (Folder) object;
+ final CmisObject object = getObjectById(idFolderCandidat);
+ final Folder folder = (Folder) object;
return folder;
}
/**
- * @return le folder CMIS des gestionnaires
+ * @return le folder CMIS des gestionnaires
* @throws FileException
* @throws NoSuchMessageException
*/
public Folder getFolderGestionnaire() throws NoSuchMessageException, FileException {
- CmisObject object = getObjectById(idFolderGestionnaire);
- Folder folder = (Folder) object;
+ final CmisObject object = getObjectById(idFolderGestionnaire);
+ final Folder folder = (Folder) object;
return folder;
}
/**
- * @return le folder CMIS des candidatures sur apogee
+ * @return le folder CMIS des candidatures sur apogee
* @throws FileException
* @throws NoSuchMessageException
*/
@@ -250,16 +254,15 @@ public Folder getFolderApoCandidature() throws NoSuchMessageException, FileExcep
if (idFolderApoCandidature == null || idFolderApoCandidature.equals("")) {
return null;
}
- CmisObject object = getObjectById(idFolderApoCandidature);
- Folder folder = (Folder) object;
+ final CmisObject object = getObjectById(idFolderApoCandidature);
+ final Folder folder = (Folder) object;
return folder;
}
/**
* Renvoi un customFile a partir d'un document cmis
- *
- * @param doc
- * @return le fichier
+ * @param doc
+ * @return le fichier
*/
private FileCustom getFileFromDoc(final Document doc, final String fileName, final String cod) {
return new FileCustom(doc.getId(), cod, fileName, doc.getContentStreamMimeType());
@@ -267,23 +270,22 @@ private FileCustom getFileFromDoc(final Document doc, final String fileName, fin
/**
* Vérifie si l'arborescence demandée existe, sinon, la créé
- *
- * @param candidature
- * @param isPjCommune
- * @return le folder folderCandidat/CodCamp/NumDossierOpiCptMin/CodFor
+ * @param candidature
+ * @param isPjCommune
+ * @return le folder folderCandidat/CodCamp/NumDossierOpiCptMin/CodFor
* @throws FileException
*/
public Folder getFolderCandidature(final Candidature candidature, final Boolean isPjCommune) throws FileException {
try {
/* Recuperation des noms de dossier */
- String codCampagne = candidature.getCandidat().getCompteMinima().getCampagne().getCodCamp();
- String noDossier = candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin();
+ final String codCampagne = candidature.getCandidat().getCompteMinima().getCampagne().getCodCamp();
+ final String noDossier = candidature.getCandidat().getCompteMinima().getNumDossierOpiCptMin();
String codFormationOuCommune = candidature.getFormation().getCodForm();
- Session session = getCmisSession();
+ final Session session = getCmisSession();
/* Dossier de base pour les candidats */
- Folder master = getFolderCandidat();
+ final Folder master = getFolderCandidat();
/* On défini les 3 dossier qu'on aura éventuellement à créer */
Folder folderCampagne;
@@ -320,21 +322,28 @@ public Folder getFolderCandidature(final Candidature candidature, final Boolean
}
/**
- * @see fr.univlorraine.ecandidat.services.file.FileManager#createFileFromUpload(fr.univlorraine.ecandidat.utils.ByteArrayInOutStream, java.lang.String, java.lang.String, long, java.lang.String,
+ * @see fr.univlorraine.ecandidat.services.file.FileManager#createFileFromUpload(fr.univlorraine.ecandidat.utils.ByteArrayInOutStream, java.lang.String,
+ * java.lang.String, long, java.lang.String,
* java.lang.String, fr.univlorraine.ecandidat.entities.ecandidat.Candidature, java.lang.Boolean)
*/
@Override
- public FileCustom createFileFromUpload(final ByteArrayInOutStream file, final String mimeType, final String filename,
- final long length, final String typeFichier, final String prefixe, final Candidature candidature, final Boolean commune) throws FileException {
+ public FileCustom createFileFromUpload(final ByteArrayInOutStream file,
+ final String mimeType,
+ final String filename,
+ final long length,
+ final String typeFichier,
+ final String prefixe,
+ final Candidature candidature,
+ final Boolean commune) throws FileException {
ByteArrayInputStream bis = null;
try {
- String name = prefixe + "_" + filename;
- Map properties = new HashMap<>();
+ final String name = prefixe + "_" + filename;
+ final Map properties = new HashMap<>();
properties.put(PropertyIds.OBJECT_TYPE_ID, BaseTypeId.CMIS_DOCUMENT.value());
properties.put(PropertyIds.NAME, name);
bis = file.getInputStream();
- ContentStream contentStream = new ContentStreamImpl(name, BigInteger.valueOf(length), mimeType, bis);
+ final ContentStream contentStream = new ContentStreamImpl(name, BigInteger.valueOf(length), mimeType, bis);
Folder master;
if (typeFichier.equals(ConstanteUtils.TYPE_FICHIER_GESTIONNAIRE)) {
master = getFolderGestionnaire();
@@ -348,9 +357,9 @@ public FileCustom createFileFromUpload(final ByteArrayInOutStream file, final St
versioningState = VersioningState.MINOR;
}
- Document d = master.createDocument(properties, contentStream, versioningState);
+ final Document d = master.createDocument(properties, contentStream, versioningState);
return getFileFromDoc(d, filename, prefixe);
- } catch (Exception e) {
+ } catch (final Exception e) {
// Suppression de l'erreur org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException: Bad Gateway
if (!MethodUtils.checkExceptionAndMessage(e, CmisRuntimeException.class, ConstanteUtils.CMIS_ERROR_BAD_GATEWAY)) {
logger.error("Stockage de fichier - CMIS : erreur de creation du fichier ", e);
@@ -367,9 +376,9 @@ public FileCustom createFileFromUpload(final ByteArrayInOutStream file, final St
@Override
public void deleteFile(final Fichier fichier, final Boolean sendErrorLog) throws FileException {
try {
- Document doc = (Document) getObjectById(fichier.getFileFichier());
+ final Document doc = (Document) getObjectById(fichier.getFileFichier());
doc.delete(true);
- } catch (Exception e) {
+ } catch (final Exception e) {
if (sendErrorLog) {
logger.error("Stockage de fichier - CMIS : erreur de suppression du fichier ", e);
}
@@ -381,13 +390,13 @@ public void deleteFile(final Fichier fichier, final Boolean sendErrorLog) throws
@Override
public InputStream getInputStreamFromFile(final Fichier file, final Boolean logAction) throws FileException {
try {
- Document doc = (Document) getObjectById(file.getFileFichier());
+ final Document doc = (Document) getObjectById(file.getFileFichier());
return doc.getContentStream().getStream();
- } catch (Exception e) {
+ } catch (final Exception e) {
if (logAction) {
logger.error("Stockage de fichier - CMIS : erreur de recuperation du fichier ", e);
}
- throw new FileException(applicationContext.getMessage("file.error.stream", new Object[] {file.getNomFichier()}, UI.getCurrent().getLocale()), e);
+ throw new FileException(applicationContext.getMessage("file.error.stream", new Object[] { file.getNomFichier() }, UI.getCurrent().getLocale()), e);
}
}
@@ -395,64 +404,98 @@ public InputStream getInputStreamFromFile(final Fichier file, final Boolean logA
@Override
public Boolean existFile(final Fichier file) throws FileException {
try {
- Session session = getCmisSession();
+ final Session session = getCmisSession();
return session.exists(file.getFileFichier());
- } catch (CmisObjectNotFoundException e) {
+ } catch (final CmisObjectNotFoundException e) {
return false;
- } catch (Exception ex) {
- throw new FileException(applicationContext.getMessage("file.error.stream", new Object[] {file.getNomFichier()}, UI.getCurrent().getLocale()), ex);
+ } catch (final Exception ex) {
+ throw new FileException(applicationContext.getMessage("file.error.stream", new Object[] { file.getNomFichier() }, UI.getCurrent().getLocale()), ex);
}
}
- /** @see fr.univlorraine.ecandidat.services.file.FileManager#deleteCampagneFolder(java.lang.String) */
+ /**
+ * @throws FileException
+ * @see fr.univlorraine.ecandidat.services.file.FileManager#deleteCampagneFolder(java.lang.String)
+ */
@Override
- public Boolean deleteCampagneFolder(final String codCampagne) {
- logger.debug("Suppression du dossier de campagne : " + codCampagne);
- Session session = getCmisSession();
+ public Boolean deleteCampagneFolder(final String codCampagne) throws FileException {
+ logger.info("Suppression du dossier de campagne : " + codCampagne);
+ final Session session = getCmisSession();
try {
/* Dossier de base pour les candidats */
- Folder master = getFolderCandidat();
+ final Folder master = getFolderCandidat();
/* Le dossier de la campagne */
- Folder folderCampagne = FileUtils.getFolder(master.getPath() + "/" + codCampagne, session);
- logger.debug("Suppression du dossier de campagne, path=" + folderCampagne.getPath() + ", id=" + folderCampagne.getId());
- List liste = folderCampagne.deleteTree(true, UnfileObject.DELETE, true);
+ final Folder folderCampagne = FileUtils.getFolder(master.getPath() + "/" + codCampagne, session);
+ logger.info("Suppression du dossier de campagne, path=" + folderCampagne.getPath() + ", id=" + folderCampagne.getId());
+
+ /* Suppression des folder encore contenu dans ce repertoire */
+ final OperationContext operationContext = getCmisSession().createOperationContext();
+ operationContext.setCacheEnabled(false);
+
+ final ItemIterable resultsFolder = cmisSession.queryObjects("cmis:folder", "IN_FOLDER('" + folderCampagne.getId() + "')", true, operationContext);
+ logger.info("Suppression du dossier de campagne, nombre de folder a supprimer " + resultsFolder.getTotalNumItems());
+ final List listFolderToDelete = new ArrayList<>();
+
+ /* Stockage dans une liste pour meilleure utilisation */
+ resultsFolder.forEach(e -> {
+ listFolderToDelete.add((Folder) e);
+ });
+ logger.info("Suppression du dossier de campagne, fin de lecture des folder : " + listFolderToDelete.size() + " folder a supprimer");
+
+ Integer i = 0;
+ Integer cpt = 0;
+ for (final Folder folder : listFolderToDelete) {
+ folder.deleteTree(true, UnfileObject.DELETE, true);
+ i++;
+ cpt++;
+ if (i.equals(ConstanteUtils.BATCH_LOG_NB_SHORT)) {
+ logger.info("Suppression du dossier de campagne, destruction de " + cpt + " folder ok");
+ i = 0;
+ }
+ }
+
+ /* On termine par la suppression du dossier racine */
+ final List liste = folderCampagne.deleteTree(true, UnfileObject.DELETE, true);
if (liste != null && liste.size() > 0) {
- return false;
+ logger.info("Suppression du dossier de campagne, nombre d'erreur > 0");
+ throw new FileException("Suppression du dossier de campagne, nombre d'erreur > 0");
}
+ logger.info("Suppression du dossier de campagne, fin du traitement");
return true;
- } catch (Exception e) {
- logger.error("Impossible de supprimer le dossier de campagne : " + codCampagne + ", vous devez le supprimer à la main", e);
- return false;
+ } catch (final Exception e) {
+ logger.error("Impossible de supprimer le dossier de campagne : " + codCampagne, e);
+ throw new FileException(e);
}
}
/**
- * @see fr.univlorraine.ecandidat.services.file.FileManager#isFileCandidatureOpiExist(fr.univlorraine.ecandidat.entities.ecandidat.PjOpi, fr.univlorraine.ecandidat.entities.ecandidat.Fichier,
+ * @see fr.univlorraine.ecandidat.services.file.FileManager#isFileCandidatureOpiExist(fr.univlorraine.ecandidat.entities.ecandidat.PjOpi,
+ * fr.univlorraine.ecandidat.entities.ecandidat.Fichier,
* java.lang.String)
*/
@Override
public Boolean isFileCandidatureOpiExist(final PjOpi pjOpi, final Fichier file, final String complementLog) throws FileException {
- Session session = getCmisSession();
+ final Session session = getCmisSession();
try {
/* Dossier de base pour les candidats */
- Folder master = getFolderApoCandidature();
+ final Folder master = getFolderApoCandidature();
if (master == null) {
return null;
}
/* Dossier de base pour l'ind_opi */
- Folder folderCandidat = FileUtils.getFolder(MethodUtils.getFolderOpiPjPath(master.getPath(), pjOpi.getCodIndOpi()), session);
+ final Folder folderCandidat = FileUtils.getFolder(MethodUtils.getFolderOpiPjPath(master.getPath(), pjOpi.getCodIndOpi()), session);
/* Nom du fichier à rechercher */
- String nomFichier = MethodUtils.getFileOpiPj(pjOpi.getId().getCodApoPj(), pjOpi.getCodIndOpi());
+ final String nomFichier = MethodUtils.getFileOpiPj(pjOpi.getId().getCodApoPj(), pjOpi.getCodIndOpi());
/* Requete CMIS pour rechercher le fichier */
- QueryStatement qs = session.createQueryStatement("SELECT * FROM cmis:document WHERE IN_FOLDER(?) AND cmis:name LIKE ?");
+ final QueryStatement qs = session.createQueryStatement("SELECT * FROM cmis:document WHERE IN_FOLDER(?) AND cmis:name LIKE ?");
qs.setId(1, folderCandidat);
qs.setString(2, nomFichier + "%");
/* True si la requete ramene plus de 0 resultats */
return qs.query(true).getTotalNumItems() > 0;
- } catch (Exception e) {
+ } catch (final Exception e) {
throw new FileException(e);
}
}
diff --git a/src/main/java/fr/univlorraine/ecandidat/services/file/FileManagerFileSystemImpl.java b/src/main/java/fr/univlorraine/ecandidat/services/file/FileManagerFileSystemImpl.java
index 24155062..16c38535 100644
--- a/src/main/java/fr/univlorraine/ecandidat/services/file/FileManagerFileSystemImpl.java
+++ b/src/main/java/fr/univlorraine/ecandidat/services/file/FileManagerFileSystemImpl.java
@@ -49,14 +49,13 @@
/**
* Class d'implementation de l'interface de manager de fichier pour le File System
- *
* @author Kevin Hergalant
*/
@SuppressWarnings("serial")
@Component(value = "fileManagerFileSystemImpl")
public class FileManagerFileSystemImpl implements FileManager {
- private Logger logger = LoggerFactory.getLogger(FileManagerFileSystemImpl.class);
+ private final Logger logger = LoggerFactory.getLogger(FileManagerFileSystemImpl.class);
/* applicationContext pour les messages */
@Resource
@@ -77,7 +76,6 @@ public FileManagerFileSystemImpl() {
/**
* Constructeur et affectation des variables
- *
* @param folderGestionnaire
* @param folderCandidat
*/
@@ -97,27 +95,26 @@ public String getType() {
/** @see fr.univlorraine.ecandidat.services.file.FileManager#testSession() */
@Override
public Boolean testSession() {
- Boolean testGest = directoryExistFileSystem(folderCandidat);
- Boolean testCand = directoryExistFileSystem(folderCandidat);
+ final Boolean testGest = directoryExistFileSystem(folderCandidat);
+ final Boolean testCand = directoryExistFileSystem(folderCandidat);
if (!testGest || !testCand) {
return false;
}
return true;
}
- /*
- * (non-Javadoc)
- * @see fr.univlorraine.ecandidat.services.file.FileManager#deleteFile(fr.univlorraine.ecandidat.entities.ecandidat.Fichier, java.lang.Boolean)
- */
+ /* (non-Javadoc)
+ *
+ * @see fr.univlorraine.ecandidat.services.file.FileManager#deleteFile(fr.univlorraine.ecandidat.entities.ecandidat.Fichier, java.lang.Boolean) */
@Override
public void deleteFile(final Fichier fichier, final Boolean sendErrorLog) throws FileException {
- String path = getFilePath(fichier);
+ final String path = getFilePath(fichier);
try {
- File file = new File(path);
+ final File file = new File(path);
if (file == null || !file.delete()) {
throw new FileException(applicationContext.getMessage("file.error.delete", null, MethodUtils.getLocale()));
}
- } catch (Exception e) {
+ } catch (final Exception e) {
if (sendErrorLog) {
logger.error("Stockage de fichier - FileSystem : erreur de suppression du fichier : " + path, e);
}
@@ -125,32 +122,37 @@ public void deleteFile(final Fichier fichier, final Boolean sendErrorLog) throws
}
}
- /*
- * (non-Javadoc)
- * @see fr.univlorraine.ecandidat.services.file.FileManager#getInputStreamFromFile(fr.univlorraine.ecandidat.entities.ecandidat.Fichier, java.lang.Boolean)
- */
+ /* (non-Javadoc)
+ *
+ * @see fr.univlorraine.ecandidat.services.file.FileManager#getInputStreamFromFile(fr.univlorraine.ecandidat.entities.ecandidat.Fichier, java.lang.Boolean) */
@Override
public InputStream getInputStreamFromFile(final Fichier fichier, final Boolean logAction)
- throws FileException {
+ throws FileException {
try {
return new FileInputStream(new File(getFilePath(fichier)));
- } catch (FileNotFoundException e) {
+ } catch (final FileNotFoundException e) {
if (logAction) {
logger.error("Stockage de fichier - FileSystem : erreur de recuperation du fichier ", e);
}
- throw new FileException(applicationContext.getMessage("file.error.stream", new Object[] {fichier.getNomFichier()}, UI.getCurrent().getLocale()), e);
+ throw new FileException(applicationContext.getMessage("file.error.stream", new Object[] { fichier.getNomFichier() }, UI.getCurrent().getLocale()), e);
}
}
- /*
- * (non-Javadoc)
- * @see fr.univlorraine.ecandidat.services.file.FileManager#createFileFromUpload(fr.univlorraine.ecandidat.utils.ByteArrayInOutStream, java.lang.String, java.lang.String, long, java.lang.String,
- * java.lang.String, fr.univlorraine.ecandidat.entities.ecandidat.Candidature, java.lang.Boolean)
- */
+ /* (non-Javadoc)
+ *
+ * @see fr.univlorraine.ecandidat.services.file.FileManager#createFileFromUpload(fr.univlorraine.ecandidat.utils.ByteArrayInOutStream, java.lang.String,
+ * java.lang.String, long, java.lang.String,
+ * java.lang.String, fr.univlorraine.ecandidat.entities.ecandidat.Candidature, java.lang.Boolean) */
@Override
- public FileCustom createFileFromUpload(final ByteArrayInOutStream file, final String mimeType,
- final String filename, final long length, final String typeFichier, final String prefixe, final Candidature candidature, final Boolean commune) throws FileException {
- String name = prefixe + "_" + formatterDateTimeFile.format(LocalDateTime.now()) + "_" + MethodUtils.cleanFileName(filename);
+ public FileCustom createFileFromUpload(final ByteArrayInOutStream file,
+ final String mimeType,
+ final String filename,
+ final long length,
+ final String typeFichier,
+ final String prefixe,
+ final Candidature candidature,
+ final Boolean commune) throws FileException {
+ final String name = prefixe + "_" + formatterDateTimeFile.format(LocalDateTime.now()) + "_" + MethodUtils.cleanFileName(filename);
String rootPath = "";
String path = "";
if (typeFichier.equals(ConstanteUtils.TYPE_FICHIER_GESTIONNAIRE)) {
@@ -169,21 +171,21 @@ public FileCustom createFileFromUpload(final ByteArrayInOutStream file, final St
/* Creation du chemin de fichiers */
try {
- Path directory = Paths.get(rootPath + path);
+ final Path directory = Paths.get(rootPath + path);
Files.createDirectories(directory);
- } catch (IOException e) {
+ } catch (final IOException e) {
logger.error("Stockage de fichier - FileSystem : erreur de creation du fichier ", e);
MethodUtils.closeRessource(file);
throw new FileException(applicationContext.getMessage("file.error.create", null, UI.getCurrent().getLocale()), e);
}
}
path = path + name;
- String finalPath = rootPath + path;
+ final String finalPath = rootPath + path;
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream(finalPath);
file.writeTo(outputStream);
- } catch (Exception e) {
+ } catch (final Exception e) {
logger.error("Stockage de fichier - FileSystem : erreur de creation du fichier ", e);
throw new FileException(applicationContext.getMessage("file.error.create", null, UI.getCurrent().getLocale()), e);
} finally {
@@ -199,11 +201,11 @@ public FileCustom createFileFromUpload(final ByteArrayInOutStream file, final St
}
/**
- * @param path
- * @return true si le fichier existe
+ * @param path
+ * @return true si le fichier existe
*/
private Boolean checkFileExists(final String path) {
- File f = new File(path);
+ final File f = new File(path);
if (f.exists() && !f.isDirectory()) {
return true;
} else {
@@ -211,10 +213,9 @@ private Boolean checkFileExists(final String path) {
}
}
- /*
- * (non-Javadoc)
- * @see fr.univlorraine.ecandidat.services.file.FileManager#existFile(fr.univlorraine.ecandidat.entities.ecandidat.Fichier)
- */
+ /* (non-Javadoc)
+ *
+ * @see fr.univlorraine.ecandidat.services.file.FileManager#existFile(fr.univlorraine.ecandidat.entities.ecandidat.Fichier) */
@Override
public Boolean existFile(final Fichier file) throws FileException {
return checkFileExists(getFilePath(file));
@@ -222,9 +223,8 @@ public Boolean existFile(final Fichier file) throws FileException {
/**
* Retourne le path d'un fichier suivant son type
- *
- * @param fichier
- * @return le path d'un fichier suivant son type
+ * @param fichier
+ * @return le path d'un fichier suivant son type
*/
private String getFilePath(final Fichier fichier) {
if (fichier.getTypFichier().equals(ConstanteUtils.TYPE_FICHIER_GESTIONNAIRE)) {
@@ -236,9 +236,8 @@ private String getFilePath(final Fichier fichier) {
/**
* Renvoi un customFIle a partir d'un document fileSystem
- *
- * @param doc
- * @return un customFIle a partir d'un document fileSystem
+ * @param doc
+ * @return un customFIle a partir d'un document fileSystem
*/
private FileCustom getFileFromDoc(final String id, final String fileName, final String cod) {
return new FileCustom(id, cod, fileName, "");
@@ -246,15 +245,14 @@ private FileCustom getFileFromDoc(final String id, final String fileName, final
/**
* Verifie qu'un dossier existe en mode filesystem
- *
- * @param path
- * @return true si le directory exist
+ * @param path
+ * @return true si le directory exist
*/
private Boolean directoryExistFileSystem(final String path) {
if (path == null || path.equals("")) {
return false;
}
- File f = new File(path);
+ final File f = new File(path);
if (f.exists() && f.isDirectory()) {
return true;
}
@@ -262,31 +260,30 @@ private Boolean directoryExistFileSystem(final String path) {
return false;
}
- /*
- * (non-Javadoc)
- * @see fr.univlorraine.ecandidat.services.file.FileManager#deleteCampagneFolder(java.lang.String)
- */
+ /* (non-Javadoc)
+ *
+ * @see fr.univlorraine.ecandidat.services.file.FileManager#deleteCampagneFolder(java.lang.String) */
@Override
- public Boolean deleteCampagneFolder(final String codCampagne) {
+ public Boolean deleteCampagneFolder(final String codCampagne) throws FileException {
logger.debug("Suppression du dossier de campagne : " + codCampagne);
- String path = folderCandidat + codCampagne;
- File folderCamp = new File(path);
+ final String path = folderCandidat + codCampagne;
+ final File folderCamp = new File(path);
logger.debug("Suppression du dossier de campagne, Path=" + folderCamp.getPath());
if (folderCamp.exists() && folderCamp.isDirectory()) {
try {
FileUtils.deleteDirectory(folderCamp);
return true;
- } catch (IOException e) {
- logger.error("Impossible de supprimer le dossier de campagne : " + path + ", vous devez le supprimer à la main", e);
+ } catch (final IOException e) {
+ throw new FileException("Impossible de supprimer le dossier de campagne : " + path + ", vous devez le supprimer à la main", e);
}
} else {
- logger.error("Impossible de supprimer le dossier de campagne : " + path + ", celui-ci n'existe pas");
+ throw new FileException("Impossible de supprimer le dossier de campagne : " + path + ", celui-ci n'existe pas");
}
- return false;
}
/**
- * @see fr.univlorraine.ecandidat.services.file.FileManager#isFileCandidatureOpiExist(fr.univlorraine.ecandidat.entities.ecandidat.PjOpi, fr.univlorraine.ecandidat.entities.ecandidat.Fichier,
+ * @see fr.univlorraine.ecandidat.services.file.FileManager#isFileCandidatureOpiExist(fr.univlorraine.ecandidat.entities.ecandidat.PjOpi,
+ * fr.univlorraine.ecandidat.entities.ecandidat.Fichier,
* java.lang.String)
*/
@Override
@@ -297,12 +294,12 @@ public Boolean isFileCandidatureOpiExist(final PjOpi pjOpi, final Fichier file,
return null;
}
/* Dossier de base pour l'ind_opi */
- File folder = new File(MethodUtils.getFolderOpiPjPath(folderApoCandidature, pjOpi.getCodIndOpi()));
+ final File folder = new File(MethodUtils.getFolderOpiPjPath(folderApoCandidature, pjOpi.getCodIndOpi()));
if (!folder.isDirectory()) {
return false;
}
/* Filtre pour rechercher le fichier dans le dossier */
- FilenameFilter filter = new FilenameFilter() {
+ final FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(final File dir, final String name) {
return name.toLowerCase().startsWith(MethodUtils.getFileOpiPj(pjOpi.getId().getCodApoPj(), pjOpi.getCodIndOpi()).toLowerCase());
@@ -310,7 +307,7 @@ public boolean accept(final File dir, final String name) {
};
/* True si le filtre ramene plus de 0 resultats */
return folder.listFiles(filter).length > 0;
- } catch (Exception e) {
+ } catch (final Exception e) {
throw new FileException(e);
}
}
diff --git a/src/main/java/fr/univlorraine/ecandidat/services/siscol/SiScolApogeeWSServiceImpl.java b/src/main/java/fr/univlorraine/ecandidat/services/siscol/SiScolApogeeWSServiceImpl.java
index 6ae33c93..4d471cf0 100644
--- a/src/main/java/fr/univlorraine/ecandidat/services/siscol/SiScolApogeeWSServiceImpl.java
+++ b/src/main/java/fr/univlorraine/ecandidat/services/siscol/SiScolApogeeWSServiceImpl.java
@@ -41,6 +41,10 @@
import org.apache.axis.AxisFault;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
@@ -101,6 +105,7 @@
import fr.univlorraine.ecandidat.entities.siscol.WSPjInfo;
import fr.univlorraine.ecandidat.services.siscol.SiScolRestUtils.SiScolRestException;
import fr.univlorraine.ecandidat.utils.ConstanteUtils;
+import fr.univlorraine.ecandidat.utils.KeyValue;
import fr.univlorraine.ecandidat.utils.MethodUtils;
import fr.univlorraine.ecandidat.utils.NomenclatureUtils;
import gouv.education.apogee.commun.client.utils.WSUtils;
@@ -173,9 +178,15 @@ public class SiScolApogeeWSServiceImpl implements SiScolGenericService, Serializ
@Resource
private transient String urlWsPjApogee;
+ @Resource
+ private transient KeyValue headerWsPjApogee;
+
@Resource
private transient String urlWsCheckInes;
+ @Resource
+ private transient KeyValue headerWsCheckInes;
+
/** @see fr.univlorraine.ecandidat.services.siscol.SiScolGenericService#isImplementationApogee() */
@Override
public Boolean isImplementationApogee() {
@@ -1343,7 +1354,7 @@ public WSPjInfo getPjInfoFromApogee(final String codAnu, final String codEtu, fi
}
params.add("codEtu", codEtu);
params.add("codTpj", codPj);
- final List liste = siScolRestServiceInterface.getList(urlWsPjApogee, ConstanteUtils.WS_APOGEE_PJ_INFO, WSPjInfo[].class, params);
+ final List liste = siScolRestServiceInterface.getList(urlWsPjApogee, ConstanteUtils.WS_APOGEE_PJ_INFO, WSPjInfo[].class, params, headerWsPjApogee);
if (liste == null) {
return null;
}
@@ -1361,9 +1372,12 @@ public WSPjInfo getPjInfoFromApogee(final String codAnu, final String codEtu, fi
}
return null;
} catch (final SiScolRestException e) {
- if (e.getErreurType().equals("nullretrieve.etudiantinexistant")) {
- return null;
- }
+// if (e.getErreurType().equals("nullretrieve.etudiantinexistant")) {
+// return null;
+// } else if (e.getErreurType().equals("nullretrieve.piecejustif")) {
+// return null;
+// }
+
// traiter les autres cas
return null;
} catch (final Exception ex) {
@@ -1390,7 +1404,7 @@ public InputStream getPjFichierFromApogee(final String codAnu, final String codE
params.add("codAnu", codAnu);
params.add("codEtu", codEtu);
params.add("codTpj", codPj);
- return siScolRestServiceInterface.getFile(urlWsPjApogee, ConstanteUtils.WS_APOGEE_PJ_FILE, params);
+ return siScolRestServiceInterface.getFile(urlWsPjApogee, ConstanteUtils.WS_APOGEE_PJ_FILE, params, headerWsPjApogee);
} catch (final SiScolRestException e) {
if (e.getErreurType().equals("nullretrieve.etudiantinexistant")) {
return null;
@@ -1468,7 +1482,15 @@ public Boolean checkStudentINES(final String ine, final String cle) throws SiSco
mapPostParameter.put(ConstanteUtils.WS_INES_PARAM_TYPE, ConstanteUtils.WS_INES_PARAM_TYPE_INES);
mapPostParameter.put(ConstanteUtils.WS_INES_PARAM_INE, ine);
mapPostParameter.put(ConstanteUtils.WS_INES_PARAM_KEY, cle);
- return new RestTemplate().postForObject(uri, mapPostParameter, Boolean.class);
+
+ final HttpHeaders headers = new HttpHeaders();
+ if (headerWsCheckInes != null && headerWsCheckInes.isNotEmpty()) {
+ headers.set(headerWsCheckInes.getKey(), headerWsCheckInes.getValue());
+ }
+
+ final HttpEntity