/* * 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.service.impl.camel.routes.timers.processor; import com.megatim.fdxcommons.model.dataproduction.DataProductionToDelete; import javax.enterprise.context.Dependent; import com.megatim.fdxcommons.model.enumeration.Operateur; import com.megatim.fdxcommons.model.enumeration.StatutDataProduction; import com.megatim.fdxcommons.tools.database.connection.DBConnection; import com.megatim.fdxcommons.tools.database.queries.DeleteTableDataQuery; import com.megatim.fdxcommons.tools.database.queries.metadata.QueryCriterion; import com.megatim.fdxcommons.tools.database.tables.appcolumns.DataProductionIdColumnDefinition; import com.megatim.fdxcommons.tools.database.tables.FdxConsultationTable; import com.megatim.fdxconsultation.core.ifaces.dataproduction.DataProductionManager; import com.megatim.fdxconsultation.core.ifaces.dataproduction.DataProductionToDeleteManager; import com.megatim.fdxconsultation.core.impl.factory.FdxConsultationTableFactory; import com.megatim.fdxconsultation.model.dataproduction.DataProduction; import com.megatim.fdxconsultation.service.ifaces.timer.processor.DeleteDataProductionJob; import com.megatim.fdxconsultation.tools.context.AppCommonContext; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Arrays; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.Resource; import javax.inject.Inject; import javax.sql.DataSource; import javax.transaction.Transactional; /** * * @author ASUS */ @Dependent public class DeleteDataProductionJobImpl implements DeleteDataProductionJob { @Inject private DataProductionToDeleteManager dataProdToDeleteManager; @Inject private DataProductionManager dataProdManager; @Resource(lookup = AppCommonContext.JNDI_NAME) private DataSource dataSource; @Override public void delete() throws Exception { List liste = dataProdToDeleteManager.findAll(null, Arrays.asList(), Arrays.asList()); if (liste != null && !liste.isEmpty()) { try ( Connection connection = new DBConnection(dataSource).connection()) { liste.stream().forEach(dt -> { try { DataProduction dataProduction = dataProdManager.getById(dt.getId()); if (dataProduction != null && dataProduction.getStatutDataProduction().equals(StatutDataProduction.A_CONSOMMER)) { System.out.println("------------------In Consultation DeleteDataProductionTimer dataProductionId = " + dt.getId() + " --------------------------------"); deleteDataProductionToDelete(dataProduction, connection); } } catch (Exception ex) { Logger.getLogger(DeleteDataProductionJobImpl.class.getName()).log(Level.SEVERE, ex.getMessage(), ex); } }); } catch (Exception ex) { Logger.getLogger(DeleteDataProductionJobImpl.class.getName()).log(Level.SEVERE, ex.getMessage(), ex); } } } @Transactional private void deleteDataProductionToDelete(DataProduction dataProduction, Connection connection) throws SQLException, Exception { System.out.println("------------------------------------------in Consultation deleteDataProductionToDelete------------------------------------"); FdxConsultationTable consTable = FdxConsultationTableFactory.createTable(dataProduction.getCodeTypeFichier(), dataProduction.getReferentielVersion(), connection); new DeleteTableDataQuery(consTable.getTableName().name(connection), connection, deleteTableDataCriterion(dataProduction.getId()) ).execute(); String query = "DELETE FROM dataproductiontodelete WHERE id = ?"; try ( PreparedStatement statement = connection.prepareStatement(query)) { statement.setLong(1, dataProduction.getId()); statement.executeUpdate(); } } private QueryCriterion deleteTableDataCriterion(Long dataProductionId) { return new QueryCriterion(new DataProductionIdColumnDefinition().name(), dataProductionId, Operateur.NOT_EQUALS, null, Arrays.asList() ); } }