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);
|
}
|
|
}
|