From 23a46b4be35277e06ec89f48730eeb694e686be8 Mon Sep 17 00:00:00 2001
From: Kenmegne <stephanie.kenmegne@gmail.com>
Date: Thu, 18 Jun 2026 15:40:06 +0000
Subject: [PATCH] add fdx-commons and fdx-consultation
---
fdx-consultation/fdxconsultation-service-impl/src/main/java/com/megatim/fdxconsultation/service/impl/sockets/AdministrationCronBean.java | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 157 insertions(+), 0 deletions(-)
diff --git a/fdx-consultation/fdxconsultation-service-impl/src/main/java/com/megatim/fdxconsultation/service/impl/sockets/AdministrationCronBean.java b/fdx-consultation/fdxconsultation-service-impl/src/main/java/com/megatim/fdxconsultation/service/impl/sockets/AdministrationCronBean.java
new file mode 100644
index 0000000..6729b5d
--- /dev/null
+++ b/fdx-consultation/fdxconsultation-service-impl/src/main/java/com/megatim/fdxconsultation/service/impl/sockets/AdministrationCronBean.java
@@ -0,0 +1,157 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.fdxconsultation.service.impl.sockets;
+
+/**
+ *
+ * @author Lenovo P53
+ */
+import com.bekosoftware.genericdaolayer.dao.tools.RestrictionsContainer;
+import com.megatim.fdxcommons.model.enumeration.EtatOperation;
+import com.megatim.fdxcommons.model.enumeration.TypeOperation;
+import com.megatim.fdxconsultation.core.ifaces.administration.RoleManager;
+import com.megatim.fdxconsultation.core.ifaces.administration.UserManager;
+import com.megatim.fdxconsultation.model.administration.User;
+import com.megatim.fdxconsultation.model.dto.AdministrationNumberDto;
+import com.megatim.fdxconsultation.model.dto.InformationGeneraleDto;
+import com.megatim.fdxconsultation.model.dto.UserDto;
+import com.megatim.fdxconsultation.model.message.systeme.ApplicationData;
+import com.megatim.fdxconsultation.model.message.systeme.UserSesionApplication;
+import com.megatim.fdxconsultation.tools.context.AppCommonContext;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import javax.annotation.PostConstruct;
+import javax.ejb.LocalBean;
+import javax.ejb.Schedule;
+import javax.ejb.Singleton;
+import javax.ejb.Startup;
+import javax.inject.Inject;
+import javax.websocket.Session;
+
+@Singleton
+@Startup
+@LocalBean
+public class AdministrationCronBean {
+
+ @Inject
+ private UserManager userManager;
+
+ @Inject
+ private RoleManager roleManager;
+
+ @PostConstruct
+ public void init() {
+
+ }
+
+// @Schedule(second = "*/1", minute = "*", hour = "*", persistent = false)
+ public void refreshDatas() {
+
+ //Variables
+ ApplicationData message = new ApplicationData();
+ InformationGeneraleDto informationGeneraleDto = null;
+ AdministrationNumberDto administrationNumberDto = null;
+ Iterator<String> iterateur = null;
+ String idSession = null;
+ Session session = null;
+ User utilisateur = null;
+ User utilisateurBD = null;
+
+ try {
+
+ //On crée une instance de l'iterateur
+ iterateur = UserSesionApplication.getInstance().getUsers().keySet().iterator();
+
+ //On construit l'objet AdministrationNumberDto
+ administrationNumberDto = new AdministrationNumberDto();
+ administrationNumberDto.setUtilisateursEnAttenteValidation(countUsers(EtatOperation.ATTENTE_VALIDATION));
+ administrationNumberDto.setRolesEnAttenteValidation(countRoles(EtatOperation.ATTENTE_VALIDATION));
+
+ //On construit l'objet InformationGeneraleDto
+ informationGeneraleDto = new InformationGeneraleDto();
+
+ //On parcourt la liste des sessions
+ while (iterateur.hasNext()) {
+
+ //On recupère l'id de la session
+ idSession = iterateur.next();
+
+ //On filtre par type
+ if (UserSesionApplication.getInstance().getUsers() != null && UserSesionApplication.getInstance().getUsers().get(idSession) != null
+ && (UserSesionApplication.getInstance().getUsers().get(idSession).getType() != null
+ && UserSesionApplication.getInstance().getUsers().get(idSession).getType().equalsIgnoreCase(AppCommonContext.CODE_WEB_SOCKET_PATH_APPLICATION_MESSAGE))) {
+
+ //On recupère la session
+ session = UserSesionApplication.getInstance().getUsers().get(idSession).getSession();
+
+ //On recupère l'utilisateur associé à cette session
+ utilisateur = UserSesionApplication.getInstance().getUsers().get(idSession).getUtilisateur();
+ utilisateurBD = userManager.findById(utilisateur.getId());
+
+ //Si non null
+ if (utilisateurBD != null) {
+
+ //On set la clé de la session
+ informationGeneraleDto.setSessionKeyUser(utilisateurBD.getCleSession());
+
+ }
+
+ //On hydrate le message
+ message.setInformationGeneraleDto(informationGeneraleDto);
+ message.setAdministrationNumberDto(administrationNumberDto);
+ message.setUtlisateursConnectes(obtenirListeUtilisateursConnectes());
+
+ //On envoie le message
+ UserSesionApplication.getInstance().send(session, message);
+
+ }
+
+ }
+
+ } catch (Exception ex) {
+
+ //On affiche les erreurs
+ ex.printStackTrace();
+
+ }
+
+ }
+
+ /**
+ * Methode permettant de recuperer la liste des utilisateurs connectés
+ *
+ * @return
+ */
+ private List<UserDto> obtenirListeUtilisateursConnectes() {
+ List<UserDto> liste = new ArrayList<UserDto>();
+ String idSession = null;
+ Iterator<String> iterateur = null;
+ UserDto userDto = null;
+ iterateur = UserSesionApplication.getInstance().getUsers().keySet().iterator();
+ while (iterateur.hasNext()) {
+ idSession = iterateur.next();
+ userDto = new UserDto();
+ userDto.setUserName(UserSesionApplication.getInstance().getUsers().get(idSession).getUtilisateur().getUserName());
+ liste.add(userDto);
+ }
+ return liste;
+ }
+
+ private long countUsers(EtatOperation etatOperation) {
+ RestrictionsContainer requeteur = RestrictionsContainer.newInstance();
+ requeteur.addEq("typeOperation", TypeOperation.AJOUTER);
+ requeteur.addEq("etatOperation", etatOperation);
+ return userManager.count(requeteur.getPredicats());
+ }
+
+ private long countRoles(EtatOperation etatOperation) {
+ RestrictionsContainer requeteur = RestrictionsContainer.newInstance();
+ requeteur.addEq("typeOperation", TypeOperation.AJOUTER);
+ requeteur.addEq("etatOperation", etatOperation);
+ return roleManager.count(requeteur.getPredicats());
+ }
+
+}
--
Gitblit v1.10.0