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/DataInMemoryHandlerImpl.java | 128 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 128 insertions(+), 0 deletions(-)
diff --git a/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/helper/DataInMemoryHandlerImpl.java b/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/helper/DataInMemoryHandlerImpl.java
new file mode 100644
index 0000000..0ff490c
--- /dev/null
+++ b/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/helper/DataInMemoryHandlerImpl.java
@@ -0,0 +1,128 @@
+/*
+ * 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.core.impl.helper;
+
+import com.megatim.fdxcommons.core.ifaces.helper.DataInMemoryHandler;
+import com.megatim.fdxcommons.model.integration.ColumnDefinition;
+import com.megatim.fdxcommons.model.pojo.DataInMemory;
+import com.megatim.fdxcommons.model.referentiel.Referentiel;
+import com.megatim.fdxcommons.model.referentiel.TypeFichier;
+import com.megatim.fdxcommons.model.referentiel.natureproduction.NatureProductionFichier;
+import com.megatim.fdxcommons.model.searchentities.ColumnDefinitionSearch;
+import com.megatim.fdxconsultation.core.ifaces.integration.ColumnDefinitionManager;
+import com.megatim.fdxconsultation.core.ifaces.referentiel.ReferentielManager;
+import com.megatim.fdxconsultation.core.ifaces.referentiel.RoutageManager;
+import com.megatim.fdxconsultation.core.ifaces.referentiel.TypeFichierManager;
+import com.megatim.fdxconsultation.core.ifaces.referentiel.natureproduction.NatureProductionFichierManager;
+import groovy.transform.Synchronized;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+
+/**
+ *
+ * @author ASUS
+ */
+@ApplicationScoped
+public class DataInMemoryHandlerImpl implements DataInMemoryHandler {
+
+ private DataInMemory dataInMemory;
+
+ @Inject
+ ColumnDefinitionManager columnDefinitionManager;
+
+ @Inject
+ private TypeFichierManager typeFichierManager;
+
+ @Inject
+ private ReferentielManager referentielManager;
+
+ @Inject
+ private NatureProductionFichierManager natureProdManager;
+
+ @Inject
+ private RoutageManager routageManager;
+
+ @Inject
+ private DataInMemoryHandler dataInMemoryHandler;
+
+ @Override
+ @Synchronized
+ public void initializeDataInMemory() {
+ dataInMemory = new DataInMemory();
+ Referentiel referentielEncours = referentielManager.getReferentielEnCours();
+
+ if (referentielEncours != null) {
+ dataInMemory.setReferentielEnCours(referentielEncours);
+ dataInMemory.setCodeTypeFichierToTypeFichiers(getTypeFichiers());
+ dataInMemory.setTypeFichierToColumnDefinitions(getColumnsDefinitions(referentielEncours.getVersion()));
+ dataInMemory.setTypeFichierToNatureProductionsFichiers(getNatureProductionFichiers(referentielEncours.getVersion()));
+ getParticipantsForRoutages();
+ }
+ }
+
+ @Override
+ public DataInMemory getDataInMemory() {
+ return this.dataInMemory;
+ }
+
+ private void getParticipantsForRoutages() {
+ dataInMemory.getCodeTypeFichierToTypeFichiers().values().stream().forEach(t -> {
+ dataInMemory.getTypeFichierToParticipantsEnvoi()
+ .put(t.getCode(),
+ routageManager
+ .getParticipantsForSend(dataInMemory.getReferentielEnCours().getVersion(), t.getCode())
+ .stream()
+ .map(p -> p.getCode())
+ .collect(Collectors.toSet())
+ );
+
+ dataInMemory.getTypeFichierToParticipantsReception()
+ .put(t.getCode(),
+ routageManager
+ .getParticipantsForReceive(dataInMemory.getReferentielEnCours().getVersion(), t.getCode())
+ .stream()
+ .map(p -> p.getCode())
+ .collect(Collectors.toSet())
+ );
+
+ });
+
+ }
+ private Map<String, Map<String, ColumnDefinition>> getColumnsDefinitions(String referentielVersion) {
+ Map<String, Map<String, ColumnDefinition>> columnsDefinitionMap = new HashMap<>();
+ ColumnDefinitionSearch searchEntity = new ColumnDefinitionSearch();
+ searchEntity.setReferentielVersion(referentielVersion);
+
+ List<ColumnDefinition> columnsDefinition = columnDefinitionManager.getAll(searchEntity);
+ columnsDefinition.stream().forEach(c -> {
+ if (columnsDefinitionMap.containsKey(c.getCodeTypeFichier())) {
+ Map<String, ColumnDefinition> map = columnsDefinitionMap.get(c.getCodeTypeFichier());
+ map.put(c.getName(), c);
+ columnsDefinitionMap.put(c.getCodeTypeFichier(), map);
+ } else {
+ Map<String, ColumnDefinition> map = new HashMap<>();
+ map.put(c.getName(), c);
+ columnsDefinitionMap.put(c.getCodeTypeFichier(), map);
+ }
+ });
+ return columnsDefinitionMap;
+ }
+
+ private Map<String, TypeFichier> getTypeFichiers() {
+ return typeFichierManager.getAll(null).stream().collect(Collectors.toMap(TypeFichier::getCode, Function.identity()));
+ }
+
+ private Map<String, NatureProductionFichier> getNatureProductionFichiers(String referentielVersion) {
+ return natureProdManager.getByReferentiel(referentielVersion)
+ .stream()
+ .collect(Collectors.toMap(x -> x.getTypeFichier().getCode(), Function.identity()));
+ }
+
+}
--
Gitblit v1.10.0