예제 #1
0
  /**
   * @param paramsConMercDirecto Los parámetros de la consulta.
   * @param opcionesConsulta Las opciones de paginación y ordenamiento solicitadas por el usuario.
   * @param sc El contexto de seguridad.
   * @return Un objeto de tipo DatosTabularesPaginados. Si no se encuentran //TODO determinar que
   *     regresa sino hay datos.
   * @throws Exception En caso de un error en la consulta.
   */
  public final DatosTabularesPaginados consultaMercadoDirecto(
      final ParametrosConsultaMercadoDirectoVO paramsConMercDirecto,
      final OpcionesConsulta opcionesConsulta,
      final SantanderSecurityContext sc)
      throws Exception {
    String orderBy = "";

    DatosTabularesPaginados datosTabularesPaginados = new DatosTabularesPaginados();

    log.debug("Entro al consultaMercadoDirecto del " + "DAO DineroConsultasDAOImpl");

    // 'Ejecuta los QUERYS necesarios según las opciones elegidas.
    // 'Esto es para cundo se elige la opción Mercado de Dinero -> Directo
    String sSql = "";
    String sSql2 = "";
    String sSql3 = "";

    // 'GSP 04062003. Se cambian comentarios al final de la rutina
    if (paramsConMercDirecto.getChkDirecto().equals("1")
        && paramsConMercDirecto.getChkReporto().equals("0")
        && paramsConMercDirecto.getChkPasivosBancariosDerivados().equals("0")) {
      // && frmMain.optseleccion(0).Value = True) {

      sSql =
          queryMercadoDirecto.obtenQueryMercadoDirecto(
              paramsConMercDirecto,
              opcionesConsulta,
              sc,
              getParametrosGenerales()); // Query_Merc_Directo
    } else if (paramsConMercDirecto.getChkDirecto().equals("0")
        && paramsConMercDirecto.getChkReporto().equals("1")
        && paramsConMercDirecto.getChkPasivosBancariosDerivados().equals("0")) {
      // && frmMain.optseleccion(0).Value = True) {

      sSql =
          queryMercadoReporto.obtenQueryMercadoReporto(
              paramsConMercDirecto,
              opcionesConsulta,
              sc,
              getParametrosGenerales()); // Query_Merc_Reporto
    } else if (paramsConMercDirecto.getChkDirecto().equals("0")
        && paramsConMercDirecto.getChkReporto().equals("0")
        && paramsConMercDirecto.getChkPasivosBancariosDerivados().equals("1")) {
      // && frmMain.optseleccion(0).Value = True) {
      sSql =
          queryMercadoOperaciones.obtenQueryMercadoOperaciones(
              paramsConMercDirecto,
              opcionesConsulta,
              sc,
              getParametrosGenerales()); // Query_Merc_Operaciones
    } else if (paramsConMercDirecto.getChkDirecto().equals("1")
        && paramsConMercDirecto.getChkReporto().equals("1")
        && paramsConMercDirecto.getChkPasivosBancariosDerivados().equals("0")) {
      // && frmMain.optseleccion(0).Value = True) {
      sSql =
          queryMercadoDirecto.obtenQueryMercadoDirecto(
              paramsConMercDirecto,
              opcionesConsulta,
              sc,
              getParametrosGenerales()); // Query_Merc_Directo
      if (sSql.trim().length() > 0) {
        sSql2 =
            queryMercadoReporto.obtenQueryMercadoReporto(
                paramsConMercDirecto,
                opcionesConsulta,
                sc,
                getParametrosGenerales()); // Query_Merc_Reporto
        if (sSql2.trim().length() > 0) {
          sSql = sSql + " UNION ALL " + sSql2;
        } else {
          sSql = "";
        }
      }
    } else if (paramsConMercDirecto.getChkDirecto().equals("0")
        && paramsConMercDirecto.getChkReporto().equals("1")
        && paramsConMercDirecto.getChkPasivosBancariosDerivados().equals("1")) {
      // && frmMain.optseleccion(0).Value = True) {
      sSql =
          queryMercadoReporto.obtenQueryMercadoReporto(
              paramsConMercDirecto,
              opcionesConsulta,
              sc,
              getParametrosGenerales()); // Query_Merc_Reporto
      if (sSql.trim().length() > 0) {
        sSql2 =
            queryMercadoOperaciones.obtenQueryMercadoOperaciones(
                paramsConMercDirecto,
                opcionesConsulta,
                sc,
                getParametrosGenerales()); // Query_Merc_Operaciones
        if (sSql2.trim().length() > 0) {
          sSql = sSql + " UNION ALL " + sSql2;
        } else {
          sSql = "";
        }
      }
    } else if (paramsConMercDirecto.getChkDirecto().equals("1")
        && paramsConMercDirecto.getChkReporto().equals("0")
        && paramsConMercDirecto.getChkPasivosBancariosDerivados().equals("1")) {
      // && frmMain.optseleccion(0).Value = True) {
      sSql =
          queryMercadoDirecto.obtenQueryMercadoDirecto(
              paramsConMercDirecto,
              opcionesConsulta,
              sc,
              getParametrosGenerales()); // Query_Merc_Directo
      if (sSql.trim().length() > 0) {
        sSql2 =
            queryMercadoOperaciones.obtenQueryMercadoOperaciones(
                paramsConMercDirecto,
                opcionesConsulta,
                sc,
                getParametrosGenerales()); // Query_Merc_Operaciones
        if (sSql2.trim().length() > 0) {
          sSql = sSql + " UNION ALL " + sSql2;
        } else {
          sSql = "";
        }
      }
    } else if (paramsConMercDirecto.getChkDirecto().equals("1")
        && paramsConMercDirecto.getChkReporto().equals("1")
        && paramsConMercDirecto.getChkPasivosBancariosDerivados().equals("1")) {
      // && frmMain.optseleccion(0).Value = True) {
      sSql =
          queryMercadoDirecto.obtenQueryMercadoDirecto(
              paramsConMercDirecto,
              opcionesConsulta,
              sc,
              getParametrosGenerales()); // Query_Merc_Directo
      if (sSql != null && sSql.trim().length() > 0) {
        sSql2 =
            queryMercadoReporto.obtenQueryMercadoReporto(
                paramsConMercDirecto,
                opcionesConsulta,
                sc,
                getParametrosGenerales()); // Query_Merc_Reporto
        if (sSql2 != null && sSql2.trim().length() > 0) {
          sSql3 =
              queryMercadoOperaciones.obtenQueryMercadoOperaciones(
                  paramsConMercDirecto,
                  opcionesConsulta,
                  sc,
                  getParametrosGenerales()); // Query_Merc_Operaciones
          if (sSql3 != null && sSql3.trim().length() > 0) {
            sSql = sSql + " UNION ALL " + sSql2 + " UNION ALL " + sSql3;
          } else {
            sSql = "";
          }
        } else {
          sSql = "";
        }
      }
    } else {
      // MessageInfo " Debe de elegir el tipo de Operación de Mercado "
      return null;
    }
    // 'Call Carga_Query(sSql, frmMain.grdseleccion(0))
    if (sSql != null && sSql.trim().length() > 0) {

      // orderBy = "ORDER BY 1";
      // 'mlgv 20000513 ordenar por tipo de operación

      /**
       * Ordenamiento de las filas ascedente o descendente. Cuando entra la primera vez el
       * ordenamiento será de acuerdo a la columas 1. Cuando se selecciona una fila desde la vista
       * el ordenamiento se realizará de acuerdo a esa fila.
       */
      if (opcionesConsulta.getColumnaSort() != null
          && !opcionesConsulta.getColumnaSort().equals("0")
          && opcionesConsulta.getOrdenSort() != null) {

        if (!(opcionesConsulta.getColumnaSort().equals("")
            && opcionesConsulta.getOrdenSort().equals(""))) {

          if (opcionesConsulta
              .getOrdenSort()
              .equals(String.valueOf(OpcionesConsulta.ORDEN_ASCENDENTE))) {
            orderBy += " ORDER BY " + opcionesConsulta.getColumnaSort() + " ASC";
          } else {
            orderBy += " ORDER BY " + opcionesConsulta.getColumnaSort() + " DESC";
          }
        }
      } else {
        orderBy = " ORDER BY 1  ";
      }

      log.info("sSql=" + sSql);

      /**
       * Buena práctica: solicitar la conexión a la base de datos lo más tarde posible, y liberarla
       * lo más pronto posible.
       */
      Connection cn = getConnection();
      Statement stmt = null; // ANZDic2011 Conexión
      ResultSet rs = null; // ANZDic2011 Conexión

      try { // ANZDic2011 Conexión. Se agrega try catch
        /** Averigua cuantos registros cumplen con las condiciones: */
        String queryCompleto = "select count (*) from (" + sSql + ")";
        /** Usar el debug lo menos posible: */
        log.debug("query=" + queryCompleto);

        // Statement stmt = cn.createStatement();
        // ResultSet rs = stmt.executeQuery(queryCompleto);

        stmt = cn.createStatement(); // ANZDic2011 Conexión
        rs = stmt.executeQuery(queryCompleto); // ANZDic2011 Conexión

        if (rs.next()) {
          datosTabularesPaginados.setNumeroTotalRegistros(rs.getInt(1));
          log.debug("Count de registros=" + rs.getInt(1));
        } else {
          log.debug("El result set esta vacio.");
        }
        /** Importante cerrar tanto el ResultSet como el Statement: */
        rs.close();
        stmt.close();

        /** Después de saber cuántos registros cumplen, hacemos una consulta paginada: */
        stmt = cn.createStatement();
        log.debug("opcionesConsulta.getTamanoPagina()=" + opcionesConsulta.getTamanoPagina());

        queryCompleto = " select * from (" + sSql + ") where 1=1 " + orderBy;
        /** Usar el debug lo menos posible: */
        log.info("query completo!!! : ______________________________ \n" + queryCompleto);
        rs = stmt.executeQuery(queryCompleto);
        datosTabularesPaginados.setDatosTabulares(
            new DatosTabularesRowSet(
                rs, opcionesConsulta.getNumeroPagina(), opcionesConsulta.getTamanoPagina()));
        /** No olvidar cerrar todo lo abierto. En este caso, ResultSet, Statement y Conexión: */
        rs.close();
        stmt.close();
        cn.close();
      } catch (Exception e) {
        // ANZDic2011 Conexión
        try {
          if (rs != null) {
            rs.close();
            rs = null;
          }
          if (stmt != null) {
            stmt.close();
            stmt = null;
          }
          if (cn != null) {
            cn.close();
            cn = null;
          }
        } catch (Exception cne) {
          rs = null;
          stmt = null;
          cn = null;
        }
        log.error("ocurrio un error: ", e);
        throw e;
      } finally {
        try {
          if (rs != null) {
            rs.close();
            rs = null;
          }
          if (stmt != null) {
            stmt.close();
            stmt = null;
          }
          if (cn != null) {
            cn.close();
            cn = null;
          }
        } catch (Exception e) {
          rs = null;
          stmt = null;
          cn = null;
        }
      }
      return datosTabularesPaginados;
    } else {
      return datosTabularesPaginados;
    }
  }
예제 #2
0
  /**
   * Este metodo obtiene la lista de operaciones de grupo.
   *
   * @param paramsConMercDirecto parametros que vienen del front.
   * @param opcionesConsulta opciones de la consulta.
   * @param sc contexto de seguridad
   * @return regresa un objeto datos tabulares con los datos a desplegar.
   * @throws Exception se espera una excepcion.
   */
  public final DatosTabularesPaginados consultaGrupo(
      final ParametrosConsultaMercadoDirectoVO paramsConMercDirecto,
      final OpcionesConsulta opcionesConsulta,
      final SantanderSecurityContext sc)
      throws Exception {

    String orderBy = "";
    String sSql = "";

    DatosTabularesPaginados datosTabularesPaginados = new DatosTabularesPaginados();

    sSql =
        queryMercadoGrupo.obtenQueryMercadoGrupo(
            paramsConMercDirecto,
            opcionesConsulta,
            sc,
            getParametrosGenerales()); // Query_Merc_Renovados

    if (sSql != null && sSql.trim().length() > 0) {

      // orderBy = "ORDER BY 9";
      /**
       * Ordenamiento de las filas ascedente o descendente. Cuando entra la primera vez el
       * ordenamiento será de acuerdo a la columas 9. Cuando se selecciona una fila desde la vista
       * el ordenamiento se realizará de acuerdo a esa fila.
       */
      if (opcionesConsulta.getColumnaSort() != null
          && !opcionesConsulta.getColumnaSort().equals("0")
          && opcionesConsulta.getOrdenSort() != null) {

        if (!(opcionesConsulta.getColumnaSort().equals("")
            && opcionesConsulta.getOrdenSort().equals(""))) {

          if (opcionesConsulta
              .getOrdenSort()
              .equals(String.valueOf(OpcionesConsulta.ORDEN_ASCENDENTE))) {
            orderBy += " ORDER BY " + opcionesConsulta.getColumnaSort() + " ASC";
          } else {
            orderBy += " ORDER BY " + opcionesConsulta.getColumnaSort() + " DESC";
          }
        }
      } else {
        orderBy = " ORDER BY 9  ";
      }

      log.info("sSql=\n" + sSql);

      /**
       * Buena práctica: solicitar la conexión a la base de datos lo más tarde posible, y liberarla
       * lo más pronto posible.
       */
      Connection cn = getConnection();
      Statement stmt = null;
      ResultSet rs = null;

      /**
       * Averigua cuantos registros cumplen con las condiciones:
       *
       * <p>String queryCompleto = "select count (*) from (" + sSql + ")"; /** Usar el debug lo
       * menos posible:
       *
       * <p>//log.debug("query=" + queryCompleto);
       *
       * <p>Statement stmt = cn.createStatement(); ResultSet rs = stmt.executeQuery(queryCompleto);
       *
       * <p>if (rs.next()) { datosTabularesPaginados.setNumeroTotalRegistros( rs.getInt(1));
       * log.debug("Count de registros=" + rs.getInt(1)); } else { log.debug("El result set esta
       * vacio."); }
       *
       * <p>Importante cerrar tanto el ResultSet como el Statement:
       *
       * <p>rs.close(); stmt.close(); cuentaRegistrosResultSet(rs);
       */
      try {
        stmt = cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

        /** Después de saber cuántos registros cumplen, hacemos una consulta paginada: */
        log.debug("opcionesConsulta.getTamanoPagina()=" + opcionesConsulta.getTamanoPagina());

        String queryCompleto =
            " select * from ("
                + sSql
                + ") where 1=1 and "
                + this.armaCondicionPaginacion(
                    opcionesConsulta.getNumeroPagina(), opcionesConsulta.getTamanoPagina())
                + orderBy;
        /** Usar el debug lo menos posible: */
        log.debug(queryCompleto);
        rs = stmt.executeQuery(queryCompleto);

        int totReg = cuentaRegistrosResultSet(rs);

        datosTabularesPaginados.setNumeroTotalRegistros(totReg);

        datosTabularesPaginados.setDatosTabulares(
            new DatosTabularesRowSet(
                rs, opcionesConsulta.getNumeroPagina(), opcionesConsulta.getTamanoPagina()));
      } catch (Exception e) {
        log.error(e);
        // ANZDic2011 Conexión
        try {
          if (rs != null) {
            rs.close();
            rs = null;
          }
          if (stmt != null) {
            stmt.close();
            stmt = null;
          }
          if (cn != null) {
            cn.close();
            cn = null;
          }
        } catch (Exception cne) {
          rs = null;
          stmt = null;
          cn = null;
        }
      } finally {
        /** No olvidar cerrar todo lo abierto. En este caso, ResultSet, Statement y Conexión: */
        try {
          if (rs != null) {
            rs.close();
            rs = null;
          }
          if (stmt != null) {
            stmt.close();
            stmt = null;
          }
          if (cn != null) {
            cn.close();
            cn = null;
          }
        } catch (Exception e) {
          rs = null;
          stmt = null;
          cn = null;
        }
      }
      return datosTabularesPaginados;
    } else {
      return datosTabularesPaginados;
    }
  }