- Agregar sentencia en formato JsonQuery en la tabla t_query.
Ejemplo de jsonquery del query_id = 3
JsonQuery
{ "select": [
"do.operacion_id",
"do.cuenta_origen",
"do.cuenta_destino",
"dc.ci",
"dc.nombre_completo", "dc.tipo_cuenta",
"do.moneda",
"do.importe",
"do.glosa", "do.tipo",
"TO_CHAR(do.f_operacion,'YYYY-MM-DD HH24.MI.SS') as f_operacion", "do.f_operacion as f_operaciondate",
"do.estado", "dp.cod_participante_gw", "dpa.cod_participante_gw as cod_participante_gw_ori","dc.nro_cuenta"
],
"from": [
"d_operacion_caja do",
"d_cliente_caja dc",
"d_participante dp", "d_participante dpa"
],
"where": [
"do.cliente_caja_id = dc.cliente_caja_id","do.participante_id = dp.participante_id", "dc.participante_id = dpa.participante_id",
"do.usuario_caja = CASE WHEN :usuario_caja = '0' THEN do.usuario_caja ELSE :usuario_caja END",
"do.cod_usuario = CASE WHEN :cod_caja = '0' THEN do.cod_usuario ELSE :cod_caja END",
"do.f_operacion BETWEEN :dia_inicio and :dia_fin "
],
"orderBy": "1 desc"
}
2. Procesar los JsonQuery de la siguiente manera los registros. Adjunto el ejemplo.
QueryDto query = querySpec.findByCode("", DimoSicoop.QUERY_FIND_LAST_DOPERACIONS_CAJA);// se obtiene el query correspondiente de la tabla t_query mediante el metodo correspondiente
String sql = query.getDefinition();
Map param = new TreeMap();//se declara la variable árbol que contendrá las variables a ser reemplazadas en el query
param.put("usuario_caja", requestTransacciones.getData().getUsuarioCaja());
param.put("cod_caja", requestTransacciones.getData().getCodCaja());
param.put("dia_inicio", UtilesGenerales.str_toDate(requestTransacciones.getData().getFechaInicio()+" 00:00:00", "dd-MM-yyyy hh:mm:ss"));
param.put("dia_fin", UtilesGenerales.str_toDate(requestTransacciones.getData().getFechaFin()+" 23:59:59", "dd-MM-yyyy hh:mm:ss"));
LOGGER.log(INFO, param.toString());
List<Object[]> list = QueryBuilder.query(sql, param, tQueryDaoSpec.getEM());//
List<String> names = QueryBuilder.getCabecera(query.getDefinition());
List<UltimasTransacciones> dOperacionEntityList = ObjectUtil.getObjectByList(UltimasTransacciones.class, list, names);// se declara un listado utilizando una clase con los valores retornados por el query