import groovy.sql.Sql
import java.sql.Timestamp
import org.lilie.services.eliot.securite.impl.Autorite
+import org.lilie.services.eliot.temps.DateUtil
class SuppressionPhysiqueUtilisateursService {
def dataSource
+ private final static String FILE_DATE_FORMAT = '%td-%<tm-%<tY %<tHh%<tM'
+
public Timestamp getDateDebutDerniereBascule(){
Sql sql = new Sql(dataSource)
}
- public def supprimerPhysiquementUtilisateurs(Timestamp dateMaximale,
- Integer autoritesIdASupprimer){
+ public void supprimerPhysiquementUtilisateurs(Timestamp dateMaximale,
+ Integer autoritesIdASupprimer,
+ String urlDossierRapportsSuppression,
+ String urlCss){
- Sql sql = new Sql(dataSource)
+ SuppressionPhysiqueRapport suppressionPhysiqueRapport = new SuppressionPhysiqueRapport(
+ dateSuppression: DateUtil.formateDateJourHeure(new Date())
+ )
- String str = """SELECT * FROM suppression_utilisateurs('$dateMaximale', $autoritesIdASupprimer)"""
+ Long startTime = System.currentTimeMillis()
+ Sql sql = new Sql(dataSource)
+ String str = """SELECT * FROM suppression_utilisateurs('$dateMaximale', $autoritesIdASupprimer)"""
def result = sql.rows(str)
- return result
+ int dureeMs = (System.currentTimeMillis() - startTime)
+ suppressionPhysiqueRapport.tempsExecution = dureeMs
+
+ suppressionPhysiqueRapport = remplitRapport(suppressionPhysiqueRapport, result)
+
+ // Construit le générateur de rapport HTML
+ SuppressionUtilisateursRapportHtmlBuilder rapportHtmlBuilder =
+ new SuppressionUtilisateursRapportHtmlBuilder(
+ rapport: suppressionPhysiqueRapport,
+ urlCss: urlCss
+ )
+
+ enregistreRapport(urlDossierRapportsSuppression, rapportHtmlBuilder)
+ }
+
+ private SuppressionPhysiqueRapport remplitRapport(SuppressionPhysiqueRapport rapport,
+ def donnees){
+ rapport.nb_deleted_textes_preferences_ut = donnees.getAt('nb_deleted_textes_preferences_ut')[0]
+ rapport.nb_deleted_signature = donnees.getAt('nb_deleted_signature')[0]
+ rapport.nb_deleted_rel_cahier_acteur = donnees.getAt('nb_deleted_rel_cahier_acteur')[0]
+ rapport.nb_deleted_rel_activite_acteur = donnees.getAt('nb_deleted_rel_activite_acteur')[0]
+ rapport.nb_deleted_pref_agenda = donnees.getAt('nb_deleted_pref_agenda')[0]
+ rapport.nb_deleted_modele_appreciation = donnees.getAt('nb_deleted_modele_appreciation')[0]
+ rapport.nb_deleted_evment = donnees.getAt('nb_deleted_evment')[0]
+ rapport.nb_deleted_dossier = donnees.getAt('nb_deleted_dossier')[0]
+ rapport.nb_deleted_commentaire = donnees.getAt('nb_deleted_commentaire')[0]
+ rapport.nb_deleted_discussion = donnees.getAt('nb_deleted_discussion')[0]
+ rapport.nb_deleted_autorisation = donnees.getAt('nb_deleted_autorisation')[0]
+ rapport.nb_deleted_agenda = donnees.getAt('nb_deleted_agenda')[0]
+ rapport.nb_deleted_pref_notes = donnees.getAt('nb_deleted_pref_notes')[0]
+ rapport.nb_deleted_notif_pref = donnees.getAt('nb_deleted_notif_pref')[0]
+ rapport.nb_deleted_fiche_eleve_commentaire = donnees.getAt('nb_deleted_fiche_eleve_commentaire')[0]
+ rapport.nb_deleted_acces_fonctionnalite_personne = donnees.getAt('nb_deleted_acces_fonctionnalite_personne')[0]
+ rapport.nb_deleted_compte_utilisateur = donnees.getAt('nb_deleted_compte_utilisateur')[0]
+ rapport.nb_deleted_chapitre = donnees.getAt('nb_deleted_chapitre')[0]
+ rapport.nb_deleted_question_tdbase = donnees.getAt('nb_deleted_question_tdbase')[0]
+ rapport.nb_deleted_sujet_tdbase = donnees.getAt('nb_deleted_sujet_tdbase')[0]
+ rapport.nb_deleted_ressource = donnees.getAt('nb_deleted_ressource')[0]
+ rapport.nb_deleted_date_activite = donnees.getAt('nb_deleted_date_activite')[0]
+ rapport.nb_deleted_activite = donnees.getAt('nb_deleted_activite')[0]
+ rapport.nb_deleted_cahier_de_textes = donnees.getAt('nb_deleted_cahier_de_textes')[0]
+ rapport.nb_deleted_personne = donnees.getAt('nb_deleted_personne')[0]
+ rapport.nb_deleted_autorite = donnees.getAt('nb_deleted_autorite')[0]
+
+ return rapport
+ }
+
+ private void enregistreRapport(String dossier,
+ SuppressionUtilisateursRapportHtmlBuilder rapportHtmlBuilder) {
+
+ // Récupère le dossier s'il existe, si non le crée
+ File dos = new File(dossier)
+ dos.mkdir()
+
+ // Enregistre le rapport
+ File fichierRapport = new File(dossier,
+ "rapport " +
+ String.format(FILE_DATE_FORMAT, Calendar.instance.time) +
+ ".html"
+ )
+
+ fichierRapport.withWriter('UTF-8') { writer ->
+ rapportHtmlBuilder.writeHtml(writer)
+ }
}
}