MX37S

PCCP

Apr 21st, 2022
1,652
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 24.56 KB | None | 0 0
  1. package ar.com.tca.verificacion.turno.dao;
  2.  
  3. import java.SQL.CallableStatement;
  4. import java.SQL.ResultSet;
  5. import java.SQL.SQLException;
  6. import java.SQL.Types;
  7. import java.util.ArrayList;
  8. import java.util.Calendar;
  9. import java.util.DATE;
  10. import java.util.Iterator;
  11. import java.util.List;
  12.  
  13. import javax.annotation.PostConstruct;
  14. import javax.SQL.DataSource;
  15.  
  16. import org.apache.commons.lang.StringUtils;
  17. import org.apache.commons.logging.Log;
  18. import org.apache.commons.logging.LogFactory;
  19. import org.hibernate.HibernateException;
  20. import org.hibernate.SessionFactory;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.jdbc.core.RowMapper;
  23. import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
  24. import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
  25. import org.springframework.stereotype.Repository;
  26.  
  27. import ar.com.tca.verificacion.turno.bo.Despacho;
  28. import ar.com.tca.verificacion.turno.bo.FILTER;
  29. import ar.com.tca.verificacion.turno.bo.Rule;
  30. import ar.com.tca.verificacion.turno.bo.StkTurnoVerificado;
  31. import ar.com.tca.verificacion.turno.constant.TokenTurno;
  32.  
  33. @Repository
  34. public class DespachoDAOImpl extends SimpleJdbcDaoSupport implements DespachoDAO {
  35.    
  36.     private static Log log = LogFactory.getLog(DespachoDAOImpl.class);
  37.    
  38.     @Autowired
  39.     public SessionFactory sessionFactory;
  40.  
  41.    
  42.    
  43.     private final static String query_begin =   "SELECT * FROM ( "+
  44.             "select ROWNUM AS rn, SUBPARCIAL.* from ( "+
  45.                     "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 "+
  46.                         "from ( "+
  47.                             "SELECT  ws3_id as id, det.ds_iddestinacion as destinacion, sgui.cprefijo as prefijo, sgui.nguia as numero, "+
  48.                                 "pccp.nanioccp, pccp.ctpdctoccp, pccp.ndctoccp, pccp.sguia, "+
  49.                                 "pcpoi.sdctoing sd, pcpoi.sguia sg, pcpoi.sposicion_origen, tf.codigo codigoVerifi, tf.h_fecha_turno, tf.turno_id, cdeposito_origen, dep.ddeposito "+
  50.                                     "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 "+
  51.                                         "WHERE pccp.sguia = sgui.sguia(+) "+
  52.                                             "AND pccp.nanioccp = pcpoi.nanioccp "+
  53.                                             "AND pccp.ctpdctoccp = pcpoi.ctpdctoccp "+
  54.                                             "AND pccp.ndctoccp = pcpoi.ndctoccp "+
  55.                                             "AND pcpoi.ndctoccp = tf.ndctoccp(+) "+
  56.                                             "AND pcpoi.ctpdctoccp = tf.ctpdctoccp(+) "+
  57.                                             "AND pcpoi.nanioccp = tf.nanioccp(+) "+
  58.                                             "AND pcpoi.sposicion_origen = tf. sposicion_origen(+) "+
  59.                                             "AND pccp.CSUCURSAL = 345 "+
  60.                                             "AND pccp.cempresa = 2 "+
  61.                                             "AND pccp.CTPDCTOCCP = 3 "+
  62.                                             "AND iuin.sguia = pcpoi.sguia " +
  63.                                             "AND iuin.sdctoing = pcpoi.sdctoing " +
  64.                                             "AND iuin.sposicion = lpos.sposicion " +  
  65.                                             "AND iuin.qbulexist > 0 " +
  66.                                             "AND dep.cdeposito = lpos.cdeposito " +
  67.                                             "AND dep.cempresa = lpos.cempresa " +
  68.                                             "AND dep.csucursal = lpos.csucursal " +
  69.                                             "AND SUBSTR (det.ds_idtitulo, 0, 3) = sgui.cprefijo "+
  70.                                             "AND SUBSTR (det.ds_idtitulo, 4, 8) = sgui.nguia "+
  71.                                             "AND pccp.CESTADOCCP in (:estado) ";
  72.    
  73.    
  74.     private final static String query_end = "AND pccp.fdcto >  SYSDATE - "+ TokenTurno.YEAR_INTERVAL +
  75.                                             ") a group by  sd, sg order by NDCTOCCP asc "+
  76.                                             ") SUBPARCIAL "+
  77.                                             ") rowsGrid  WHERE rowsGrid.rn BETWEEN :desde AND :hasta ";
  78.    
  79.     private final static String query_rows_begin =  "SELECT count(1) FROM ( "+
  80.                                                     "select ROWNUM AS rn, SUBPARCIAL.* from ( "+
  81.                                                     "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 "+
  82.                                                         "from ( "+
  83.                                                             "SELECT  ws3_id as id, det.ds_iddestinacion as destinacion, sgui.cprefijo as prefijo, sgui.nguia as numero, "+
  84.                                                                 "pccp.nanioccp, pccp.ctpdctoccp, pccp.ndctoccp, pccp.sguia, "+
  85.                                                                 "pcpoi.sdctoing sd, pcpoi.sguia sg, pcpoi.sposicion_origen, tf.codigo codigoVerifi, tf.h_fecha_turno, dep.ddeposito "+
  86.                                                                     "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 "+
  87.                                                                         "WHERE pccp.sguia = sgui.sguia(+) "+
  88.                                                                             "AND pccp.nanioccp = pcpoi.nanioccp "+
  89.                                                                             "AND pccp.ctpdctoccp = pcpoi.ctpdctoccp "+
  90.                                                                             "AND pccp.ndctoccp = pcpoi.ndctoccp "+
  91.                                                                             "AND pcpoi.ndctoccp = tf.ndctoccp(+) "+
  92.                                                                             "AND pcpoi.ctpdctoccp = tf.ctpdctoccp(+) "+
  93.                                                                             "AND pcpoi.nanioccp = tf.nanioccp(+) "+
  94.                                                                             "AND pcpoi.sposicion_origen = tf.sposicion_origen(+) "+
  95.                                                                             "AND pccp.CSUCURSAL = 345 "+
  96.                                                                             "AND pccp.cempresa = 2 "+
  97.                                                                             "AND pccp.CTPDCTOCCP = 3 "+
  98.                                                                             "AND iuin.sguia = pcpoi.sguia " +
  99.                                                                             "AND iuin.sdctoing = pcpoi.sdctoing " +
  100.                                                                             "AND iuin.sposicion = lpos.sposicion " +  
  101.                                                                             "AND iuin.qbulexist > 0 " +
  102.                                                                             "AND dep.cdeposito = lpos.cdeposito " +
  103.                                                                             "AND dep.cempresa = lpos.cempresa " +
  104.                                                                             "AND dep.csucursal = lpos.csucursal " +
  105.                                                                             "AND SUBSTR (det.ds_idtitulo, 0, 3) = sgui.cprefijo "+
  106.                                                                             "AND SUBSTR (det.ds_idtitulo, 4, 8) = sgui.nguia "+
  107.                                                                             "AND pccp.CESTADOCCP in (:estado) ";
  108.    
  109.    
  110.    
  111.     private final static String query_rows_end = "AND pccp.fdcto >  SYSDATE - "+ TokenTurno.YEAR_INTERVAL +
  112.                                                  ") a group by  sd, sg order by NDCTOCCP asc "+
  113.                                                  ") SUBPARCIAL "+
  114.                                                  ") rowsGrid";
  115.                                                                  
  116.                                                                  
  117.     private final static String to_assigned_state = "UPDATE SIE.CAP_CAB_CAM_POSICIONES " +
  118.                                                     "SET CESTADOCCP = " + TokenTurno.ASSIGNED_STATE + " " +
  119.                                                     "WHERE NANIOCCP = :nanio AND CTPDCTOCCP = :tpdcto AND NDCTOCCP = :ndcto AND SGUIA = :guiaid AND CEMPRESA = :comp AND CSUCURSAL = :suc";
  120.    
  121.    
  122.     private final static String query_update_expired = "UPDATE ( " +
  123.                                                        "SELECT tv.ESTADO " +
  124.                                                        "FROM STK_TURNO_VERIFICADO tv, STK_TURNO_RANGO tr " +
  125.                                                        "WHERE tv.TURNO_ID = tr.ID " +
  126.                                                        "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) " +
  127.                                                        "AND trunc(tv.H_FECHA_TURNO) = trunc(sysdate) " +
  128.                                                        "AND tv.ESTADO = 1 " +
  129.                                                        ") " +
  130.                                                        "SET ESTADO = 0 ";
  131.  
  132.     private final static String query_scan = "SELECT COUNT(1) "+
  133.                                               "FROM STK_TURNO_VERIFICADO tv, STK_TURNO_RANGO tr "+
  134.                                               "WHERE tv.ESTADO = 1 "+
  135.                                               "AND tv.NANIOCCP = :year "+
  136.                                               "AND tv.CTPDCTOCCP = :type "+
  137.                                               "AND tv.NDCTOCCP = :dcto "+
  138.                                               "AND tv.TURNO_ID = tr.ID "+
  139.                                               "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 "+
  140.                                               "AND TRUNC(tv.h_fecha_turno) = TRUNC(sysdate) ";
  141.        
  142.     private final static String get_guia = "SELECT CPREFIJO || '-' || NGUIA AS GUIA FROM sgui WHERE SGUIA=:id";
  143.    
  144.    
  145.     @Autowired
  146.     public DespachoDAOImpl(DataSource datasource){
  147.         setDataSource(datasource);
  148.     }
  149.    
  150.     @PostConstruct
  151.     void init() {
  152.     }
  153.    
  154.     public INT countRows(INT page, INT rowsPerPage, String sortColl, String sortDir, FILTER filters){
  155.         log.info("*** DespachoDAOImpl -- countRows() ****");
  156.        
  157.         MapSqlParameterSource params = NEW MapSqlParameterSource();
  158.         String guia = NULL, despacho = NULL, fecha = NULL, codigo = NULL, deposito = NULL;
  159.         String final_query_rows_begin = query_rows_begin;
  160.        
  161.         ArrayList<Integer> iEstado = NEW ArrayList<Integer>();
  162.         ArrayList<Integer> iEstadoSelect = NEW ArrayList<Integer>();
  163.        
  164.         IF(filters != NULL){
  165.             List<Rule> rules = filters.getRules();
  166.             FOR (Iterator<Rule> it = rules.iterator(); it.hasNext();) {
  167.                 Rule rule = (Rule) it.NEXT();
  168.                
  169.                 IF(StringUtils.equalsIgnoreCase("ASIGNADO", rule.getField())){
  170.                     IF("true".equalsIgnoreCase(rule.getData())){
  171.                         iEstado.ADD(TokenTurno.PEDIDO_VERIFICADO);
  172.                         iEstado.ADD(TokenTurno.PEDIDO_VERIFICADO_PROCESANDO);
  173.                         iEstado.ADD(TokenTurno.PEDIDO_VERIFICADO_PROCESADO);
  174.                         iEstadoSelect.ADD(TokenTurno.PEDIDO_VERIFICADO);
  175.                         final_query_rows_begin += "AND tf.estado = " + TokenTurno.TURNO_ESTADO_ACTIVO;
  176.                     }
  177.                    
  178.                     IF("false".equalsIgnoreCase(rule.getData())){
  179.                         iEstado.ADD(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO);
  180.                         iEstadoSelect.ADD(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO);
  181.                     }
  182.                 }
  183.                
  184.                 IF(StringUtils.equalsIgnoreCase("GUIA", rule.getField())){
  185.                     guia = rule.getData();
  186.                     final_query_rows_begin += "AND sgui.nguia like UPPER(:guia) ";
  187.                     params.addValue("guia", "%"+guia+"%");
  188.                 }
  189.                
  190.                 IF(StringUtils.equalsIgnoreCase("DESPACHOID", rule.getField())){
  191.                     despacho = rule.getData();
  192.                     final_query_rows_begin += "AND det.ds_iddestinacion like UPPER(:despacho) ";
  193.                     params.addValue("despacho", "%"+despacho+"%");
  194.                 }
  195.                
  196.                 IF(StringUtils.equalsIgnoreCase("FECHASTR", rule.getField())){
  197.                     fecha = rule.getData();
  198.                     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') ";
  199.                     params.addValue("fecha", fecha);
  200.                 }
  201.                
  202.                 IF(StringUtils.equalsIgnoreCase("CODIGO", rule.getField())){
  203.                     codigo = rule.getData();
  204.                     final_query_rows_begin += "AND upper(tf.codigo) like upper(:codigo) ";
  205.                     params.addValue("codigo", "%"+codigo+"%");
  206.                 }
  207.                
  208.                 IF(StringUtils.equalsIgnoreCase("DEPOSITO", rule.getField())){
  209.                     deposito = rule.getData();
  210.                     final_query_rows_begin += "AND upper(dep.ddeposito) like upper(:deposito) ";
  211.                     params.addValue("deposito", "%"+deposito+"%");
  212.                 }
  213.             }
  214.         }ELSE{
  215.             iEstado.ADD(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO);
  216.             iEstadoSelect.ADD(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO);
  217.         }
  218.        
  219.         params.addValue("estadoselect", iEstadoSelect);
  220.         params.addValue("estado", iEstado);
  221.        
  222.         INT ROWS = getSimpleJdbcTemplate().queryForInt(final_query_rows_begin + query_rows_end, params);
  223.         RETURN ROWS;
  224.     }
  225.    
  226.     public List<Despacho> getDespachosPendientesVerificacion(INT page, INT rowsPerPage, String sortColl, String sortDir, FILTER filters, String USER) {
  227.         log.info("*** DespachoDAOImpl -- getDespachosPendientesVerificacion("+page+", "+rowsPerPage+", "+sortColl+", "+sortDir+", "+filters+", "+ USER + ") ****");
  228.        
  229.         MapSqlParameterSource params = NEW MapSqlParameterSource();
  230.         String guia = NULL, despacho = NULL, fecha = NULL, codigo = NULL, deposito = NULL;
  231.         String final_query_begin = query_begin;
  232.         BOOLEAN isUsernameCode = FALSE;
  233.        
  234.         ArrayList<Integer> iEstado = NEW ArrayList<Integer>();
  235.         ArrayList<Integer> iEstadoSelect = NEW ArrayList<Integer>();
  236.        
  237.         IF(filters != NULL){
  238.             List<Rule> rules = filters.getRules();
  239.             FOR (Iterator<Rule> it = rules.iterator(); it.hasNext();) {
  240.                 Rule rule = (Rule) it.NEXT();
  241.                
  242.                 IF(StringUtils.equalsIgnoreCase("ASIGNADO", rule.getField())){
  243.                     IF("true".equalsIgnoreCase(rule.getData())){
  244.                         iEstado.ADD(TokenTurno.PEDIDO_VERIFICADO);
  245.                         iEstado.ADD(TokenTurno.PEDIDO_VERIFICADO_PROCESANDO);
  246.                         iEstado.ADD(TokenTurno.PEDIDO_VERIFICADO_PROCESADO);
  247.                         iEstadoSelect.ADD(TokenTurno.PEDIDO_VERIFICADO);
  248.                         final_query_begin += "AND tf.estado = " + TokenTurno.TURNO_ESTADO_ACTIVO;
  249.                     }
  250.                    
  251.                     IF("false".equalsIgnoreCase(rule.getData())){
  252.                         iEstado.ADD(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO);
  253.                         iEstadoSelect.ADD(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO);
  254.                         isUsernameCode = TRUE;
  255.                     }
  256.                 }
  257.                
  258.                 IF(StringUtils.equalsIgnoreCase("GUIA", rule.getField())){
  259.                     guia = rule.getData();
  260.                     final_query_begin += "AND sgui.nguia like UPPER(:guia) ";
  261.                     params.addValue("guia", "%"+guia+"%");
  262.                 }
  263.                
  264.                 IF(StringUtils.equalsIgnoreCase("DESPACHOID", rule.getField())){
  265.                     despacho = rule.getData();
  266.                     final_query_begin += "AND det.ds_iddestinacion like UPPER(:despacho) ";
  267.                     params.addValue("despacho", "%"+despacho+"%");
  268.                 }
  269.                
  270.                 IF(StringUtils.equalsIgnoreCase("FECHASTR", rule.getField())){
  271.                     fecha = rule.getData();
  272.                     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') ";
  273.                     params.addValue("fecha", fecha);
  274.                 }
  275.                
  276.                 IF(StringUtils.equalsIgnoreCase("CODIGO", rule.getField())){
  277.                     codigo = rule.getData();
  278.                     final_query_begin += "AND upper(tf.codigo) like upper(:codigo) ";
  279.                     params.addValue("codigo", "%"+codigo+"%");
  280.                 }
  281.                
  282.                 IF(StringUtils.equalsIgnoreCase("DEPOSITO", rule.getField())){
  283.                     deposito = rule.getData();
  284.                     final_query_begin += "AND upper(dep.ddeposito) like upper(:deposito) ";
  285.                     params.addValue("deposito", "%"+deposito+"%");
  286.                 }
  287.             }
  288.         }ELSE{
  289.             iEstado.ADD(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO);
  290.             iEstadoSelect.ADD(TokenTurno.PEDIDO_VERIFICADO_PENDIENTE_TURNO);
  291.             isUsernameCode = TRUE;
  292.         }
  293.        
  294.         params.addValue("estadoselect", iEstadoSelect);
  295.         params.addValue("estado", iEstado);
  296.         params.addValue("desde", rowsPerPage * (page - 1));
  297.         params.addValue("hasta", rowsPerPage * page);
  298.        
  299.         IF(isUsernameCode) {
  300.             params.addValue("isusercode", 0);
  301.         }ELSE{
  302.             params.addValue("isusercode", 1);
  303.         }
  304.        
  305.         params.addValue("user", USER);
  306.        
  307.         RowMapper<Despacho> rowMapper = NEW RowMapper<Despacho>() {
  308.             public Despacho mapRow(ResultSet rs, INT rowNum) throws SQLException {
  309.                
  310.                 Long id = rs.getLong("ID");
  311.                 String destinacion = rs.getString("DESTINACION");
  312.                 String prefijo = rs.getString("PREFIJO");
  313.                 String numero = rs.getString("NUMERO");
  314.                 BOOLEAN asignado = (rs.getInt("ASIGNADO")==1)?TRUE:FALSE;
  315.                 Long nanio = rs.getLong("NANIOCCP");
  316.                 Long tpdcto = rs.getLong("CTPDCTOCCP");
  317.                 Long ndcto = rs.getLong("NDCTOCCP");
  318.                 Long sguia = rs.getLong("SGUIA");
  319.                 Long sdctoing = rs.getLong("SDCTOING");
  320.                 Long posOrigen = rs.getLong("SPOSICION_ORIGEN");
  321.                 String codigo = rs.getString("CODIGO");
  322.                 DATE fechaTurno = rs.getDate("H_FECHA_TURNO");
  323.                 INTEGER turnoId = rs.getInt("TURNO_ID");
  324.                 Long ndeposito = rs.getLong("DEPOSITO");
  325.                 String deposito = rs.getString("DDEPOSITO");
  326.                
  327.                 RETURN NEW Despacho(id, destinacion, prefijo, numero, asignado, nanio, tpdcto, ndcto, sguia, sdctoing, posOrigen, codigo, fechaTurno, turnoId, deposito, ndeposito);
  328.             }
  329.         };
  330.        
  331.         RETURN getSimpleJdbcTemplate().query(final_query_begin + query_end, rowMapper, params);
  332.     }
  333.  
  334.     public BOOLEAN changeToAssignedState(StkTurnoVerificado turno) {
  335.         log.info("***DespachoDAOImpl -- toPendVerifState(StkTurnoVerificado turno) ****");
  336.         log.info("---> " + turno.toString());
  337.        
  338.         MapSqlParameterSource params = NEW MapSqlParameterSource();
  339.        
  340.         params.addValue("nanio", turno.getNanio()).addValue("tpdcto", turno.getTpdcto()).addValue("ndcto", turno.getNdcto())
  341.         .addValue("guiaid", turno.getSguia()).addValue("comp", TokenTurno.COMPANY).addValue("suc", TokenTurno.BRANCH_OFFICE);
  342.  
  343.         INTEGER upd_result = getSimpleJdbcTemplate().UPDATE(to_assigned_state, params);
  344.        
  345.         RETURN (upd_result==1)?TRUE:FALSE;
  346.     }
  347.    
  348.     @SuppressWarnings("deprecation")
  349.     public INTEGER turnoProcess(Despacho despacho) {
  350.         log.info("*** DespachoDAOImpl -- turnoProcess(Despacho despacho) ****");
  351.         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 + ")");
  352.        
  353.         INTEGER outParam = NULL;
  354.         try {
  355.             CallableStatement store = sessionFactory.getCurrentSession().connection().prepareCall ("call p_turno_process(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
  356.             store.setLong(1, TokenTurno.ASSIGNED_STATE);
  357.             store.setLong(2, despacho.getNanio());
  358.             store.setLong(3, despacho.getTpdcto());
  359.             store.setLong(4, despacho.getNdcto());
  360.             store.setLong(5, despacho.getSguia());
  361.             store.setString(6, despacho.getUser());
  362.             store.setLong(7, despacho.getSdctoing());
  363.             store.setLong(8, despacho.getPosOrigen());
  364.             store.setLong(9, despacho.getTurnoVerificacion());
  365.             store.setLong(10, TokenTurno.COMPANY);
  366.             store.setLong(11, TokenTurno.BRANCH_OFFICE);
  367.             store.setInt(12, despacho.getNumbop());
  368.             store.setInt(13, despacho.getEstado());
  369.             store.setString(14, despacho.getUser());
  370.             store.setString(15, despacho.getDestinacion());
  371.             store.registerOutParameter (16, Types.INTEGER);
  372.             store.EXECUTE ();
  373.             outParam = store.getInt(16);
  374.             store.close();
  375.         } catch (HibernateException e) {
  376.             e.printStackTrace();
  377.             log.info(e.getMessage());
  378.             RETURN NULL;
  379.         } catch (SQLException e) {
  380.             e.printStackTrace();
  381.             log.info(e.getMessage());
  382.             RETURN NULL;
  383.         }
  384.        
  385.         log.info("*** return call p_turno_process = "+ outParam +" ****");
  386.        
  387.         RETURN outParam;
  388.     }
  389.    
  390.    
  391.    
  392.     public DATE getNextTurnoDate(DATE fecha) {
  393.        
  394.         log.info("*** DespachoDAOImpl -- getNextTurnoDate(Date fecha) ****");
  395.         log.info("call f_is_date_valid("+ fecha + ")");
  396.        
  397.         java.SQL.DATE fechaParameter = NEW java.SQL.DATE(System.currentTimeMillis());
  398.         java.SQL.DATE fechaRetorno = NULL;
  399.         java.util.DATE fecharet = NEW DATE(System.currentTimeMillis());
  400.        
  401.         try {
  402.             String calling = "{? = call sie.f_is_date_valid(?)}";
  403.             fechaParameter.setTime(fecha.getTime());
  404.  
  405.             CallableStatement store = sessionFactory.getCurrentSession().connection().prepareCall (calling);
  406.             store.registerOutParameter(1, java.SQL.Types.DATE);
  407.             store.setDate(2, fechaParameter);
  408.             store.EXECUTE();
  409.             fechaRetorno = store.getDate(1);
  410.             store.close();         
  411.         } catch (HibernateException e) {
  412.             e.printStackTrace();
  413.             log.info(e.getMessage());
  414.             RETURN NULL;
  415.         } catch (SQLException e) {
  416.             e.printStackTrace();
  417.             log.info(e.getMessage());
  418.             RETURN NULL;
  419.         }
  420.        
  421.         fecharet.setTime(fechaRetorno.getTime());
  422.        
  423.         RETURN fecharet;
  424.     }
  425.    
  426.    
  427.     public BOOLEAN isAuthorizedUser(String username) {
  428.         log.info("*** DespachoDAOImpl -- isAuthorizedUser(String username) ****");
  429.         log.info("call P_IS_AUTHORIZED_USER("+username+")");
  430.        
  431.         INTEGER outParam = NULL;
  432.        
  433.         try {
  434.             CallableStatement store = sessionFactory.getCurrentSession().connection().prepareCall ("CALL P_IS_AUTHORIZED_USER(?, ?)");
  435.             store.setString(1, username);
  436.             store.registerOutParameter (2, Types.INTEGER);
  437.             store.EXECUTE();
  438.             outParam = store.getInt(2);
  439.             store.close();
  440.         } catch (HibernateException e) {
  441.             e.printStackTrace();
  442.             log.info(e.getMessage());
  443.             RETURN NULL;
  444.         } catch (SQLException e) {
  445.             e.printStackTrace();
  446.             log.info(e.getMessage());
  447.             RETURN NULL;
  448.         }
  449.        
  450.         RETURN outParam==1?BOOLEAN.TRUE:BOOLEAN.FALSE;
  451.     }
  452.    
  453.     public List<String> getAsignado(Despacho despacho) {
  454.         log.info("*** DespachoDAOImpl -- getAsignado() ****");
  455.         log.info("call GET_ASSIGNED_USER("+ despacho.getNanio() + ", " + despacho.getTpdcto() + ", " + despacho.getNdcto() + ", " + despacho.getSguia() + ", " + despacho.getSdctoing() + ", " + despacho.getPosOrigen() + ", " + despacho.getTurnoVerificacion() + ", " + despacho.getEstado() +")");
  456.        
  457.         String e_asignado = NULL, e1_despachante = NULL, e2_despachante = NULL, e3_despachante = NULL;
  458.         List<String> emails = NEW ArrayList<String>();
  459.        
  460.         try {
  461.            
  462.             CallableStatement store = sessionFactory.getCurrentSession().connection().prepareCall ("CALL GET_ASSIGNED_USER(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
  463.            
  464.             store.setLong(1, despacho.getNanio());
  465.             store.setLong(2, despacho.getTpdcto());
  466.             store.setLong(3, despacho.getNdcto());
  467.             store.setLong(4, despacho.getSguia());
  468.             store.setLong(5, despacho.getSdctoing());
  469.             store.setLong(6, despacho.getPosOrigen());
  470.             store.setInt(7, despacho.getTurnoVerificacion());
  471.             store.setInt(8, despacho.getEstado());
  472.             store.registerOutParameter(9, Types.VARCHAR);
  473.             store.registerOutParameter(10, Types.VARCHAR);
  474.             store.registerOutParameter(11, Types.VARCHAR);
  475.             store.registerOutParameter(12, Types.VARCHAR);
  476.             store.EXECUTE();
  477.             e_asignado = store.getString(9);
  478.             e1_despachante = store.getString(10);
  479.             e2_despachante = store.getString(11);
  480.             e3_despachante = store.getString(12);
  481.             store.close();
  482.            
  483.             IF(e_asignado!=NULL){
  484.                 emails.ADD(e_asignado);
  485.             }
  486.            
  487.             IF(e1_despachante!=NULL) {
  488.                 emails.ADD(e1_despachante);
  489.             }
  490.            
  491.             IF(e2_despachante!=NULL) {
  492.                 emails.ADD(e2_despachante);
  493.             }
  494.            
  495.             IF(e3_despachante!=NULL) {
  496.                 emails.ADD(e3_despachante);
  497.             }
  498.            
  499.         } catch (HibernateException e) {
  500.             e.printStackTrace();
  501.             log.info(e.getMessage());
  502.             RETURN NULL;
  503.         } catch (SQLException e) {
  504.             e.printStackTrace();
  505.             log.info(e.getMessage());
  506.             RETURN NULL;
  507.         }
  508.        
  509.         RETURN emails;
  510.     }
  511.  
  512.     public void disableTurnosExpired() {
  513.         log.info("*** DespachoDAOImpl -- disableTurnosExpired() ****");
  514.        
  515.         MapSqlParameterSource params = NEW MapSqlParameterSource();
  516.         INT updatedRows = getSimpleJdbcTemplate().UPDATE(query_update_expired, params);
  517.        
  518.         log.info("*** QUARTZ JOB -- "+updatedRows+" actualizados ****");
  519.     }
  520.  
  521.     public BOOLEAN scannerCode(String code) {
  522.        
  523.         MapSqlParameterSource params = NEW MapSqlParameterSource();
  524.         String YEAR = NULL, TYPE = NULL, dcto = NULL;
  525.        
  526.         YEAR = code.SUBSTRING(TokenTurno.YEAR_BEGIN, TokenTurno.YEAR_END);
  527.         TYPE = code.SUBSTRING(TokenTurno.TYPE_BEGIN, TokenTurno.TYPE_END);
  528.         dcto = code.SUBSTRING(TokenTurno.DCTO_BEGIN, TokenTurno.DCTO_END);
  529.        
  530.         params.addValue("year", YEAR);
  531.         params.addValue("type", TYPE);
  532.         params.addValue("dcto", dcto);
  533.        
  534.         INT ROWS = getSimpleJdbcTemplate().queryForInt(query_scan, params);
  535.        
  536.         RETURN (rows>0)?BOOLEAN.TRUE:BOOLEAN.FALSE;
  537.     }
  538.  
  539.     public String getGuia(Despacho despacho) {
  540.         log.info("***DespachoDAOImpl -- getGuia(Despacho despacho) ****");
  541.         log.info("---> " + despacho.toString());
  542.        
  543.         MapSqlParameterSource params = NEW MapSqlParameterSource();
  544.        
  545.         params.addValue("id", despacho.getSguia());
  546.  
  547.         RowMapper<String> rowMapper = NEW RowMapper<String>() {
  548.             public String mapRow(ResultSet rs, INT rowNum) throws SQLException {
  549.                
  550.                 RETURN rs.getString("GUIA");
  551.             }
  552.         };
  553.        
  554.         RETURN getSimpleJdbcTemplate().query(get_guia, rowMapper, params).GET(0);
  555.  
  556.     }
  557.    
  558. }
Advertisement
Add Comment
Please, Sign In to add comment