package com.megatim.apifdxweb.service.impl.camel.consumers; import com.megatim.apifdxweb.model.camel.historique.ConsumedFilesHistory; import com.megatim.apifdxweb.model.camel.historique.ConsumedFileType; import com.megatim.apifdxweb.tools.AppContext; import com.megatim.fdxcommons.model.dataproduction.DataProduction; import com.megatim.fdxcommons.model.dataproduction.DataProductionSource; import com.megatim.fdxcommons.tools.database.connection.DBConnection; import com.megatim.fdxcommons.tools.database.tables.FdxApiTable; import org.apache.camel.Handler; import com.megatim.fdxcommons.tools.integration.ApiIntegrationData; import java.sql.Connection; import java.sql.SQLException; import java.time.LocalDateTime; import javax.annotation.Resource; import javax.inject.Inject; import javax.naming.NamingException; import javax.sql.DataSource; import org.apache.camel.cdi.CdiCamelContext; import com.megatim.apifdxweb.core.ifaces.camel.historique.ConsumedFilesHistoryManager; /** * * @author lenovo */ public class FichierDataConsumer { @Resource(lookup = AppContext.JNDI_NAME) private DataSource dataSource; @Inject ConsumedFilesHistoryManager fichierHistoriqueManger; @Inject private CdiCamelContext camelContext; @Handler public void saveFileData(ApiIntegrationData integrationData) throws Exception { insert(integrationData); } private void insert(ApiIntegrationData integrationData) throws SQLException, NamingException, Exception { DataProduction dataProduction = new DataProduction(); dataProduction.setDateProduction(LocalDateTime.now()); dataProduction.setReferentielVersion(integrationData.getReferentielVersion()); dataProduction.setCodeTypeFichier(integrationData.getCodeTypeFichier()); dataProduction.setSource(DataProductionSource.FICHIER); dataProduction.setFileName(integrationData.getFileName()); dataProduction.setFileDate(integrationData.getFileDate()); try ( Connection connection = new DBConnection(dataSource).connection()) { new FdxApiTable(integrationData.getCodeTypeFichier(), integrationData.getReferentielVersion(), connection) .insert(integrationData.getData(), dataProduction); } insertFichierHistorique(integrationData.getFileName()); } private void insertFichierHistorique(String fileName) { ConsumedFilesHistory fichHist = new ConsumedFilesHistory(); fichHist.setDateCreation(LocalDateTime.now()); fichHist.setFileName(fileName); fichHist.setConsumedFileType(ConsumedFileType.DONNEES); fichierHistoriqueManger.save(fichHist); } }