package ar.com.tca.verificacion.turno.dao; import java.sql.CallableStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Types; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.Iterator; import java.util.List; import javax.annotation.PostConstruct; import javax.sql.DataSource; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport; import org.springframework.stereotype.Repository; import ar.com.tca.verificacion.turno.bo.Despacho; import ar.com.tca.verificacion.turno.bo.Filter; import ar.com.tca.verificacion.turno.bo.Rule; import ar.com.tca.verificacion.turno.bo.StkTurnoVerificado; import ar.com.tca.verificacion.turno.constant.TokenTurno; @Repository public class DespachoDAOImpl extends SimpleJdbcDaoSupport implements DespachoDAO { private static Log log = LogFactory.getLog(DespachoDAOImpl.class); @Autowired public SessionFactory sessionFactory; private final static String query_begin = "SELECT * FROM ( "+ "select ROWNUM AS rn, SUBPARCIAL.* from ( "+ "select sd, sg, MAX(id) id, max(destinacion) destinacion, max (prefijo) prefijo, max(numero) numero, decode(:estadoselect, 4, 0, 1, 1) as asignado, MAX(nanioccp) nanioccp, max (ctpdctoccp) ctpdctoccp, MAX(NDCTOCCP) NDCTOCCP, MAX(SGUIA) SGUIA, MAX(SD) SDCTOING, MAX(SPOSICION_ORIGEN) SPOSICION_ORIGEN, decode(:isusercode, 0, :user, 1, max(codigoVerifi)) codigo, max(h_fecha_turno) h_fecha_turno, max(turno_id) turno_id, max(cdeposito_origen) deposito, max (ddeposito) AS ddeposito "+ "from ( "+ "SELECT ws3_id as id, det.ds_iddestinacion as destinacion, sgui.cprefijo as prefijo, sgui.nguia as numero, "+ "pccp.nanioccp, pccp.ctpdctoccp, pccp.ndctoccp, pccp.sguia, "+ "pcpoi.sdctoing sd, pcpoi.sguia sg, pcpoi.sposicion_origen, tf.codigo codigoVerifi, tf.h_fecha_turno, tf.turno_id, cdeposito_origen, dep.ddeposito "+ "FROM STK_GUIAS sgui, CAP_CAB_CAM_POSICIONES pccp, wit_sldetalladacaratulas det, CAP_CAM_POS_ORI_INGRESOS pcpoi, stk_turno_verificado tf, ILS_UBI_INGRESOS iuin, LOC_POSICIONES lpos, adm_deposito dep "+ "WHERE pccp.sguia = sgui.sguia(+) "+ "AND pccp.nanioccp = pcpoi.nanioccp "+ "AND pccp.ctpdctoccp = pcpoi.ctpdctoccp "+ "AND pccp.ndctoccp = pcpoi.ndctoccp "+ "AND pcpoi.ndctoccp = tf.ndctoccp(+) "+ "AND pcpoi.ctpdctoccp = tf.ctpdctoccp(+) "+ "AND pcpoi.nanioccp = tf.nanioccp(+) "+ "AND pcpoi.sposicion_origen = tf. sposicion_origen(+) "+ "AND pccp.CSUCURSAL = 345 "+ "AND pccp.cempresa = 2 "+ "AND pccp.CTPDCTOCCP = 3 "+ "AND iuin.sguia = pcpoi.sguia " + "AND iuin.sdctoing = pcpoi.sdctoing " + "AND iuin.sposicion = lpos.sposicion " + "AND iuin.qbulexist > 0 " + "AND dep.cdeposito = lpos.cdeposito " + "AND dep.cempresa = lpos.cempresa " + "AND dep.csucursal = lpos.csucursal " + "AND SUBSTR (det.ds_idtitulo, 0, 3) = sgui.cprefijo "+ "AND SUBSTR (det.ds_idtitulo, 4, 8) = sgui.nguia "+ "AND pccp.CESTADOCCP in (:estado) "; private final static String query_end = "AND pccp.fdcto > SYSDATE - "+ TokenTurno.YEAR_INTERVAL + ") a group by sd, sg order by NDCTOCCP asc "+ ") SUBPARCIAL "+ ") rowsGrid WHERE rowsGrid.rn BETWEEN :desde AND :hasta "; private final static String query_rows_begin = "SELECT count(1) FROM ( "+ "select ROWNUM AS rn, SUBPARCIAL.* from ( "+ "select sd, sg, MAX(id) id, max(destinacion) destinacion, max (prefijo) prefijo, max(numero) numero, decode(:estadoselect, 4, 0, 1, 1) as asignado, MAX(nanioccp) nanioccp, max (ctpdctoccp) ctpdctoccp, MAX(NDCTOCCP) NDCTOCCP, MAX(SGUIA) SGUIA, MAX(SD) SDCTOING, MAX(SPOSICION_ORIGEN) SPOSICION_ORIGEN, max(codigoVerifi) codigo, max(h_fecha_turno) h_fecha_turno, max (ddeposito) AS ddeposito "+ "from ( "+ "SELECT ws3_id as id, det.ds_iddestinacion as destinacion, sgui.cprefijo as prefijo, sgui.nguia as numero, "+ "pccp.nanioccp, pccp.ctpdctoccp, pccp.ndctoccp, pccp.sguia, "+ "pcpoi.sdctoing sd, pcpoi.sguia sg, pcpoi.sposicion_origen, tf.codigo codigoVerifi, tf.h_fecha_turno, dep.ddeposito "+ "FROM STK_GUIAS sgui, CAP_CAB_CAM_POSICIONES pccp, wit_sldetalladacaratulas det, CAP_CAM_POS_ORI_INGRESOS pcpoi, stk_turno_verificado tf, ILS_UBI_INGRESOS iuin, LOC_POSICIONES lpos, adm_deposito dep "+ "WHERE pccp.sguia = sgui.sguia(+) "+ "AND pccp.nanioccp = pcpoi.nanioccp "+ "AND pccp.ctpdctoccp = pcpoi.ctpdctoccp "+ "AND pccp.ndctoccp = pcpoi.ndctoccp "+ "AND pcpoi.ndctoccp = tf.ndctoccp(+) "+ "AND pcpoi.ctpdctoccp = tf.ctpdctoccp(+) "+ "AND pcpoi.nanioccp = tf.nanioccp(+) "+ "AND pcpoi.sposicion_origen = tf.sposicion_origen(+) "+ "AND pccp.CSUCURSAL = 345 "+ "AND pccp.cempresa = 2 "+ "AND pccp.CTPDCTOCCP = 3 "+ "AND iuin.sguia = pcpoi.sguia " + "AND iuin.sdctoing = pcpoi.sdctoing " + "AND iuin.sposicion = lpos.sposicion " + "AND iuin.qbulexist > 0 " + "AND dep.cdeposito = lpos.cdeposito " + "AND dep.cempresa = lpos.cempresa " + "AND dep.csucursal = lpos.csucursal " + "AND SUBSTR (det.ds_idtitulo, 0, 3) = sgui.cprefijo "+ "AND SUBSTR (det.ds_idtitulo, 4, 8) = sgui.nguia "+ "AND pccp.CESTADOCCP in (:estado) "; private final static String query_rows_end = "AND pccp.fdcto > SYSDATE - "+ TokenTurno.YEAR_INTERVAL + ") a group by sd, sg order by NDCTOCCP asc "+ ") SUBPARCIAL "+ ") rowsGrid"; private final static String to_assigned_state = "UPDATE SIE.CAP_CAB_CAM_POSICIONES " + "SET CESTADOCCP = " + TokenTurno.ASSIGNED_STATE + " " + "WHERE NANIOCCP = :nanio AND CTPDCTOCCP = :tpdcto AND NDCTOCCP = :ndcto AND SGUIA = :guiaid AND CEMPRESA = :comp AND CSUCURSAL = :suc"; private final static String query_update_expired = "UPDATE ( " + "SELECT tv.ESTADO " + "FROM STK_TURNO_VERIFICADO tv, STK_TURNO_RANGO tr " + "WHERE tv.TURNO_ID = tr.ID " + "AND (TO_DSINTERVAL(TO_CHAR(SYSDATE, 'DD HH24:MI:SS')) - TO_DSINTERVAL(TO_CHAR(SYSDATE, 'DD') || ' 00:00:00.000000')) > (tr.HASTA + interval '60' minute) " + "AND trunc(tv.H_FECHA_TURNO) = trunc(sysdate) " + "AND tv.ESTADO = 1 " + ") " + "SET ESTADO = 0 "; private final static String query_scan = "SELECT COUNT(1) "+ "FROM STK_TURNO_VERIFICADO tv, STK_TURNO_RANGO tr "+ "WHERE tv.ESTADO = 1 "+ "AND tv.NANIOCCP = :year "+ "AND tv.CTPDCTOCCP = :type "+ "AND tv.NDCTOCCP = :dcto "+ "AND tv.TURNO_ID = tr.ID "+ "AND (TO_DSINTERVAL(TO_CHAR(sysdate, 'DD HH24:MI:SS')) - TO_DSINTERVAL(TO_CHAR(sysdate, 'DD') || ' 00:00:00.000000')) between tr.desde AND tr.hasta "+ "AND TRUNC(tv.h_fecha_turno) = TRUNC(sysdate) "; private final static String get_guia = "SELECT CPREFIJO || '-' || NGUIA AS GUIA FROM sgui WHERE SGUIA=:id"; @Autowired public DespachoDAOImpl(DataSource datasource){ setDataSource(datasource); } @PostConstruct void init() { } public int countRows(int page, int rowsPerPage, String sortColl, String sortDir, Filter filters){ log.info("*** DespachoDAOImpl -- countRows() ****"); MapSqlParameterSource params = new MapSqlParameterSource(); String guia = null, despacho = null, fecha = null, codigo = null, deposito = null; String final_query_rows_begin = query_rows_begin; ArrayList iEstado = new ArrayList(); ArrayList iEstadoSelect = new ArrayList(); if(filters != null){ List rules = filters.getRules(); for (Iterator it = rules.iterator(); it.hasNext();) { Rule rule = (Rule) it.next(); if(StringUtils.equalsIgnoreCase("ASIGNADO", rule.getField())){ if("true".equalsIgnoreCase(rule.getData())){ iEstado.add(TokenTurno.PEDIDO_VERIFICADO); iEstado.add(TokenTurno.PEDIDO_VERIFICADO_PROCESANDO); iEstado.add(TokenTurno.PEDIDO_VERIFICADO_PROCESADO); iEstadoSelect.add(TokenTurno.PEDIDO_VERIFICADO); final_query_rows_begin += "AND tf.estado = " + TokenTurno.TURNO_ESTADO_ACTIVO; } if("false".equalsIgnoreCase(rule.getData())){ iEstado.add(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO); iEstadoSelect.add(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO); } } if(StringUtils.equalsIgnoreCase("GUIA", rule.getField())){ guia = rule.getData(); final_query_rows_begin += "AND sgui.nguia like UPPER(:guia) "; params.addValue("guia", "%"+guia+"%"); } if(StringUtils.equalsIgnoreCase("DESPACHOID", rule.getField())){ despacho = rule.getData(); final_query_rows_begin += "AND det.ds_iddestinacion like UPPER(:despacho) "; params.addValue("despacho", "%"+despacho+"%"); } if(StringUtils.equalsIgnoreCase("FECHASTR", rule.getField())){ fecha = rule.getData(); final_query_rows_begin += "AND TO_DATE(trunc(tf.h_fecha_turno), 'DD/MM/YYYY', 'NLS_DATE_LANGUAGE = American') = TO_DATE(:fecha, 'DD/MM/YYYY', 'NLS_DATE_LANGUAGE = American') "; params.addValue("fecha", fecha); } if(StringUtils.equalsIgnoreCase("CODIGO", rule.getField())){ codigo = rule.getData(); final_query_rows_begin += "AND upper(tf.codigo) like upper(:codigo) "; params.addValue("codigo", "%"+codigo+"%"); } if(StringUtils.equalsIgnoreCase("DEPOSITO", rule.getField())){ deposito = rule.getData(); final_query_rows_begin += "AND upper(dep.ddeposito) like upper(:deposito) "; params.addValue("deposito", "%"+deposito+"%"); } } }else{ iEstado.add(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO); iEstadoSelect.add(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO); } params.addValue("estadoselect", iEstadoSelect); params.addValue("estado", iEstado); int rows = getSimpleJdbcTemplate().queryForInt(final_query_rows_begin + query_rows_end, params); return rows; } public List getDespachosPendientesVerificacion(int page, int rowsPerPage, String sortColl, String sortDir, Filter filters, String user) { log.info("*** DespachoDAOImpl -- getDespachosPendientesVerificacion("+page+", "+rowsPerPage+", "+sortColl+", "+sortDir+", "+filters+", "+ user + ") ****"); MapSqlParameterSource params = new MapSqlParameterSource(); String guia = null, despacho = null, fecha = null, codigo = null, deposito = null; String final_query_begin = query_begin; Boolean isUsernameCode = false; ArrayList iEstado = new ArrayList(); ArrayList iEstadoSelect = new ArrayList(); if(filters != null){ List rules = filters.getRules(); for (Iterator it = rules.iterator(); it.hasNext();) { Rule rule = (Rule) it.next(); if(StringUtils.equalsIgnoreCase("ASIGNADO", rule.getField())){ if("true".equalsIgnoreCase(rule.getData())){ iEstado.add(TokenTurno.PEDIDO_VERIFICADO); iEstado.add(TokenTurno.PEDIDO_VERIFICADO_PROCESANDO); iEstado.add(TokenTurno.PEDIDO_VERIFICADO_PROCESADO); iEstadoSelect.add(TokenTurno.PEDIDO_VERIFICADO); final_query_begin += "AND tf.estado = " + TokenTurno.TURNO_ESTADO_ACTIVO; } if("false".equalsIgnoreCase(rule.getData())){ iEstado.add(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO); iEstadoSelect.add(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO); isUsernameCode = true; } } if(StringUtils.equalsIgnoreCase("GUIA", rule.getField())){ guia = rule.getData(); final_query_begin += "AND sgui.nguia like UPPER(:guia) "; params.addValue("guia", "%"+guia+"%"); } if(StringUtils.equalsIgnoreCase("DESPACHOID", rule.getField())){ despacho = rule.getData(); final_query_begin += "AND det.ds_iddestinacion like UPPER(:despacho) "; params.addValue("despacho", "%"+despacho+"%"); } if(StringUtils.equalsIgnoreCase("FECHASTR", rule.getField())){ fecha = rule.getData(); final_query_begin += "AND TO_DATE(trunc(tf.h_fecha_turno), 'DD/MM/YYYY', 'NLS_DATE_LANGUAGE = American') = TO_DATE(:fecha, 'DD/MM/YYYY', 'NLS_DATE_LANGUAGE = American') "; params.addValue("fecha", fecha); } if(StringUtils.equalsIgnoreCase("CODIGO", rule.getField())){ codigo = rule.getData(); final_query_begin += "AND upper(tf.codigo) like upper(:codigo) "; params.addValue("codigo", "%"+codigo+"%"); } if(StringUtils.equalsIgnoreCase("DEPOSITO", rule.getField())){ deposito = rule.getData(); final_query_begin += "AND upper(dep.ddeposito) like upper(:deposito) "; params.addValue("deposito", "%"+deposito+"%"); } } }else{ iEstado.add(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO); iEstadoSelect.add(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO); isUsernameCode = true; } params.addValue("estadoselect", iEstadoSelect); params.addValue("estado", iEstado); params.addValue("desde", rowsPerPage * (page - 1)); params.addValue("hasta", rowsPerPage * page); if(isUsernameCode) { params.addValue("isusercode", 0); }else{ params.addValue("isusercode", 1); } params.addValue("user", user); RowMapper rowMapper = new RowMapper() { public Despacho mapRow(ResultSet rs, int rowNum) throws SQLException { Long id = rs.getLong("ID"); String destinacion = rs.getString("DESTINACION"); String prefijo = rs.getString("PREFIJO"); String numero = rs.getString("NUMERO"); Boolean asignado = (rs.getInt("ASIGNADO")==1)?true:false; Long nanio = rs.getLong("NANIOCCP"); Long tpdcto = rs.getLong("CTPDCTOCCP"); Long ndcto = rs.getLong("NDCTOCCP"); Long sguia = rs.getLong("SGUIA"); Long sdctoing = rs.getLong("SDCTOING"); Long posOrigen = rs.getLong("SPOSICION_ORIGEN"); String codigo = rs.getString("CODIGO"); Date fechaTurno = rs.getDate("H_FECHA_TURNO"); Integer turnoId = rs.getInt("TURNO_ID"); Long ndeposito = rs.getLong("DEPOSITO"); String deposito = rs.getString("DDEPOSITO"); return new Despacho(id, destinacion, prefijo, numero, asignado, nanio, tpdcto, ndcto, sguia, sdctoing, posOrigen, codigo, fechaTurno, turnoId, deposito, ndeposito); } }; return getSimpleJdbcTemplate().query(final_query_begin + query_end, rowMapper, params); } public Boolean changeToAssignedState(StkTurnoVerificado turno) { log.info("***DespachoDAOImpl -- toPendVerifState(StkTurnoVerificado turno) ****"); log.info("---> " + turno.toString()); MapSqlParameterSource params = new MapSqlParameterSource(); params.addValue("nanio", turno.getNanio()).addValue("tpdcto", turno.getTpdcto()).addValue("ndcto", turno.getNdcto()) .addValue("guiaid", turno.getSguia()).addValue("comp", TokenTurno.COMPANY).addValue("suc", TokenTurno.BRANCH_OFFICE); Integer upd_result = getSimpleJdbcTemplate().update(to_assigned_state, params); return (upd_result==1)?true:false; } @SuppressWarnings("deprecation") public Integer turnoProcess(Despacho despacho) { log.info("*** DespachoDAOImpl -- turnoProcess(Despacho despacho) ****"); log.info("call p_turno_process("+ TokenTurno.ASSIGNED_STATE +", "+ despacho.getNanio() +", "+ despacho.getTpdcto() +", "+ despacho.getNdcto() +", "+ despacho.getSguia() +", "+ despacho.getUser() +", "+ despacho.getSdctoing() +", "+ despacho.getPosOrigen() +", "+ despacho.getTurnoVerificacion() +", "+ TokenTurno.COMPANY +", "+ TokenTurno.BRANCH_OFFICE +", " + despacho.getNumbop() + ", " + despacho.getEstado() + ", " + Types.INTEGER + ")"); Integer outParam = null; try { CallableStatement store = sessionFactory.getCurrentSession().connection().prepareCall ("call p_turno_process(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); store.setLong(1, TokenTurno.ASSIGNED_STATE); store.setLong(2, despacho.getNanio()); store.setLong(3, despacho.getTpdcto()); store.setLong(4, despacho.getNdcto()); store.setLong(5, despacho.getSguia()); store.setString(6, despacho.getUser()); store.setLong(7, despacho.getSdctoing()); store.setLong(8, despacho.getPosOrigen()); store.setLong(9, despacho.getTurnoVerificacion()); store.setLong(10, TokenTurno.COMPANY); store.setLong(11, TokenTurno.BRANCH_OFFICE); store.setInt(12, despacho.getNumbop()); store.setInt(13, despacho.getEstado()); store.setString(14, despacho.getUser()); store.setString(15, despacho.getDestinacion()); store.registerOutParameter (16, Types.INTEGER); store.execute (); outParam = store.getInt(16); store.close(); } catch (HibernateException e) { e.printStackTrace(); log.info(e.getMessage()); return null; } catch (SQLException e) { e.printStackTrace(); log.info(e.getMessage()); return null; } log.info("*** return call p_turno_process = "+ outParam +" ****"); return outParam; } public Date getNextTurnoDate(Date fecha) { log.info("*** DespachoDAOImpl -- getNextTurnoDate(Date fecha) ****"); log.info("call f_is_date_valid("+ fecha + ")"); java.sql.Date fechaParameter = new java.sql.Date(System.currentTimeMillis()); java.sql.Date fechaRetorno = null; java.util.Date fecharet = new Date(System.currentTimeMillis()); try { String calling = "{? = call sie.f_is_date_valid(?)}"; fechaParameter.setTime(fecha.getTime()); CallableStatement store = sessionFactory.getCurrentSession().connection().prepareCall (calling); store.registerOutParameter(1, java.sql.Types.DATE); store.setDate(2, fechaParameter); store.execute(); fechaRetorno = store.getDate(1); store.close(); } catch (HibernateException e) { e.printStackTrace(); log.info(e.getMessage()); return null; } catch (SQLException e) { e.printStackTrace(); log.info(e.getMessage()); return null; } fecharet.setTime(fechaRetorno.getTime()); return fecharet; } public Boolean isAuthorizedUser(String username) { log.info("*** DespachoDAOImpl -- isAuthorizedUser(String username) ****"); log.info("call P_IS_AUTHORIZED_USER("+username+")"); Integer outParam = null; try { CallableStatement store = sessionFactory.getCurrentSession().connection().prepareCall ("CALL P_IS_AUTHORIZED_USER(?, ?)"); store.setString(1, username); store.registerOutParameter (2, Types.INTEGER); store.execute(); outParam = store.getInt(2); store.close(); } catch (HibernateException e) { e.printStackTrace(); log.info(e.getMessage()); return null; } catch (SQLException e) { e.printStackTrace(); log.info(e.getMessage()); return null; } return outParam==1?Boolean.TRUE:Boolean.FALSE; } public List getAsignado(Despacho despacho) { log.info("*** DespachoDAOImpl -- getAsignado() ****"); log.info("call GET_ASSIGNED_USER("+ despacho.getNanio() + ", " + despacho.getTpdcto() + ", " + despacho.getNdcto() + ", " + despacho.getSguia() + ", " + despacho.getSdctoing() + ", " + despacho.getPosOrigen() + ", " + despacho.getTurnoVerificacion() + ", " + despacho.getEstado() +")"); String e_asignado = null, e1_despachante = null, e2_despachante = null, e3_despachante = null; List emails = new ArrayList(); try { CallableStatement store = sessionFactory.getCurrentSession().connection().prepareCall ("CALL GET_ASSIGNED_USER(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); store.setLong(1, despacho.getNanio()); store.setLong(2, despacho.getTpdcto()); store.setLong(3, despacho.getNdcto()); store.setLong(4, despacho.getSguia()); store.setLong(5, despacho.getSdctoing()); store.setLong(6, despacho.getPosOrigen()); store.setInt(7, despacho.getTurnoVerificacion()); store.setInt(8, despacho.getEstado()); store.registerOutParameter(9, Types.VARCHAR); store.registerOutParameter(10, Types.VARCHAR); store.registerOutParameter(11, Types.VARCHAR); store.registerOutParameter(12, Types.VARCHAR); store.execute(); e_asignado = store.getString(9); e1_despachante = store.getString(10); e2_despachante = store.getString(11); e3_despachante = store.getString(12); store.close(); if(e_asignado!=null){ emails.add(e_asignado); } if(e1_despachante!=null) { emails.add(e1_despachante); } if(e2_despachante!=null) { emails.add(e2_despachante); } if(e3_despachante!=null) { emails.add(e3_despachante); } } catch (HibernateException e) { e.printStackTrace(); log.info(e.getMessage()); return null; } catch (SQLException e) { e.printStackTrace(); log.info(e.getMessage()); return null; } return emails; } public void disableTurnosExpired() { log.info("*** DespachoDAOImpl -- disableTurnosExpired() ****"); MapSqlParameterSource params = new MapSqlParameterSource(); int updatedRows = getSimpleJdbcTemplate().update(query_update_expired, params); log.info("*** QUARTZ JOB -- "+updatedRows+" actualizados ****"); } public Boolean scannerCode(String code) { MapSqlParameterSource params = new MapSqlParameterSource(); String year = null, type = null, dcto = null; year = code.substring(TokenTurno.YEAR_BEGIN, TokenTurno.YEAR_END); type = code.substring(TokenTurno.TYPE_BEGIN, TokenTurno.TYPE_END); dcto = code.substring(TokenTurno.DCTO_BEGIN, TokenTurno.DCTO_END); params.addValue("year", year); params.addValue("type", type); params.addValue("dcto", dcto); int rows = getSimpleJdbcTemplate().queryForInt(query_scan, params); return (rows>0)?Boolean.TRUE:Boolean.FALSE; } public String getGuia(Despacho despacho) { log.info("***DespachoDAOImpl -- getGuia(Despacho despacho) ****"); log.info("---> " + despacho.toString()); MapSqlParameterSource params = new MapSqlParameterSource(); params.addValue("id", despacho.getSguia()); RowMapper rowMapper = new RowMapper() { public String mapRow(ResultSet rs, int rowNum) throws SQLException { return rs.getString("GUIA"); } }; return getSimpleJdbcTemplate().query(get_guia, rowMapper, params).get(0); } }