package dao; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.SQLException; import java.sql.Types; import java.util.ArrayList; import java.util.List; import org.hibernate.Criteria; import org.hibernate.SQLQuery; import org.hibernate.annotations.OrderBy; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Repository; import bean.AppVariables; import common.dao.GenericDAO; import common.dao.IDAO; import sicura.entities.IstruzioniEstrazioneDistinteBanca; @Repository public class IstruzioniEstrazioneDistinteBancaDAO extends GenericDAO implements IDAO{ public List getIstruzioni(Integer idPiano) { boolean tx = startTransaction(); try { Criteria crit = currentSession().createCriteria(IstruzioniEstrazioneDistinteBanca.class); crit .add(Restrictions.eq("idpianoEstrazione", idPiano)) .addOrder(Order.asc("rowNumber")); List res = crit.list(); return res; } finally { if (tx) tx = commit(); } } public List getIstruzioniNoTrasaction(Integer idPiano) { Criteria crit = currentSession().createCriteria(IstruzioniEstrazioneDistinteBanca.class); crit .add(Restrictions.eq("idpianoEstrazione", idPiano)) .addOrder(Order.asc("rowNumber")); List res = crit.list(); return res; } public void zapIstruzioni(Integer idPiano, List ids, AppVariables appVariables) { /* CREATE PROC [dbo].[spUCBase_IstruzioniEstrazioneDistinteBanca_delete] @SecurityUserId VARCHAR(15), @SecurityGuid UNIQUEIDENTIFIER, @ID int */ try { Integer res = null; Connection connection = getConnection(); CallableStatement proc; try { proc = connection.prepareCall("{? = call spUCBase_IstruzioniEstrazioneDistinteBanca_delete (?,?,?)}"); proc.registerOutParameter(1, Types.VARCHAR); proc.setString(2, appVariables.getUserId()); proc.setString(3, appVariables.getGuid()); for (Integer id:ids) { proc.setObject(4, id); proc.execute(); proc.getMoreResults(); res = proc.getInt(1); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } finally { } // if (ids.size()>0) { // String sql = "delete from IstruzioniEstrazioneDistinteBanca where idPianoEstrazione=:idPiano and id not in (:ids)"; // SQLQuery q = currentSession().createSQLQuery(sql); // q.setParameter("idPiano", idPiano); // q.setParameterList("ids", ids); // q.executeUpdate(); // } } public Integer saveNoTransaction(IstruzioniEstrazioneDistinteBanca istruzione, AppVariables appVariables) throws Exception{ /* CREATE PROC [dbo].[spUCBase_IstruzioniEstrazioneDistinteBanca_update] @SecurityUserId VARCHAR(15), @SecurityGuid UNIQUEIDENTIFIER, @ID int, @IDPianoEstrazione int, @RowNumber int, @Tipologia varchar(30), @TipoDisposizione varchar(3), @Provenienza varchar(30), @FunzioneOrdinante varchar(50), @SignRangeImportoDa varchar(2), @RangeImportoDa float, @SignRangeImportoA varchar(2), @RangeImportoA float, @ImportoLimiteDistinta float, @MaxNumberDisposizioni varchar(10), @SearchBancaOrdinanteStep1 varchar(2), @SearchBancaOrdinanteStep2 varchar(2), @SearchBancaOrdinanteStep3 varchar(2), @SearchBancaOrdinanteStep4 varchar(2), @SearchBancaOrdinanteStep5 varchar(2), @SearchBancaOrdinanteStep6 varchar(2), @SearchBancaOrdinanteStep7 varchar(2), @SearchBancaOrdinanteStep8 varchar(2), @SearchBancaOrdinanteStep9 varchar(2), @SearchBancaOrdinanteStep10 varchar(2) */ try { Integer res = null; Connection connection = getConnection(); CallableStatement proc; try { proc = connection.prepareCall("{? = call spUCBase_IstruzioniEstrazioneDistinteBanca_update (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}"); proc.registerOutParameter(1, Types.VARCHAR); proc.setString(2, appVariables.getUserId()); proc.setString(3, appVariables.getGuid()); proc.setObject(4, istruzione.getId()); proc.setObject(5, istruzione.getIdpianoEstrazione()); proc.setObject(6, istruzione.getRowNumber()); proc.setString(7, istruzione.getTipologia()); proc.setString(8, istruzione.getTipoDisposizione()); proc.setString(9, istruzione.getProvenienza()); proc.setString(10, istruzione.getFunzioneOrdinante()); proc.setString(11, istruzione.getSignRangeImportoDa()); proc.setObject(12, istruzione.getRangeImportoDa()); proc.setString(13, istruzione.getSignRangeImportoA()); proc.setObject(14, istruzione.getRangeImportoA()); proc.setObject(15, istruzione.getImportoLimiteDistinta()); proc.setString(16, istruzione.getMaxNumberDisposizioni()); proc.setString(17,istruzione.getSearchBancaOrdinanteStep1()); proc.setString(18,istruzione.getSearchBancaOrdinanteStep2()); proc.setString(19,istruzione.getSearchBancaOrdinanteStep3()); proc.setString(20,istruzione.getSearchBancaOrdinanteStep4()); proc.setString(21,istruzione.getSearchBancaOrdinanteStep5()); proc.setString(22,istruzione.getSearchBancaOrdinanteStep6()); proc.setString(23,istruzione.getSearchBancaOrdinanteStep7()); proc.setString(24,istruzione.getSearchBancaOrdinanteStep8()); proc.setString(25,istruzione.getSearchBancaOrdinanteStep9()); proc.setString(26,istruzione.getSearchBancaOrdinanteStep10()); proc.execute(); proc.getMoreResults(); res = proc.getInt(1); } catch (SQLException ex) { throw ex; } return res; } finally { } } }