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