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/DataConsumptionOperationsImpl.java | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 168 insertions(+), 0 deletions(-)
diff --git a/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/helper/DataConsumptionOperationsImpl.java b/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/helper/DataConsumptionOperationsImpl.java
new file mode 100644
index 0000000..86751bf
--- /dev/null
+++ b/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/helper/DataConsumptionOperationsImpl.java
@@ -0,0 +1,168 @@
+/*
+ * 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.commons.tools.exceptions.ApplicationServerException;
+import com.megatim.fdxcommons.model.enumeration.CriteriaLogicConnector;
+import com.megatim.fdxcommons.model.enumeration.Operateur;
+import com.megatim.fdxcommons.model.integration.ColumnDefinition;
+import com.megatim.fdxcommons.model.pojo.CriteriaEntityFromView;
+import com.megatim.fdxcommons.model.pojo.PageData;
+import com.megatim.fdxcommons.tools.database.connection.DBConnection;
+import com.megatim.fdxcommons.tools.database.queries.metadata.QueryCriterion;
+import com.megatim.fdxcommons.tools.database.queries.metadata.SelectQueryResult;
+import com.megatim.fdxcommons.tools.database.tables.appcolumns.EnCoursProductionColumnDefinition;
+import com.megatim.fdxcommons.tools.database.tables.FdxApiTable;
+import com.megatim.fdxcommons.tools.exceptions.CommonApplicationServerException;
+import com.megatim.fdxcommons.tools.utils.CriteriaEntityFromViewToQueryCriterion;
+import com.megatim.fdxconsultation.core.ifaces.customtypefichier.CustomTypeFichierManager;
+import com.megatim.fdxconsultation.core.ifaces.integration.ColumnDefinitionManager;
+import com.megatim.fdxconsultation.core.ifaces.helper.DataConsumptionOperations;
+import com.megatim.fdxconsultation.core.impl.utils.FdxTableUtils;
+import com.megatim.fdxconsultation.model.administration.User;
+import com.megatim.fdxconsultation.model.dtos.reporting.CustomTypeFichierReportConfiguration;
+import com.megatim.fdxconsultation.model.dtos.reporting.CustomTypeFichierReportConfigurationFromView;
+import com.megatim.fdxconsultation.model.mappers.MapStructMapper;
+import com.megatim.fdxconsultation.tools.context.AppCommonContext;
+import java.io.File;
+import java.sql.Connection;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.annotation.Resource;
+import javax.enterprise.context.Dependent;
+import javax.inject.Inject;
+import javax.sql.DataSource;
+
+/**
+ *
+ * @author ASUS
+ */
+@Dependent
+public class DataConsumptionOperationsImpl implements DataConsumptionOperations {
+
+ @Resource(lookup = AppCommonContext.JNDI_NAME)
+ private DataSource dataSource;
+
+ @Inject
+ MapStructMapper mapper;
+
+ @Inject
+ com.megatim.fdxcommons.model.mappers.MapStructMapper commonMapper;
+
+ @Inject
+ CustomTypeFichierManager customTypeFichierManager;
+
+ @Inject
+ ColumnDefinitionManager columnDefinitionManager;
+
+ @Override
+ public List<Map<String, Object>> findByCriteria(String referentielVersion, String codeTypeFichier, CriteriaEntityFromView criterion) {
+ try ( Connection connection = new DBConnection(dataSource).connection()) {
+ SelectQueryResult result = selectResult(connection, codeTypeFichier, referentielVersion, curentDataProductionCriterion(criterion));
+ return FdxTableUtils.fdxTableRowToListMap(result.rows());
+
+ } catch (Exception ex) {
+ Logger.getLogger(DataConsumptionOperationsImpl.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
+ throw new CommonApplicationServerException();
+ }
+ }
+
+ @Override
+ public Long count(String referentielVersion, String codeTypeFichier, CriteriaEntityFromView criterion) {
+ try ( Connection connection = new DBConnection(dataSource).connection()) {
+ return table(codeTypeFichier, referentielVersion)
+ .count(curentDataProductionCriterion(criterion), connection);
+ } catch (Exception ex) {
+ throw new ApplicationServerException(ex.getMessage());
+ }
+ }
+
+ @Override
+ public PageData findByCriteriaWithPagination(String referentielVersion, String codeTypeFichier, CriteriaEntityFromView criterion, int pageNumber, int pageSize) {
+ try ( Connection connection = new DBConnection(dataSource).connection()) {
+ return getPageData(connection, codeTypeFichier, referentielVersion, curentDataProductionCriterion(criterion), pageNumber, pageSize);
+ } catch (Exception ex) {
+ Logger.getLogger(DataConsumptionOperationsImpl.class.getName()).log(Level.SEVERE, ex.getMessage(), ex);
+ throw new CommonApplicationServerException();
+ }
+
+ }
+
+ @Override
+ public File printAll(String referentielVersion, String codeTypeFichier, CustomTypeFichierReportConfigurationFromView reportConfigurationFromView, User userConnected) throws Exception {
+ CustomTypeFichierReportConfiguration reportConfiguration = mapper.customTypeFichierReportConfigurationFromViewToCustomTypeFichierReportConfiguration(reportConfigurationFromView);
+ return customTypeFichierManager.generatePdf(reportConfiguration, codeTypeFichier, userConnected, false);
+ }
+
+ @Override
+ public List<ColumnDefinition> getPrintableColumns(String referentielVersion, String codeTypeFichier) {
+ return columnDefinitionManager.findByReferentielAndTypeFichier(referentielVersion, codeTypeFichier);
+ }
+
+ private QueryCriterion curentDataProductionCriterion(CriteriaEntityFromView criterion) {
+ QueryCriterion queryCriterion = new CriteriaEntityFromViewToQueryCriterion(criterion).queryCriterion();
+
+ if (queryCriterion != null) {
+ return new QueryCriterion(null,
+ null,
+ null,
+ CriteriaLogicConnector.AND,
+ Arrays.asList(queryCriterion,
+ new QueryCriterion(new EnCoursProductionColumnDefinition().name(), false, Operateur.EQUALS, null, Arrays.asList()))
+ );
+ } else {
+ return new QueryCriterion(new EnCoursProductionColumnDefinition().name(), false, Operateur.EQUALS, null, Arrays.asList());
+ }
+
+ }
+
+ private SelectQueryResult selectResult(Connection connection, String codeTypeFichier, String referentielVersion, QueryCriterion queryCriterion) {
+ try {
+ return table(codeTypeFichier, referentielVersion).selectResult(queryCriterion, connection);
+ } catch (Exception ex) {
+ throw new ApplicationServerException(ex.getMessage());
+ }
+ }
+
+ private SelectQueryResult selectResult(Connection connection, String codeTypeFichier, String referentielVersion, QueryCriterion queryCriterion, int pageNumber, int pageSize) {
+ try {
+ int offset = (pageNumber - 1) * pageSize;
+ return table(codeTypeFichier, referentielVersion).selectResult(queryCriterion, connection, pageSize, offset);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw new ApplicationServerException(ex.getMessage());
+ }
+ }
+
+ private FdxApiTable table(String codeTypeFichier, String referentielVersion) {
+ return new FdxApiTable(codeTypeFichier, referentielVersion);
+ }
+
+ private PageData getPageData(Connection connection, String codeTypeFichier, String referentielVersion, QueryCriterion queryCriterion, int pageNumber, int pageSize) {
+
+ try {
+
+ SelectQueryResult result = selectResult(connection, codeTypeFichier, referentielVersion, queryCriterion, pageNumber, pageSize);
+
+ List<Map<String, Object>> loadedData = FdxTableUtils.fdxTableRowToListMap(result.rows());
+ long totalNumberOfElements = table(codeTypeFichier, referentielVersion).count(queryCriterion, connection);
+
+ PageData pageData = new PageData();
+ pageData.setLoadedData(loadedData);
+ pageData.setPageNumber(pageNumber);
+ pageData.setPageSize(pageSize);
+ pageData.setTotalNumberOfElements(totalNumberOfElements);
+
+ return pageData;
+
+ } catch (Exception ex) {
+ throw new ApplicationServerException(ex.getMessage());
+ }
+ }
+
+}
--
Gitblit v1.10.0