package src; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import javax.ejb.EJB; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; 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 beans.AdministracionBeanRemote; import model.Alumno; import model.Asignatura; import model.Concepto; import model.Curso; import model.Tema; /** * Servlet implementation class CargarResultadosGeneralesConceptosServlet */ @WebServlet("/CargarResultadosGeneralesConceptosServlet") public class CargarResultadosGeneralesConceptosServlet extends HttpServlet { private static final long serialVersionUID = 1L; @PersistenceContext EntityManager em; @EJB AdministracionBeanRemote abr; /** * @see HttpServlet#HttpServlet() */ public CargarResultadosGeneralesConceptosServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); //int idTema = Integer.valueOf(request.getParameter("tema_id")); //Tema tema = em.find(Tema.class, idTema); String idAsignatura = request.getParameter("asignatura"); Asignatura asignatura = em.find(Asignatura.class, Integer.valueOf(idAsignatura)); Curso curso = asignatura.getCurso(); //Promedio General List alumnoList = em.createQuery("Select e from Alumno e where e.curso = :curso") .setParameter("curso", curso).getResultList(); List temaList = em.createQuery("Select e from Tema e where e.asignatura = :asignatura") .setParameter("asignatura", asignatura).getResultList(); request.setAttribute("alumnoList", alumnoList); System.out.println(alumnoList.toString()); HashMap promedioConceptos = new HashMap(); for(Alumno alumno : alumnoList) { for(Tema tema: temaList){ List conceptoList = em.createQuery("Select e from Concepto e where e.tema = :tema") .setParameter("tema", tema).getResultList(); for(Concepto concepto : conceptoList) { if (!promedioConceptos.containsKey(concepto.getNombre())) { promedioConceptos.put(concepto.getNombre(), Double.valueOf("0")); System.out.println("valor hash: " + promedioConceptos.get(concepto.getNombre().toString())); } //double valorActual = promedioConceptos.put(concepto.getNombre(), promedioConceptos.get(concepto.getNombre()) + Double.valueOf(abr.getValorNodoRed(concepto.getNombre(), asignatura.getIdAsignatura(), alumno.getIdAlumno()))); } } } Iterator keySetIterator = promedioConceptos.keySet().iterator(); while(keySetIterator.hasNext()){ String key = keySetIterator.next(); System.out.println("valor hash: " + promedioConceptos.get(key).toString()); promedioConceptos.put(key, promedioConceptos.get(key)/alumnoList.size()); } try { out.printf(""); out.printf(""); out.printf(""); out.printf(""); out.printf(""); out.printf(""); out.printf(""); out.printf(""); keySetIterator = promedioConceptos.keySet().iterator(); while(keySetIterator.hasNext()){ String key = keySetIterator.next(); //System.out.println(tema.getConceptoList().toString()); out.printf(""); out.printf(""); out.printf(""); out.printf(""); } out.printf(""); out.printf("
"); out.printf("Tema"); out.printf(""); out.printf("Promedio"); out.printf("
"); out.printf(key); out.printf(""); out.print(abr.aPorcentaje(Double.toString(promedioConceptos.get(key)))); out.printf("
"); } finally { out.close(); } //List conceptoList = abr.getConceptoList(idTema); System.out.println("prueba"); //System.out.println(conceptoList.toString()); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }