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/remoteaction/RemoteConfigurationManagerImpl.java | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 174 insertions(+), 0 deletions(-)
diff --git a/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/remoteaction/RemoteConfigurationManagerImpl.java b/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/remoteaction/RemoteConfigurationManagerImpl.java
new file mode 100644
index 0000000..6b3f19a
--- /dev/null
+++ b/fdx-consultation/fdxconsultation-core-impl/src/main/java/com/megatim/fdxconsultation/core/impl/remoteaction/RemoteConfigurationManagerImpl.java
@@ -0,0 +1,174 @@
+/*
+ * 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.remoteaction;
+
+import com.bekosoftware.genericdaolayer.dao.ifaces.GenericDAO;
+import com.bekosoftware.genericdaolayer.dao.tools.RestrictionsContainer;
+import com.bekosoftware.genericmanagerlayer.core.impl.AbstractGenericManager;
+import com.megatim.fdxcommons.core.ifaces.helper.DataInMemoryHandler;
+import com.megatim.fdxcommons.model.dtos.remoteproduction.RemoteConfigurationDto;
+import com.megatim.fdxcommons.model.enumeration.RemoteTypeAction;
+import com.megatim.fdxcommons.model.enumeration.TypeOperation;
+import com.megatim.fdxconsultation.model.remoteaction.RemoteConfiguration;
+import com.megatim.fdxconsultation.core.ifaces.helper.RoutingChecker;
+import com.megatim.fdxconsultation.core.ifaces.remoteaction.PlanificationManager;
+import com.megatim.fdxconsultation.core.ifaces.remoteaction.RemoteConfigurationManager;
+import com.megatim.fdxconsultation.dao.ifaces.abstracts.PaginationWithCriteriaEntityDAO;
+import com.megatim.fdxconsultation.dao.ifaces.remoteaction.RemoteConfigurationDAO;
+import com.megatim.fdxconsultation.model.administration.User;
+import com.megatim.fdxconsultation.model.mappers.MapStructMapper;
+import com.megatim.fdxconsultation.model.remoteaction.Planification;
+import com.megatim.fdxconsultation.tools.context.AppCommonContext;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import javax.ejb.EJB;
+import javax.enterprise.context.Dependent;
+import javax.inject.Inject;
+import javax.transaction.Transactional;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.cdi.CdiCamelContext;
+
+/**
+ *
+ * @author ASUS
+ */
+@Dependent
+public class RemoteConfigurationManagerImpl extends AbstractGenericManager<RemoteConfiguration, String> implements RemoteConfigurationManager {
+
+ @EJB
+ private RemoteConfigurationDAO dao;
+
+ @Inject
+ private PlanificationManager planificationManager;
+
+ @Inject
+ private CdiCamelContext camelContext;
+
+ @Inject
+ private MapStructMapper mapStructMapper;
+
+ @Inject
+ private RoutingChecker routingChecker;
+
+ @Inject
+ private DataInMemoryHandler dataInMemoryHandler;
+
+ @Override
+ public GenericDAO<RemoteConfiguration, String> getDao() {
+ return dao;
+ }
+
+ @Override
+ public String getEntityIdName() {
+ return "codeTypeFichier";
+ }
+
+ @Override
+ @Transactional
+ public RemoteConfiguration saveAndSend(RemoteConfiguration entity, User connectedUser) {
+ if (entity.getRemoteTypeAction().equals(RemoteTypeAction.AJOUTER)) {
+ routingChecker.stopIfNotConsumer(entity.getCodeTypeFichier(), dataInMemoryHandler.getDataInMemory(), entity.getCodeParticipant());
+ }
+ if (entity.getRemoteTypeAction().equals(RemoteTypeAction.CONSULTER)) {
+ routingChecker.stopIfNotProducer(entity.getCodeTypeFichier(), dataInMemoryHandler.getDataInMemory(), entity.getCodeParticipant());
+ }
+ RemoteConfiguration newEntity = add(entity, connectedUser);
+ System.out.println("****************after save************* " + newEntity.getCodeTypeFichier());
+
+ for (Planification p : newEntity.getPlanifications()) {
+ p.setConfiguration(newEntity);
+ planificationManager.update(p.getId(), p);
+ }
+ RemoteConfiguration finalEntity = find(getEntityIdName(), newEntity.getCodeTypeFichier());
+ System.out.println("NB Planifications = " + finalEntity.getPlanifications().size());
+
+ sendMessage(mapStructMapper.remoteConfigurationToRemoteConfigurationDto(finalEntity));
+
+ return finalEntity;
+ }
+
+ @Override
+ public RemoteConfiguration updateAndSend(String id, RemoteConfiguration entity, User connectedUser) {
+ RemoteConfiguration newEntity = modify(id, entity, connectedUser);
+ sendMessage(mapStructMapper.remoteConfigurationToRemoteConfigurationDto(newEntity));
+
+ return newEntity;
+ }
+
+ @Override
+ public void deleteAndSend(String id, User connectedUser) {
+ RemoteConfiguration entity = find(getEntityIdName(), id);
+
+ if (entity != null) {
+ entity.setTypeOperation(TypeOperation.SUPPRIMER);
+ delete(id);
+ sendMessage(mapStructMapper.remoteConfigurationToRemoteConfigurationDto(entity));
+ }
+ }
+
+ @Override
+ public PaginationWithCriteriaEntityDAO<RemoteConfiguration, String> paginationWithCriteriaEntityDAO() {
+ return dao;
+ }
+
+ @Override
+ public void beforeAdd(RemoteConfiguration entity, User connectedUser) {
+ Date dateAction = new Date();
+ entity.setUtilisateurCreation(connectedUser.getUserName());
+ entity.setDateCreation(dateAction);
+
+ entity.getPlanifications().stream().forEach(p -> {
+ p.setUtilisateurCreation(connectedUser.getUserName());
+ p.setDateCreation(dateAction);
+ });
+ }
+
+ @Override
+ public void beforeRemove(RemoteConfiguration entity, User connectedUser) {
+ }
+
+ @Override
+ public void beforeModify(RemoteConfiguration actualEntity, RemoteConfiguration requestEntity, User connectedUser) {
+ Date dateAction = new Date();
+ actualEntity.setUtilisateurModification(connectedUser.getUserName());
+ actualEntity.setDateDerniereModification(dateAction);
+ actualEntity.setUrl(requestEntity.getUrl());
+ actualEntity.setRemoteTypeAction(requestEntity.getRemoteTypeAction());
+ actualEntity.setPlanifications(requestEntity.getPlanifications());
+
+ actualEntity.getPlanifications().stream().forEach(p -> {
+ p.setUtilisateurModification(connectedUser.getUserName());
+ p.setDateDerniereModification(dateAction);
+ });
+ }
+
+ @Override
+ public RemoteConfigurationDto mapToDto(RemoteConfiguration entity) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public RemoteConfigurationDto mapToDetailDto(RemoteConfiguration entity) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ @Override
+ public RestrictionsContainer construireRequete(User searchEntity, TypeOperation typeOperation) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+
+ private void sendMessage(RemoteConfigurationDto configDto) {
+ ProducerTemplate producerTemplate = camelContext.createProducerTemplate();
+ producerTemplate.sendBodyAndHeaders("direct:" + AppCommonContext.REMOTE_CONGIGURATION_DIRECT, configDto, headers());
+ }
+
+ private Map<String, Object> headers() {
+ Map<String, Object> headers = new HashMap<>();
+ headers.put("CamelRabbitmqDeliveryMode", 2);//pour permettre au message de rester dans la file même après redémarrage
+
+ return headers;
+ }
+}
--
Gitblit v1.10.0