[EDIT] CAMBIOS DE DISEÑO Y MULTIPLES REPARACIONES

parent b65c7316
......@@ -30,7 +30,7 @@ public interface UsuarioDAO {
public int eliminarUsuario(int codigo) throws Exception;
public JSONObject listarUsuarioDetalle(String filtro, int vstart, int vlength, String draw) throws Exception;
public JSONObject listarUsuarioDetalle(JSONObject filtro, int vstart, int vlength, String draw) throws Exception;
public int eliminarUsuarioDetalle(int codigo) throws Exception;
......
......@@ -45,7 +45,8 @@ public class ProyectoMYSQLDAO implements ProyectoDAO {
}
query = " select cod_proyecto, nom, est, url from proyecto "
+ " where true"
+ " " + busqueda + " ";
+ " " + busqueda + " " +
" limit " + vstart + "," + (vstart+vlength) + " ";
con = MySQLDAOFactory.getConnectionSQL(base);
System.out.println("query: " + query);
pst = con.prepareStatement(query);
......@@ -64,7 +65,7 @@ public class ProyectoMYSQLDAO implements ProyectoDAO {
String query2 = " select count(*) as cant "
+ " from proyecto "
+ " where 1 = 1 "
+ " " + busqueda + " ";
+ " " + busqueda +";";
PreparedStatement pst2 = null;
ResultSet rs2 = null;
con = MySQLDAOFactory.getConnectionSQL(base);
......
......@@ -28,37 +28,34 @@ public class UsuarioMYSQLDAO implements UsuarioDAO {
ResultSet rs = null;
String query = "";
JSONArray lista = new JSONArray();
String busqueda01;
try {
switch (datos.getString("tipo")) {
case "1":
busqueda01 = " and a.usu like '%" + datos.getString("filtro") + "%' ";
break;
case "2":
busqueda01 = " and pd.cod_proyecto = " + datos.getString("filtro") + " ";
break;
case "3":
busqueda01 = " and ud.cod_proyecto_detalle = " + datos.getString("filtro") + " ";
break;
default:
busqueda01 = "";
break;
}
if (!datos.getBoolean("estado")) {
busqueda01 += " and a.est = 1 ";
} else {
busqueda01 += " and a.est = 0 ";
}
query = " WITH tablaOrdenada AS (SELECT a.cod_usuario, a.cod_trabajador, a.usu, a.est, ROW_NUMBER() OVER (ORDER BY a.cod_usuario) AS cantidad FROM usuario AS a "
+ " LEFT JOIN usuario_detalle AS ud ON ud.cod_usuario = a.cod_usuario "
+ " LEFT JOIN proyecto_detalle AS pd ON pd.cod_proyecto_detalle = ud.cod_proyecto_detalle "
+ " WHERE 1= 1 "
+ " " + busqueda01 + " "
+ " GROUP BY a.cod_usuario, a.cod_trabajador, a.usu, a.est) "
+ " select cod_usuario, cod_trabajador, usu, est, cantidad from tablaOrdenada "
+ " where cantidad BETWEEN "+vstart+" and "+vlength*draw
+ " ORDER BY usu ASC";
String estado = !datos.getBoolean("estado") ? " and a.est = 1 " : " and a.est = 0 ";
int proyecto = datos.isNull("proyecto") ? 0 : datos.getInt("proyecto");
int tipoUsuario = datos.isNull("tipoUsuario") ? 0 : datos.getInt("tipoUsuario");
int estadoPersonal = datos.isNull("estadoPersonal") ? 2 : datos.getInt("estadoPersonal") == 0 ? 2 : datos.getInt("estadoPersonal") == 1 ? 0 : 1;
String personal = datos.isNull("trabajador") ? "" : datos.getString("trabajador");
boolean isNumber = personal.matches("[0-9]+");
String cargo = datos.isNull("cargo") ? "" : datos.getString("cargo");
query = "WITH tablaOrdenada AS (SELECT a.cod_usuario, a.cod_trabajador, a.usu, a.est,p.tmp_id,p.retirado\n" +
" FROM usuario AS a\n" +
" LEFT JOIN seguridad.usuario_detalle AS ud ON ud.cod_usuario = a.cod_usuario\n" +
" LEFT JOIN seguridad.proyecto_detalle AS pd\n" +
" ON pd.cod_proyecto_detalle = ud.cod_proyecto_detalle\n" +
" left join seguridad.tipo_usuario as tu on pd.cod_tipo_usuario = tu.cod_tipo_usuario\n" +
" left join nuevo.personal as p on a.cod_trabajador = p.tmp_id\n" +
" left join nuevo.cargo as c on p.codcargo = c.codcargo\n" +
" WHERE 1 = 1\n" +
" and if("+proyecto+" = 0, true, pd.cod_proyecto = "+proyecto+")\n" +
" and if("+tipoUsuario+" = 0, true, pd.cod_proyecto_detalle = "+tipoUsuario+")\n" +
" " + estado + "\n" +
" and if("+estadoPersonal+" = 2, true, p.retirado = "+estadoPersonal+")\n" +
(isNumber ? " and p.numero_documento = "+personal+" \n" : " and a.usu like '%"+personal+"%' \n" )+
" and if('"+cargo+"' = '', true, c.descargo = '"+cargo+"')\n" +
" GROUP BY a.cod_usuario, a.cod_trabajador, a.usu, a.est)\n" +
"select cod_usuario, cod_trabajador, usu, est,tmp_id,retirado\n" +
"from tablaOrdenada\n" +
"ORDER BY usu limit "+vlength+" offset "+vstart+";";
con = MySQLDAOFactory.getConnectionSQL(base);
pst = con.prepareStatement(query);
......@@ -71,6 +68,8 @@ public class UsuarioMYSQLDAO implements UsuarioDAO {
obj.put("codigoTrabajador", rs.getString(2));
obj.put("usuario", rs.getString(3));
obj.put("estadoUsuario", rs.getInt(4));
obj.put("tmp_id", rs.getInt(5));
obj.put("retirado", rs.getInt(6));
lista.put(obj);
conta++;
}
......@@ -93,29 +92,27 @@ public class UsuarioMYSQLDAO implements UsuarioDAO {
String query = "";
String busqueda = "";
try {
switch (datos.getString("tipo")) {
case "1":
busqueda = " and a.usu like '%" + datos.getString("filtro") + "%' ";
break;
case "2":
busqueda = " and pd.cod_proyecto = " + datos.getString("filtro") + " ";
break;
case "3":
busqueda = " and ud.cod_proyecto_detalle = " + datos.getString("filtro") + " ";
break;
default:
busqueda = "";
break;
}
if (!datos.getBoolean("estado")) {
busqueda += " and a.est = 1 ";
} else {
busqueda += " and a.est = 0 ";
}
query = " SELECT COUNT(*) as cant FROM usuario AS a "
+ " LEFT JOIN usuario_detalle AS ud ON ud.cod_usuario = a.cod_usuario "
+ " LEFT JOIN proyecto_detalle AS pd ON pd.cod_proyecto_detalle = ud.cod_proyecto_detalle "
+ " WHERE 1 = 1 " + busqueda + " "
String estado = !datos.getBoolean("estado") ? " and a.est = 1 " : " and a.est = 0 ";
int proyecto = datos.isNull("proyecto") ? 0 : datos.getInt("proyecto");
int tipoUsuario = datos.isNull("tipoUsuario") ? 0 : datos.getInt("tipoUsuario");
int estadoPersonal = datos.isNull("estadoPersonal") ? 2 : datos.getInt("estadoPersonal") == 0 ? 2 : datos.getInt("estadoPersonal") == 1 ? 0 : 1;
String personal = datos.isNull("trabajador") ? "" : datos.getString("trabajador");
String cargo = datos.isNull("cargo") ? "" : datos.getString("cargo");
boolean isNumber = personal.matches("[0-9]+");
query = " SELECT COUNT(*) as cant FROM usuario AS a " +
" LEFT JOIN usuario_detalle AS ud ON ud.cod_usuario = a.cod_usuario " +
" LEFT JOIN proyecto_detalle AS pd ON pd.cod_proyecto_detalle = ud.cod_proyecto_detalle " +
" left join seguridad.tipo_usuario as tu on pd.cod_tipo_usuario = tu.cod_tipo_usuario\n" +
" left join nuevo.personal as p on a.cod_trabajador = p.tmp_id\n" +
" left join nuevo.cargo as c on p.codcargo = c.codcargo\n" +
" WHERE 1 = 1\n" +
" and if(" + proyecto + " = 0, true, pd.cod_proyecto = " + proyecto + ")\n" +
" and if(" + tipoUsuario + " = 0, true, pd.cod_proyecto_detalle = " + tipoUsuario + ")\n" +
" " + estado + "\n" +
" and if(" + estadoPersonal + " = 2, true, p.retirado = " + estadoPersonal + ")\n" +
" and if('"+cargo+"' = '', true, c.descargo = '"+cargo+"')\n" +
(isNumber ? " and p.numero_documento = " + personal + " \n" : " and a.usu like '%" + personal + "%' \n")
+ " GROUP BY a.cod_usuario ";
con = MySQLDAOFactory.getConnectionSQL(base);
pst = con.prepareStatement(query);
......@@ -281,7 +278,7 @@ public class UsuarioMYSQLDAO implements UsuarioDAO {
}
@Override
public JSONObject listarUsuarioDetalle(String filtro, int vstart, int vlength, String draw) throws Exception {
public JSONObject listarUsuarioDetalle(JSONObject json, int vstart, int vlength, String draw) throws Exception {
String base = "security";
Connection con = null;
PreparedStatement pst = null;
......@@ -290,6 +287,7 @@ public class UsuarioMYSQLDAO implements UsuarioDAO {
ResultSet rs = null;
String query = "";
int conta = vstart;
int filtro = json.isNull("filtro") ? 0 : json.getInt("filtro");
try {
query = " select ud.cod_usuario_detalle, ud.est, p.nom, tu.nom from usuario_detalle as ud "
+ " inner join proyecto_detalle as pd "
......@@ -298,7 +296,7 @@ public class UsuarioMYSQLDAO implements UsuarioDAO {
+ " on p.cod_proyecto = pd.cod_proyecto "
+ " inner join tipo_usuario as tu "
+ " on tu.cod_tipo_usuario = pd.cod_tipo_usuario "
+ " where ud.cod_usuario = " + filtro + "";
+ " where ud.cod_usuario = " + filtro + ";";
con = MySQLDAOFactory.getConnectionSQL(base);
pst = con.prepareStatement(query);
rs = pst.executeQuery();
......
......@@ -99,7 +99,7 @@ public class UsuarioService {
return rs;
}
public JSONObject listarUsuarioDetalle(String filtro, int vstart, int vlength, String draw) {
public JSONObject listarUsuarioDetalle(JSONObject filtro, int vstart, int vlength, String draw) {
JSONObject rs = null;
try {
rs = dao.listarUsuarioDetalle(filtro, vstart, vlength, draw);
......
......@@ -104,7 +104,11 @@ public class MantenimientoMenuServlet extends HttpServlet {
int tipo = Integer.parseInt(request.getParameter("tipo"));
int proyecto = Integer.parseInt(request.getParameter("proyecto"));
String draw = request.getParameter("draw");
int listarPermisos = Integer.parseInt(request.getParameter("listarPermisos"));
System.out.println(request.getParameter("listarPermisos"));
int listarPermisos = 0;
if(request.getParameter("listarPermisos") != null){
listarPermisos = Integer.parseInt(request.getParameter("listarPermisos"));
}
JSONObject rs = new JSONObject();
JSONArray lista = new JSONArray();
JSONArray listaTitulo = srv.listarTituloCompleto(proyecto_detalle, proyecto, tipo);
......
......@@ -133,6 +133,20 @@ public class UsuarioServlet extends HttpServlet {
objeto.put("nombreCargo", prs.getString("nom_car"));
objeto.put("nombreUsuario", prs.getString("nom_per") + " " + prs.getString("ape_pat_per") + " " + prs.getString("ape_mat_per"));
objeto.put("nombreSede", prs.getString("nom_sed"));
objeto.put("tmp_id", obj.getInt("tmp_id"));
objeto.put("retirado", obj.getInt("retirado"));
lista.put(objeto);
}else{
objeto.put("codigoUsuario", obj.getInt("codigoUsuario"));
objeto.put("numeral", obj.getInt("numeral"));
objeto.put("usuario", obj.getString("usuario"));
objeto.put("estadoUsuario", obj.getInt("estadoUsuario"));
objeto.put("nombreArea", "");
objeto.put("nombreCargo", "");
objeto.put("nombreUsuario", "");
objeto.put("nombreSede", "");
objeto.put("tmp_id", obj.getInt("tmp_id"));
objeto.put("retirado", obj.getInt("retirado"));
lista.put(objeto);
}
}
......@@ -238,12 +252,13 @@ public class UsuarioServlet extends HttpServlet {
response.setContentType("application/json");
PrintWriter out = response.getWriter();
UsuarioService srv = new UsuarioService();
String filtro = request.getParameter("filtro");
String json = request.getParameter("json");
JSONObject obj = new JSONObject(json);
String draw = request.getParameter("draw");
int vstart = Integer.parseInt(request.getParameter("start"));
int vlength = Integer.parseInt(request.getParameter("length"));
JSONObject json = srv.listarUsuarioDetalle(filtro, vstart, vlength, draw);
out.println(json);
JSONObject resp = srv.listarUsuarioDetalle(obj, vstart, vlength, draw);
out.println(resp);
}
private void eliminarUsuarioDetalle(HttpServletRequest request, HttpServletResponse response) throws IOException {
......
......@@ -90,7 +90,7 @@ let tipo_usuario_nombre = "";
"infoEmpty": "    Mostrando 0 de 0 registros",
"search": "Filtrar:",
"loadingRecords": "Cargando...",
"processing": '<span style="width:100%;"><img src="https://upload.wikimedia.org/wikipedia/commons/7/7a/Ajax_loader_metal_512.gif?20180219130538"></span>',
"processing": '<span style="width:2rem;height: 2rem"><img src="https://upload.wikimedia.org/wikipedia/commons/7/7a/Ajax_loader_metal_512.gif?20180219130538"></span>',
"paginate": {
"first": "First",
"last": "Last",
......@@ -493,7 +493,7 @@ let tipo_usuario_nombre = "";
let print = "";
var lista = data.data;
lista.forEach(v => {
print += '<option value="' + v.codAccion +'">'+v.nombreAccion+'</option>';
print += '<option value="' + v.codAccion +'">'+v.codAccion+' - '+v.nombreAccion+'</option>';
});
$("#cboListadoAcciones").html(print);
$("#cboListadoAcciones").editableSelect();
......@@ -1742,7 +1742,7 @@ function crearAcciones(vista, jerarquia,accion, nom_accion){
"infoEmpty": "&nbsp;&nbsp;&nbsp; Mostrando 0 de 0 registros",
"search": "Filtrar:",
"loadingRecords": "Cargando...",
"processing": '<span style="width:100%;"><img src="https://upload.wikimedia.org/wikipedia/commons/7/7a/Ajax_loader_metal_512.gif?20180219130538"></span>',
"processing": '<span style="width:2rem;height: 2rem"><img src="https://upload.wikimedia.org/wikipedia/commons/7/7a/Ajax_loader_metal_512.gif?20180219130538"></span>',
"scrollY": false,
"paginate": {
"first": "First",
......
......@@ -29,7 +29,7 @@
"infoEmpty": "&nbsp;&nbsp;&nbsp; Mostrando 0 de 0 registros",
"search": "Filtrar:",
"loadingRecords": "Cargando...",
"processing": '<span style="width:100%;"><img src="https://upload.wikimedia.org/wikipedia/commons/7/7a/Ajax_loader_metal_512.gif?20180219130538"></span>',
"processing": '<span style="width:2rem;height: 2rem"><img src="https://upload.wikimedia.org/wikipedia/commons/7/7a/Ajax_loader_metal_512.gif?20180219130538"></span>',
"scrollY": false,
"paginate": {
"first": "First",
......@@ -683,7 +683,7 @@
"infoEmpty": "&nbsp;&nbsp;&nbsp; Mostrando 0 de 0 registros",
"search": "Filtrar:",
"loadingRecords": "Cargando...",
"processing": '<span style="width:100%;"><img src="https://upload.wikimedia.org/wikipedia/commons/7/7a/Ajax_loader_metal_512.gif?20180219130538"></span>',
"processing": '<span style="width:2rem;height: 2rem"><img src="https://upload.wikimedia.org/wikipedia/commons/7/7a/Ajax_loader_metal_512.gif?20180219130538"></span>',
"scrollY": false,
"paginate": {
"first": "First",
......
......@@ -61,7 +61,7 @@
"infoEmpty": "&nbsp;&nbsp;&nbsp; Mostrando 0 de 0 registros",
"search": "Filtrar:",
"loadingRecords": "Cargando...",
"processing": '<span style="width:100%;"><img src="https://upload.wikimedia.org/wikipedia/commons/7/7a/Ajax_loader_metal_512.gif?20180219130538"></span>',
"processing": '<span style="width:2rem;height: 2rem"><img src="https://upload.wikimedia.org/wikipedia/commons/7/7a/Ajax_loader_metal_512.gif?20180219130538"></span>',
"scrollY": false,
"paginate": {
"first": "First",
......@@ -260,7 +260,7 @@
"infoEmpty": "&nbsp;&nbsp;&nbsp; Mostrando 0 de 0 registros",
"search": "Filtrar:",
"loadingRecords": "Cargando...",
"processing": '<span style="width:100%;"><img src="https://upload.wikimedia.org/wikipedia/commons/7/7a/Ajax_loader_metal_512.gif?20180219130538"></span>',
"processing": '<span style="width:2rem;height: 2rem"><img src="https://upload.wikimedia.org/wikipedia/commons/7/7a/Ajax_loader_metal_512.gif?20180219130538"></span>',
"scrollY": false,
"paginate": {
"first": "First",
......@@ -924,7 +924,7 @@
let print = "";
var lista = data.data;
lista.forEach(v => {
print += '<option value="' + v.codAccion +'">'+v.nombreAccion+'</option>';
print += '<option value="' + v.codAccion +'">'+v.codAccion+' - '+v.nombreAccion+'</option>';
});
$("#cboListadoAcciones").html(print);
$("#cboListadoAcciones").editableSelect();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment