Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.juicioenlinea.application.servlets.particular; import com.juicioenlinea.application.daos.DemandaDAO; import com.juicioenlinea.application.daos.DocumentoDAO; import com.juicioenlinea.application.daos.MagistradoDAO; import com.juicioenlinea.application.daos.NotificacionDAO; import com.juicioenlinea.application.daos.ParticularDAO; import com.juicioenlinea.application.daos.TiempoDAO; import com.juicioenlinea.application.entities.Demanda; import com.juicioenlinea.application.entities.Documento; import com.juicioenlinea.application.entities.Magistrado; import com.juicioenlinea.application.entities.Notificacion; import com.juicioenlinea.application.entities.Particular; import com.juicioenlinea.application.entities.Tiempo; import com.juicioenlinea.application.properties.Messages; import com.juicioenlinea.application.mail.Mail; import com.juicioenlinea.application.tools.ToolBox; import com.juicioenlinea.application.tools.UploadFile; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import java.util.List; import java.util.Objects; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.fileupload.FileItem; /** * * @author eddy_ */ @WebServlet(name = "DemandaServlet", urlPatterns = { "/aplicacion/particular/Demanda" }) public class DemandaServlet extends HttpServlet { /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8"); request.setCharacterEncoding("UTF-8"); String action = request.getParameter("action"); if (action == null) { response.sendRedirect("indexParticular.jsp"); } else { switch (action) { case "create": create(request, response); break; case "create2": create2(request, response); break; case "read": read(request, response); break; case "readNumero": readNumero(request, response); break; case "update": update(request, response); break; case "demandasHechas": demandasHechas(request, response); break; case "demandasRecibidas": demandasRecibidas(request, response); break; case "agregarDocumentos": agregarDocumentos(request, response); break; case "agregarDocumentosD": agregarDocumentosD(request, response); break; case "readRecibida": readRecibida(request, response); break; case "apelarDemanda": apelarDemanda(request, response); break; case "form": form(request, response); break; default: response.sendRedirect("indexParticular.jsp"); break; } } } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> /** * Handles the HTTP <code>GET</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Handles the HTTP <code>POST</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// </editor-fold> private void form(HttpServletRequest request, HttpServletResponse response) { try { request.getRequestDispatcher("crearDemanda.jsp").forward(request, response); } catch (ServletException | IOException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } } private void create2(HttpServletRequest request, HttpServletResponse response) throws IOException { HttpSession session = request.getSession(false); // Inputs de formulario UploadFile uf = null; uf = new UploadFile(request); Particular demandante = (Particular) session.getAttribute("usuario"); //demandante = new ParticularDAO().read(demandante.getIdParticular()); String numeroDemanda = ToolBox.createNumeroDemanda(); String nombre = uf.getFormField("nombre"); String descripcion = uf.getFormField("descripcion"); int estado = 1; // Validacin de campos if (numeroDemanda == null || numeroDemanda.equals("") || nombre == null || nombre.equals("") || descripcion == null || descripcion.equals("") || uf.getFiles().size() < 1) { try { request.setAttribute("messages", new Messages().getClientMessage("error", 1)); request.getRequestDispatcher("Demanda?action=form").forward(request, response); } catch (ServletException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } } else { // Tiempo Date fechaCreacion = ToolBox.dateFormat(new Date()); // Obtenemos 3 magistrados menos ocupados MagistradoDAO madao = new MagistradoDAO(); Set<Magistrado> magistrados = madao.get3Magistrado(); if (magistrados == null || magistrados.size() < 3) { magistrados = madao.readAll3(); } // Objetos de TIEMPO Tiempo tiempo = new Tiempo(); tiempo.setFechaCreacion(fechaCreacion); TiempoDAO tidao = new TiempoDAO(); tidao.create(tiempo); // Objeto DEMANDA Demanda demanda = new Demanda(); demanda.setParticularByIdParticularDemandante(demandante); demanda.setTiempo(tiempo); demanda.setNumeroDemanda(numeroDemanda); demanda.setNombreDemanda(nombre); demanda.setDescripcion(descripcion); demanda.setEstado(estado); demanda.setMagistrados(magistrados); // Asignamos demanda a Msgistrados // for (Magistrado mag : magistrados) { // MagistradoDAO madao2 = new MagistradoDAO(); // // mag.setDemandas((Set<Demanda>) demanda); // // madao2.update(mag); // } // Guardamos demanda DemandaDAO dedao = new DemandaDAO(); if (!dedao.create(demanda)) { try { request.setAttribute("messages", new Messages().getClientMessage("error", 4)); request.getRequestDispatcher("Demanda?action=form").forward(request, response); } catch (ServletException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } } else { // Guardamos los documentos String sala = "s1"; //uf.saveAllFiles(this.getServletContext().getRealPath(""), sala, numeroDemanda); for (FileItem fi : uf.getFiles()) { // Documentos Documento documento = new Documento(); documento.setDemanda(demanda); documento.setParticular(demandante); documento.setFechaCarga(ToolBox.dateFormat(new Date())); documento.setRuta( uf.saveFile(fi, this.getServletContext().getRealPath(""), sala, numeroDemanda)); documento.setEstado(1); documento.setNombre(fi.getName()); DocumentoDAO dodao = new DocumentoDAO(); dodao.create(documento); } Mail mail = new Mail(demandante.getCatalogousuarios().getCorreo(), "Demanda creada", "Nmero de demanda: " + numeroDemanda); //Mail mail = new Mail("eddy_wallace@hotmail.com", "Demanda creada", "Nmero de demanda: " + numeroDemanda); //mail.sendMail(); try { request.setAttribute("messages", new Messages().getClientMessage("ok", 5)); request.getRequestDispatcher("Demanda?action=form").forward(request, response); } catch (ServletException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } } } } private void demandasHechas(HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(false); String page = request.getParameter("page"); if (page == null || page.equals("")) { page = "1"; } int rows = 20; Particular demandante = (Particular) session.getAttribute("usuario"); demandante = new ParticularDAO().read(demandante.getIdParticular()); DemandaDAO dedao = new DemandaDAO(); List<Demanda> demandas = dedao.readAllHechasPage(demandante.getIdParticular(), Integer.parseInt(page), rows); if (demandas.size() < 1 || demandas == null) { request.setAttribute("demandasHechas", null); request.setAttribute("currentPage", null); } else { request.setAttribute("demandasHechas", demandas); request.setAttribute("currentPage", page); request.setAttribute("lastPage", (int) Math.ceil((double) dedao.countDemandas(demandante.getIdParticular()) / rows)); } try { request.getRequestDispatcher("listaDemandasHechas.jsp").forward(request, response); } catch (ServletException | IOException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } } private void demandasRecibidas(HttpServletRequest request, HttpServletResponse response) { //Integer idParticularDemandante = 1; // Este Id se obtiene de la sesin que est activa HttpSession session = request.getSession(false); Particular demandante = (Particular) session.getAttribute("usuario"); demandante = new ParticularDAO().read(demandante.getIdParticular()); DemandaDAO dedao = new DemandaDAO(); List<Demanda> demandas = dedao.readAllRecibidas(demandante.getIdParticular()); if (demandas.size() < 1) { request.setAttribute("demandasRecibidas", null); } else { request.setAttribute("demandasRecibidas", demandas); } try { request.getRequestDispatcher("listaDemandasRecibidas.jsp").forward(request, response); } catch (ServletException | IOException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } } private void read(HttpServletRequest request, HttpServletResponse response) { //Integer idParticularDemandante = 1; // Este Id se obtiene de la sesin que est activa HttpSession session = request.getSession(false); Particular demandante = (Particular) session.getAttribute("usuario"); demandante = new ParticularDAO().read(demandante.getIdParticular()); String tipo = request.getParameter("tipo"); Integer idDemanda = Integer.parseInt(request.getParameter("idDemanda")); DemandaDAO dedao = new DemandaDAO(); Demanda demanda = dedao.read(idDemanda); DocumentoDAO dodao = new DocumentoDAO(); List<Documento> documentos = dodao.read(idDemanda, demandante.getIdParticular()); NotificacionDAO nodao = new NotificacionDAO(); request.setAttribute("demanda", demanda); request.setAttribute("documentos", documentos); request.setAttribute("magistrados", demanda.getMagistrados()); request.setAttribute("estado", demanda.getEstado()); switch (tipo) { case "hecha": try { List<Notificacion> notasDemandante = nodao.readParticular( demanda.getParticularByIdParticularDemandante().getIdParticular(), idDemanda); request.setAttribute("notificaciones", notasDemandante); request.getRequestDispatcher("verDemandaHecha.jsp").forward(request, response); } catch (ServletException | IOException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } break; case "recibida": List<Documento> documentosD = dodao.read(idDemanda, demanda.getParticularByIdParticularDemandado().getIdParticular()); List<Notificacion> notasDemandado = nodao .readParticular(demanda.getParticularByIdParticularDemandado().getIdParticular(), idDemanda); request.setAttribute("notificaciones", notasDemandado); request.setAttribute("documentos", documentosD); try { request.getRequestDispatcher("verDemandaRecibida.jsp").forward(request, response); } catch (ServletException | IOException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } break; } } private void readNumero(HttpServletRequest request, HttpServletResponse response) { //Integer idParticularDemandante = 1; // Este Id se obtiene de la sesin que est activa HttpSession session = request.getSession(false); Particular demandante = (Particular) session.getAttribute("usuario"); demandante = new ParticularDAO().read(demandante.getIdParticular()); String tipo; String numeroDemanda = request.getParameter("numeroDemanda"); DemandaDAO dedao = new DemandaDAO(); Demanda demanda = dedao.readNumero(numeroDemanda); DocumentoDAO dodao = new DocumentoDAO(); List<Documento> documentos = dodao.read(demanda.getIdDemanda(), demandante.getIdParticular()); NotificacionDAO nodao = new NotificacionDAO(); request.setAttribute("demanda", demanda); request.setAttribute("documentos", documentos); request.setAttribute("magistrados", demanda.getMagistrados()); request.setAttribute("estado", demanda.getEstado()); if (Objects.equals(demandante.getIdParticular(), demanda.getParticularByIdParticularDemandante().getIdParticular())) { tipo = "hecha"; } else { tipo = "recibida"; } switch (tipo) { case "hecha": try { List<Notificacion> notasDemandante = nodao.readParticular( demanda.getParticularByIdParticularDemandante().getIdParticular(), demanda.getIdDemanda()); request.setAttribute("notificaciones", notasDemandante); request.getRequestDispatcher("verDemandaHecha.jsp").forward(request, response); } catch (ServletException | IOException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } break; case "recibida": List<Documento> documentosD = dodao.read(demanda.getIdDemanda(), demanda.getParticularByIdParticularDemandado().getIdParticular()); List<Notificacion> notasDemandado = nodao.readParticular( demanda.getParticularByIdParticularDemandado().getIdParticular(), demanda.getIdDemanda()); request.setAttribute("notificaciones", notasDemandado); request.setAttribute("documentos", documentosD); try { request.getRequestDispatcher("verDemandaRecibida.jsp").forward(request, response); } catch (ServletException | IOException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } break; } } private void agregarDocumentos(HttpServletRequest request, HttpServletResponse response) { //Integer idParticularDemandante = 1; // Este Id se obtiene de la sesin que est activa HttpSession session = request.getSession(false); Particular demandante = (Particular) session.getAttribute("usuario"); demandante = new ParticularDAO().read(demandante.getIdParticular()); UploadFile uf = new UploadFile(request); int idDemanda = Integer.parseInt(request.getParameter("idDemanda")); String descripcion = uf.getFormField("descripcion"); Particular particular = new ParticularDAO().read(demandante.getIdParticular()); String sala = "s1"; DemandaDAO dedao = new DemandaDAO(); Demanda demanda = dedao.read(idDemanda); demanda.setDescripcion(descripcion); demanda.setEstado(1); dedao.update(demanda); FileItem file = uf.getFile().get(0); if (!"".equals(file.getName())) { uf.getFiles().stream().forEach((fi) -> { try { // Documentos Documento documento = new Documento(); documento.setDemanda(demanda); documento.setParticular(particular); documento.setFechaCarga(ToolBox.dateFormat(new Date())); documento.setRuta(uf.saveFile(fi, this.getServletContext().getRealPath(""), sala, demanda.getNumeroDemanda())); documento.setEstado(1); documento.setNombre(fi.getName()); DocumentoDAO dodao = new DocumentoDAO(); dodao.create(documento); } catch (IOException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } }); } try { request.setAttribute("messages", new Messages().getClientMessage("ok", 1)); request.getRequestDispatcher("Demanda?action=form").forward(request, response); } catch (ServletException | IOException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } } private void agregarDocumentosD(HttpServletRequest request, HttpServletResponse response) { //Integer idParticularDemandante = 1; // Este Id se obtiene de la sesin que est activa HttpSession session = request.getSession(false); Particular demandado = (Particular) session.getAttribute("usuario"); demandado = new ParticularDAO().read(demandado.getIdParticular()); UploadFile uf = new UploadFile(request); int idDemanda = Integer.parseInt(request.getParameter("idDemanda")); Particular particular = new ParticularDAO().read(demandado.getIdParticular()); String sala = "s1"; DemandaDAO dedao = new DemandaDAO(); Demanda demanda = dedao.read(idDemanda); demanda.setEstado(6); dedao.update(demanda); FileItem file = uf.getFile().get(0); if (!"".equals(file.getName())) { uf.getFiles().stream().forEach((fi) -> { try { // Documentos Documento documento = new Documento(); documento.setDemanda(demanda); documento.setParticular(particular); documento.setFechaCarga(ToolBox.dateFormat(new Date())); documento.setRuta(uf.saveFile(fi, this.getServletContext().getRealPath(""), sala, demanda.getNumeroDemanda())); documento.setEstado(1); documento.setNombre(fi.getName()); DocumentoDAO dodao = new DocumentoDAO(); dodao.create(documento); } catch (IOException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } }); } try { request.setAttribute("messages", new Messages().getClientMessage("ok", 1)); request.getRequestDispatcher("Demanda?action=form").forward(request, response); } catch (ServletException | IOException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } } private void update(HttpServletRequest request, HttpServletResponse response) { String descripcion = request.getParameter("descripcion"); int idDemanda = Integer.parseInt(request.getParameter("idDemanda")); DemandaDAO dedao = new DemandaDAO(); Demanda demanda = dedao.read(idDemanda); demanda.setDescripcion(descripcion); dedao.update(demanda); try { request.setAttribute("messages", new Messages().getClientMessage("ok", 1)); request.getRequestDispatcher("Demanda?action=form").forward(request, response); } catch (ServletException | IOException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } } private void readRecibida(HttpServletRequest request, HttpServletResponse response) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } private void apelarDemanda(HttpServletRequest request, HttpServletResponse response) { int idDemanda = Integer.parseInt(request.getParameter("idDemanda")); String tipo = request.getParameter("tipo"); DemandaDAO dedao = new DemandaDAO(); Demanda demanda = dedao.read(idDemanda); demanda.setEstado(7); dedao.update(demanda); try { response.sendRedirect("Demanda?action=read&idDemanda=" + idDemanda + "&tipo=" + tipo); } catch (IOException ex) { Logger.getLogger(DemandaServlet.class.getName()).log(Level.SEVERE, null, ex); } } private void create(HttpServletRequest request, HttpServletResponse response) throws IOException { HttpSession session = request.getSession(false); Particular demandante = (Particular) session.getAttribute("usuario"); StringBuilder sb = new StringBuilder(); sb.append("<response>"); if (request.getContentLengthLong() > 104857600) { response.setStatus(HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE); sb.append("<message>"); sb.append(new Messages().getClientMessage("error", 7)); sb.append("</message>"); } else { // Campos formulario UploadFile uf = new UploadFile(request); String numeroDemanda = ToolBox.createNumeroDemanda(); String nombre = uf.getFormField("nombre"); String descripcion = uf.getFormField("descripcion"); int estado = 1; System.out.println("Archivos: " + uf.getFiles().size()); // Validamos datos if (numeroDemanda == null || numeroDemanda.equals("") || nombre == null || nombre.equals("") || descripcion == null || descripcion.equals("") || uf.getFiles().size() < 1) { response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); sb.append("<message>"); sb.append(new Messages().getClientMessage("error", 1)); sb.append("</message>"); } else { // Tiempo Date fechaCreacion = ToolBox.dateFormat(new Date()); // Obtenemos 3 magistrados con menos demandas asignadas MagistradoDAO madao = new MagistradoDAO(); Set<Magistrado> magistrados = madao.get3Magistrado(); if (magistrados == null || magistrados.size() < 3) { magistrados = madao.readAll3(); } // Objetos de TIEMPO Tiempo tiempo = new Tiempo(); tiempo.setFechaCreacion(fechaCreacion); TiempoDAO tidao = new TiempoDAO(); // Objeto de DEMANDA Demanda demanda = new Demanda(); demanda.setParticularByIdParticularDemandante(demandante); demanda.setTiempo(tiempo); demanda.setNumeroDemanda(numeroDemanda); demanda.setNombreDemanda(nombre); demanda.setDescripcion(descripcion); demanda.setEstado(estado); demanda.setMagistrados(magistrados); DemandaDAO dedao = new DemandaDAO(); if (!tidao.create(tiempo) || !dedao.create(demanda)) { response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); sb.append("<message>"); sb.append(new Messages().getClientMessage("error", 4)); sb.append("</message>"); } else { // Guardamos los documentos String sala = "s1"; String uri = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/" + this.getServletContext().getContextPath(); for (FileItem fi : uf.getFiles()) { // Documentos Documento documento = new Documento(); documento.setDemanda(demanda); documento.setParticular(demandante); documento.setFechaCarga(ToolBox.dateFormat(new Date())); documento.setRuta( uf.saveFile(fi, this.getServletContext().getRealPath(""), sala, numeroDemanda)); documento.setEstado(1); documento.setNombre(fi.getName()); DocumentoDAO dodao = new DocumentoDAO(); if (!dodao.create(documento)) { response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); sb.append("<message>"); sb.append(new Messages().getClientMessage("error", 7)); sb.append("</message>"); break; } } //Mail mail = new Mail(demandante.getCatalogousuarios().getCorreo(), "Demanda creada", "Nmero de demanda: " + numeroDemanda); Mail mail = new Mail("eddy_wallace@hotmail.com", "Demanda creada", "Nmero de demanda: " + numeroDemanda); if (!mail.sendMail()) { response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); sb.append("<message>"); sb.append(new Messages().getClientMessage("error", 8)); sb.append("</message>"); sb.append("<redirect>"); sb.append(uri).append("/aplicacion/particular/Demanda?action=demandasHechas"); sb.append("</redirect>"); } else { sb.append("<message>"); sb.append(new Messages().getClientMessage("ok", 5)); sb.append("</message>"); sb.append("<redirect>"); sb.append(uri).append("/aplicacion/particular/Demanda?action=demandasHechas"); sb.append("</redirect>"); } } } } sb.append("</response>"); PrintWriter pw = response.getWriter(); pw.write(sb.toString()); } }