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-dao-impl/src/main/java/com/megatim/fdxconsultation/dao/impl/referentiel/TypeFichierDAOImpl.java |   82 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 82 insertions(+), 0 deletions(-)

diff --git a/fdx-consultation/fdxconsultation-dao-impl/src/main/java/com/megatim/fdxconsultation/dao/impl/referentiel/TypeFichierDAOImpl.java b/fdx-consultation/fdxconsultation-dao-impl/src/main/java/com/megatim/fdxconsultation/dao/impl/referentiel/TypeFichierDAOImpl.java
new file mode 100644
index 0000000..ccac5db
--- /dev/null
+++ b/fdx-consultation/fdxconsultation-dao-impl/src/main/java/com/megatim/fdxconsultation/dao/impl/referentiel/TypeFichierDAOImpl.java
@@ -0,0 +1,82 @@
+package com.megatim.fdxconsultation.dao.impl.referentiel;
+
+import com.megatim.fdxcommons.model.referentiel.Referentiel;
+import com.megatim.fdxcommons.model.referentiel.TypeFichier;
+import com.megatim.fdxconsultation.dao.ifaces.referentiel.ReferentielDAO;
+import com.megatim.fdxconsultation.dao.ifaces.referentiel.TypeFichierConsultationDAO;
+import com.megatim.fdxconsultation.model.dto.ParticipantToFichierDto;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+import javax.ejb.Stateless;
+import javax.inject.Inject;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+import javax.persistence.Tuple;
+
+/**
+ *
+ * @author ASUS
+ */
+@Stateless
+public class TypeFichierDAOImpl implements TypeFichierConsultationDAO {
+
+    @PersistenceContext(unitName = "fdxConsultationPersistenceUnit")
+    protected EntityManager em;
+
+    @Inject
+    private ReferentielDAO referentielDAO;
+
+    public TypeFichierDAOImpl() {
+    }
+
+    @Override
+    public EntityManager getEntityManager() {
+        return em;
+    }
+
+    @Override
+    public Class<TypeFichier> getManagedEntityClass() {
+        return (TypeFichier.class);
+    }
+
+    @Override
+    public TypeFichier getById(String id) {
+        Query query = em.createQuery("SELECT t from TypeFichier t"
+                + " LEFT JOIN FETCH t.routages LEFT JOIN FETCH t.validateurFichiers "
+                + " LEFT JOIN FETCH t.validateurFichierConfigurations"
+                + " WHERE t.code = :code");
+        query.setParameter("code", id);
+
+        Optional<TypeFichier> optionalTypeFichier = query.getResultList().stream().findFirst();
+        return optionalTypeFichier.isPresent() ? optionalTypeFichier.get() : null;
+    }
+
+    @Override
+    public List<ParticipantToFichierDto> getParticpantToFichierDto(String username) {
+        String referentielVersion = getReferentielVersion();
+        if (referentielVersion == null) {
+            return new ArrayList<>();
+        }
+
+        List<Tuple> results = em.createQuery("SELECT t.participant.code, t.code AS code "
+                + "FROM TypeFichier t "
+                + "WHERE code IN (SELECT c.codeTypeFichier FROM ColumnDefinition c WHERE c.referentielVersion = :referentielVersion) "
+                + "AND t IN (SELECT t1 FROM User u LEFT JOIN u.typeFichiers t1 WHERE u.userName = :username)", Tuple.class)
+                .setParameter("referentielVersion", referentielVersion)
+                .setParameter("username", username)
+                .getResultList();
+
+        return results.stream().map(t -> {
+            ParticipantToFichierDto dto = new ParticipantToFichierDto(t.get(0, String.class), t.get(1, String.class));
+            return dto;
+        }).collect(Collectors.toList());
+    }
+
+    private String getReferentielVersion() {
+        Referentiel refEncours = referentielDAO.getReferentielEnCours();
+        return refEncours != null ? refEncours.getVersion() : null;
+    }
+}

--
Gitblit v1.10.0