diff --git a/curriculumsearch/src/main/java/com/roshka/DTO/PostulanteListaDTO.java b/curriculumsearch/src/main/java/com/roshka/DTO/PostulanteListaDTO.java index f8613c7..bfc63e9 100644 --- a/curriculumsearch/src/main/java/com/roshka/DTO/PostulanteListaDTO.java +++ b/curriculumsearch/src/main/java/com/roshka/DTO/PostulanteListaDTO.java @@ -2,6 +2,7 @@ package com.roshka.DTO; import java.util.List; +import com.roshka.modelo.ConvocatoriaCargo; import com.roshka.modelo.Disponibilidad; import com.roshka.modelo.EstadoPostulante; import com.roshka.modelo.PostulanteTecnologia; @@ -15,8 +16,10 @@ public class PostulanteListaDTO { private Long experienciaMeses; private List tecnologias; private EstadoPostulante estado; + private List convocatoria; + public PostulanteListaDTO(Long id, String nombre, String apellido, Disponibilidad disponibilidad, - Long nivelIngles, Long experienciaMeses, List tecnologias,EstadoPostulante estado) { + Long nivelIngles, Long experienciaMeses, List tecnologias,EstadoPostulante estado,List convocatoria) { this.id = id; this.nombre = nombre; this.apellido = apellido; @@ -25,6 +28,7 @@ public class PostulanteListaDTO { this.experienciaMeses = experienciaMeses; this.tecnologias = tecnologias; this.estado=estado; + this.convocatoria=convocatoria; } public Long getId() { return id; @@ -74,6 +78,15 @@ public class PostulanteListaDTO { public void setEstado(EstadoPostulante estado){ this.estado=estado; } + + public List getConvocatoria() { + return this.convocatoria; + } + + public void setConvocatoria(List convocatoria) { + this.convocatoria = convocatoria; + } + } diff --git a/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java b/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java index 8182d80..283ab2a 100644 --- a/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java +++ b/curriculumsearch/src/main/java/com/roshka/controller/PostulanteController.java @@ -99,6 +99,7 @@ public class PostulanteController { @RequestParam(required = false)Long instId, @RequestParam(required = false)Long expInMonths, @RequestParam(required = false)Long cargoId, + @RequestParam(required = false)Long convId, @RequestParam(defaultValue = "0")Integer nroPagina ) { final Integer CANTIDAD_POR_PAGINA = 5; @@ -107,7 +108,8 @@ public class PostulanteController { model.addAttribute("disponibilidades", Disponibilidad.values()); model.addAttribute("institucionesEducativas", institucionRepository.findAll()); model.addAttribute("estadoP", EstadoPostulante.values()); - Page postulantesPag = post.postulantesMultiFiltro(nombre == null || nombre.trim().isEmpty() ? new TypedParameterValue(StringType.INSTANCE,null) : new TypedParameterValue(StringType.INSTANCE,"%"+nombre+"%"),dispo, lvlEng, lvlTec, tecId, instId,cargoId,page,estado); + model.addAttribute("convocatoriaC", cargoRepo.findAll()); + Page postulantesPag = post.postulantesMultiFiltro(nombre == null || nombre.trim().isEmpty() ? new TypedParameterValue(StringType.INSTANCE,null) : new TypedParameterValue(StringType.INSTANCE,"%"+nombre+"%"),dispo, lvlEng, lvlTec, tecId, instId,cargoId,page,estado,convId); List postulantes = postulantesPag.getContent(); List postulantesDTO = new ArrayList<>(); @@ -119,7 +121,7 @@ public class PostulanteController { expTotal += Helper.getMonthsDifference(experiencia.getFechaDesde(), experiencia.getFechaHasta()); } if(expInMonths != null && expInMonths > expTotal) continue; - postulantesDTO.add(new PostulanteListaDTO(postulante.getId(), postulante.getNombre(), postulante.getApellido(), postulante.getDisponibilidad(), postulante.getNivelIngles(), expTotal, postulante.getTecnologias(),postulante.getEstadoPostulante())); + postulantesDTO.add(new PostulanteListaDTO(postulante.getId(), postulante.getNombre(), postulante.getApellido(), postulante.getDisponibilidad(), postulante.getNivelIngles(), expTotal, postulante.getTecnologias(),postulante.getEstadoPostulante(),postulante.getPostulaciones())); } model.addAttribute("pages", postulantesPag.getTotalPages()); diff --git a/curriculumsearch/src/main/java/com/roshka/repositorio/PostulanteRepository.java b/curriculumsearch/src/main/java/com/roshka/repositorio/PostulanteRepository.java index 539d072..d7fb166 100644 --- a/curriculumsearch/src/main/java/com/roshka/repositorio/PostulanteRepository.java +++ b/curriculumsearch/src/main/java/com/roshka/repositorio/PostulanteRepository.java @@ -11,6 +11,7 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; +import com.roshka.modelo.ConvocatoriaCargo; import com.roshka.modelo.Disponibilidad; import com.roshka.modelo.EstadoPostulante; import com.roshka.modelo.Postulante; @@ -60,8 +61,9 @@ public interface PostulanteRepository extends JpaRepository { "and (pt.tecnologia.id = ?5 or ?5 is null) "+ " and (e.institucion.id = ?6 or ?6 is null ) "+ " and (conv.cargoId = ?7 or ?7 is null ) "+ - "and (p.estadoPostulante = ?8 or ?8 is null) " ) - public Page postulantesMultiFiltro(TypedParameterValue nombre, Disponibilidad disponibilidad, Long nivelInges, Long nivel, Long tecnoId, Long instId,Long cargoId, Pageable pageable, EstadoPostulante estado); + "and (p.estadoPostulante = ?8 or ?8 is null) "+ + " and (conv.id=?9 or ?9 is null ) ") + public Page postulantesMultiFiltro(TypedParameterValue nombre, Disponibilidad disponibilidad, Long nivelInges, Long nivel, Long tecnoId, Long instId,Long cargoId, Pageable pageable, EstadoPostulante estado, Long convo); @Transactional @Modifying diff --git a/curriculumsearch/src/main/webapp/jsp/postulantes.jsp b/curriculumsearch/src/main/webapp/jsp/postulantes.jsp index 2920166..bbbedb1 100644 --- a/curriculumsearch/src/main/webapp/jsp/postulantes.jsp +++ b/curriculumsearch/src/main/webapp/jsp/postulantes.jsp @@ -73,6 +73,13 @@ + +