package com.megatim.fdxconsultation.service.impl.camel.consumer; import com.megatim.fdxcommons.model.dataproduction.metadata.ProductionMetaData; import com.megatim.fdxcommons.model.dtos.dataproduction.ProductionMetaDataDto; import com.megatim.fdxcommons.model.enumeration.StatutDataProduction; import com.megatim.fdxcommons.tools.database.connection.DBConnection; import javax.inject.Inject; import org.apache.camel.Handler; import com.megatim.fdxconsultation.dao.impl.dataproduction.metadata.CreateDataProductionQuery; import com.megatim.fdxconsultation.dao.impl.dataproduction.metadata.CreateProductionMetaDataQuery; import com.megatim.fdxconsultation.model.dataproduction.DataProduction; import com.megatim.fdxconsultation.model.mappers.MapStructMapper; import com.megatim.fdxconsultation.tools.context.AppCommonContext; import java.sql.Connection; import javax.annotation.Resource; import javax.sql.DataSource; /** * * @author lenovo */ public class ProductionMetaDaConsumer { @Resource(lookup = AppCommonContext.JNDI_NAME) private DataSource dataSource; @Inject private MapStructMapper mapper; @Inject private com.megatim.fdxcommons.model.mappers.MapStructMapper commonMapper; @Handler public void saveData(ProductionMetaDataDto dto) throws Exception { System.out.println("----------------In ProductionMetaDaConsumer--------------------"); DataProduction dataProduction = mapper.commonDataProductionDtoToDataProduction(dto.getDataProduction()); dataProduction.setId(dto.getDataProduction().getId()); dataProduction.setStatutDataProduction(StatutDataProduction.ENCOURS_DE_CONSOMMATION); System.out.println("------------ NbreElts " + dataProduction.getNbreElements() + ", FileName = " + dataProduction.getFileName() + ", IntegrationFileName = " + dataProduction.getIntegrationFileName()); ProductionMetaData pmd = commonMapper.productionMetaDataDtoToProductionMetaData(dto); try ( Connection connection = new DBConnection(dataSource).connection()) { connection.setAutoCommit(false); new CreateDataProductionQuery(dataProduction, connection).execute(); new CreateProductionMetaDataQuery(pmd, dataProduction.getDataProductionType(), connection).execute(); connection.commit(); } } }