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/helper/ReferentielConsumptionHelperImpl.java |   92 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 92 insertions(+), 0 deletions(-)

diff --git a/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/helper/ReferentielConsumptionHelperImpl.java b/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/helper/ReferentielConsumptionHelperImpl.java
new file mode 100644
index 0000000..11a7d52
--- /dev/null
+++ b/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/helper/ReferentielConsumptionHelperImpl.java
@@ -0,0 +1,92 @@
+package com.megatim.fdxconsultation.core.impl.helper;
+
+import com.megatim.fdxcommons.core.ifaces.customtypefichier.DynamicClassCreator;
+import com.megatim.fdxcommons.core.ifaces.db.ReferentielDataSaver;
+import com.megatim.fdxcommons.core.ifaces.helper.DataInMemoryHandler;
+import com.megatim.fdxcommons.core.ifaces.helper.ReferentielConsumptionHelper;
+import com.megatim.fdxcommons.core.ifaces.helper.referentiel.DynamicTableCreator;
+import com.megatim.fdxcommons.core.ifaces.helper.referentiel.TableDefinitionFilter;
+import com.megatim.fdxcommons.model.pojo.ReferentielToImportData;
+import com.megatim.fdxcommons.model.referentiel.Referentiel;
+import com.megatim.fdxconsultation.core.ifaces.helper.TableauBordHandler;
+import com.megatim.fdxconsultation.core.ifaces.referentiel.ReferentielManager;
+import com.megatim.fdxconsultation.tools.context.AppCommonContext;
+import javax.annotation.Resource;
+import javax.enterprise.context.Dependent;
+import javax.inject.Inject;
+import javax.sql.DataSource;
+import javax.transaction.Transactional;
+import com.megatim.fdxconsultation.core.ifaces.referentiel.historique.ReferentielIntegrationHistoriqueManager;
+import com.megatim.fdxcommons.model.referentiel.historique.ReferentielIntegrationHistorique;
+import java.util.List;
+import com.megatim.fdxcommons.model.referentiel.historique.pojo.TableDefinitionFiltered;
+import java.util.ArrayList;
+
+/**
+ *
+ * @author ASUS
+ */
+@Dependent
+public class ReferentielConsumptionHelperImpl implements ReferentielConsumptionHelper {
+
+    @Inject
+    private DynamicClassCreator dynamicClassCreator;
+
+    @Inject
+    TableauBordHandler tableauBordHandler;
+
+    @Inject
+    ReferentielManager referentielManager;
+
+    @Inject
+    private DynamicTableCreator dynamicTableCreator;
+
+    @Inject
+    private ReferentielDataSaver referentielDataSaver;
+
+    @Inject
+    private DataInMemoryHandler dataInMemoryHandler;
+
+    @Resource(lookup = AppCommonContext.JNDI_NAME)
+    private DataSource dataSource;
+
+    @Inject
+    private ReferentielIntegrationHistoriqueManager refIntegrationHistoriqueManager;
+
+    @Inject
+    TableDefinitionFilter tableDefinitionFilter;
+
+    @Override
+    @Transactional
+    public void consume(ReferentielToImportData referentielToImportData) throws Exception {
+        Referentiel previousRef = referentielManager.getReferentielEnCours();
+
+        //On enregistre les données de référentiel 
+        referentielDataSaver.persist(referentielToImportData);
+
+        List<ReferentielIntegrationHistorique> refsHistoriqueIntegration = previousRef == null
+                ? new ArrayList<>()
+                : refIntegrationHistoriqueManager.suitableIntegrationHistorique(previousRef.getVersion());
+
+        TableDefinitionFiltered tableDefinitionFiltered = tableDefinitionFilter
+                .doFilter(previousRef == null ? null : previousRef.getVersion(),
+                        referentielToImportData,
+                        refsHistoriqueIntegration);
+
+        dynamicTableCreator.createDynamicTables(tableDefinitionFiltered.getTablesToCreate());
+        saveRefIntegrationHistorique(tableDefinitionFiltered.getRefIntegrationHistorique());
+
+        //Charger les nouvelles informations du référentiel dans un objet en mémoire
+        dataInMemoryHandler.initializeDataInMemory();
+
+        //Charger les nouvelles informations du référentiel dans un objet en mémoire
+        dataInMemoryHandler.initializeDataInMemory();
+
+    }
+
+    private void saveRefIntegrationHistorique(List<ReferentielIntegrationHistorique> refIntHistoriques) {
+        for (ReferentielIntegrationHistorique r : refIntHistoriques) {
+            refIntegrationHistoriqueManager.save(r);
+        }
+    }
+}

--
Gitblit v1.10.0