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-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/api/supervision/TransfertManagerImpl.java | 133 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 133 insertions(+), 0 deletions(-)
diff --git a/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/api/supervision/TransfertManagerImpl.java b/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/api/supervision/TransfertManagerImpl.java
new file mode 100644
index 0000000..972cb41
--- /dev/null
+++ b/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/api/supervision/TransfertManagerImpl.java
@@ -0,0 +1,133 @@
+package com.megatim.fdxconsultation.core.impl.api.supervision;
+
+import com.bekosoftware.genericdaolayer.dao.ifaces.GenericDAO;
+import com.bekosoftware.genericmanagerlayer.core.impl.AbstractGenericManager;
+import com.fdx.messaging.common.TransfertDataMessage;
+import com.megatim.fdxconsultation.core.ifaces.supervision.TransfertManager;
+import com.megatim.fdxconsultation.dao.ifaces.abstracts.PaginationWithSearchEnityDAO;
+import com.megatim.fdxconsultation.dao.ifaces.supervision.TransfertDAO;
+import com.megatim.fdxconsultation.dao.impl.supervision.TransfertMessageKey;
+import com.megatim.fdxconsultation.model.searchentities.TransfertSearch;
+import com.megatim.fdxconsultation.model.supervision.SensTransfert;
+import com.megatim.fdxconsultation.model.supervision.Transfert;
+import com.megatim.fdxconsultation.model.supervision.dto.StandaloneDashboardRequest;
+import com.megatim.fdxconsultation.model.supervision.dto.StandaloneDashboardResponse;
+import com.megatim.fdxconsultation.model.supervision.dto.SupervisionFilterModalFormRequest;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import javax.annotation.PostConstruct;
+import javax.ejb.EJB;
+import javax.enterprise.context.ApplicationScoped;
+
+/**
+ *
+ * @author ASUS
+ */
+@ApplicationScoped
+public class TransfertManagerImpl extends AbstractGenericManager<Transfert, Long> implements TransfertManager {
+
+ @EJB
+ private TransfertDAO dao;
+
+ private final Map<String, Transfert> transfertMap = new ConcurrentHashMap<>();
+
+ @PostConstruct
+ public void init() {
+ findAll().forEach(t -> {
+ String key = new TransfertMessageKey(t).key();
+ transfertMap.put(key, t);
+ });
+ }
+
+ @Override
+ public GenericDAO<Transfert, Long> getDao() {
+ return dao;
+ }
+
+ @Override
+ public PaginationWithSearchEnityDAO<Transfert, Long, TransfertSearch> getPaginationDao() {
+ return dao;
+ }
+
+ @Override
+ public String getEntityIdName() {
+ return "id";
+ }
+
+ @Override
+ public Transfert persistTransfert(Transfert t) {
+
+ String key = new TransfertMessageKey(t).key();
+ Transfert transfert = transfertMap.get(key);
+
+ if (transfert == null) {
+
+ transfertMap.put(key, save(t));
+
+ } else if (!transfert.getEtatTransfert().equals(t.getEtatTransfert())) {
+
+ setFields(transfert, t);
+ transfertMap.put(key, update(transfert.getId(), transfert));
+
+ }
+
+ return transfertMap.get(key);
+ }
+
+ @Override
+ public StandaloneDashboardResponse standaloneDashboardResponse(StandaloneDashboardRequest standaloneDashboardRequest) {
+
+ LocalDateTime dateDebut = standaloneDashboardRequest.getDateDebut();
+ LocalDateTime dateFin
+ = (standaloneDashboardRequest.getDateFin() != null)
+ ? standaloneDashboardRequest.getDateFin().toLocalDate().atTime(LocalTime.MAX)
+ : null;
+ SensTransfert sens = standaloneDashboardRequest.getSens();
+
+ StandaloneDashboardResponse response = new StandaloneDashboardResponse();
+
+ response.setNombreTypeFichier(dao.getNombreTypeFichier(sens, dateDebut, dateFin));
+ response.setTailleTotale(dao.getTailleTotale(sens, dateDebut, dateFin));
+ response.setTotalTransfert(dao.getTotalTransfert(sens, dateDebut, dateFin));
+ response.setTotalTransfertAutomatique(dao.getTransfertsAutomatique(sens, dateDebut, dateFin));
+ response.setTotalTransfertEchec(dao.getTransfertsEchec(sens, dateDebut, dateFin));
+ response.setTotalTransfertManuel(dao.getTransfertsManuel(sens, dateDebut, dateFin));
+ response.setTransfertAttente(dao.getTransfertsAttente(sens, dateDebut, dateFin));
+ response.setTransfertReussie(dao.getTransfertsReussie(sens, dateDebut, dateFin));
+ response.setVitesseMoyenne(dao.getVitesseMoyenne(sens, dateDebut, dateFin));
+
+ if (response.getTotalTransfert() > 0) {
+ response.setTailleMoyenne(response.getTailleTotale() / response.getTotalTransfert());
+ } else {
+ response.setTailleMoyenne(0);
+ }
+
+ return response;
+
+ }
+
+ @Override
+ public List<Transfert> filter(SupervisionFilterModalFormRequest supervisionFilterModalFormRequest) {
+ List<Transfert> transferts = dao.filter(supervisionFilterModalFormRequest);
+ transferts.sort((t1, t2) -> Long.compare(t2.getId(), t1.getId()));
+ return transferts;
+ }
+
+ private void setFields(Transfert transfert, Transfert t) {
+
+ transfert.setCodeAgent(t.getCodeAgent());
+ transfert.setCodeAgentRecepteur(t.getCodeAgentRecepteur());
+ transfert.setEtatTransfert(t.getEtatTransfert());
+ transfert.setSensTransfert(t.getSensTransfert());
+ transfert.setDateDebut(t.getDateDebut());
+ transfert.setDateFin(t.getDateFin());
+ transfert.setNomFichier(t.getNomFichier());
+ transfert.setSended(t.getSended());
+ transfert.setTaille(t.getTaille());
+ transfert.setTypeFichier(t.getTypeFichier());
+ }
+
+}
--
Gitblit v1.10.0