Commit f5616336 by willgonzz

Filtro de busqueda para convocatorias

parent fd8a70fe
...@@ -2,6 +2,7 @@ package com.roshka.DTO; ...@@ -2,6 +2,7 @@ package com.roshka.DTO;
import java.util.List; import java.util.List;
import com.roshka.modelo.ConvocatoriaCargo;
import com.roshka.modelo.Disponibilidad; import com.roshka.modelo.Disponibilidad;
import com.roshka.modelo.EstadoPostulante; import com.roshka.modelo.EstadoPostulante;
import com.roshka.modelo.PostulanteTecnologia; import com.roshka.modelo.PostulanteTecnologia;
...@@ -15,8 +16,10 @@ public class PostulanteListaDTO { ...@@ -15,8 +16,10 @@ public class PostulanteListaDTO {
private Long experienciaMeses; private Long experienciaMeses;
private List<PostulanteTecnologia> tecnologias; private List<PostulanteTecnologia> tecnologias;
private EstadoPostulante estado; private EstadoPostulante estado;
private List<ConvocatoriaCargo> convocatoria;
public PostulanteListaDTO(Long id, String nombre, String apellido, Disponibilidad disponibilidad, public PostulanteListaDTO(Long id, String nombre, String apellido, Disponibilidad disponibilidad,
Long nivelIngles, Long experienciaMeses, List<PostulanteTecnologia> tecnologias,EstadoPostulante estado) { Long nivelIngles, Long experienciaMeses, List<PostulanteTecnologia> tecnologias,EstadoPostulante estado,List<ConvocatoriaCargo> convocatoria) {
this.id = id; this.id = id;
this.nombre = nombre; this.nombre = nombre;
this.apellido = apellido; this.apellido = apellido;
...@@ -25,6 +28,7 @@ public class PostulanteListaDTO { ...@@ -25,6 +28,7 @@ public class PostulanteListaDTO {
this.experienciaMeses = experienciaMeses; this.experienciaMeses = experienciaMeses;
this.tecnologias = tecnologias; this.tecnologias = tecnologias;
this.estado=estado; this.estado=estado;
this.convocatoria=convocatoria;
} }
public Long getId() { public Long getId() {
return id; return id;
...@@ -74,6 +78,15 @@ public class PostulanteListaDTO { ...@@ -74,6 +78,15 @@ public class PostulanteListaDTO {
public void setEstado(EstadoPostulante estado){ public void setEstado(EstadoPostulante estado){
this.estado=estado; this.estado=estado;
} }
public List<ConvocatoriaCargo> getConvocatoria() {
return this.convocatoria;
}
public void setConvocatoria(List<ConvocatoriaCargo> convocatoria) {
this.convocatoria = convocatoria;
}
} }
...@@ -99,6 +99,7 @@ public class PostulanteController { ...@@ -99,6 +99,7 @@ public class PostulanteController {
@RequestParam(required = false)Long instId, @RequestParam(required = false)Long instId,
@RequestParam(required = false)Long expInMonths, @RequestParam(required = false)Long expInMonths,
@RequestParam(required = false)Long cargoId, @RequestParam(required = false)Long cargoId,
@RequestParam(required = false)Long convId,
@RequestParam(defaultValue = "0")Integer nroPagina @RequestParam(defaultValue = "0")Integer nroPagina
) { ) {
final Integer CANTIDAD_POR_PAGINA = 5; final Integer CANTIDAD_POR_PAGINA = 5;
...@@ -107,7 +108,8 @@ public class PostulanteController { ...@@ -107,7 +108,8 @@ public class PostulanteController {
model.addAttribute("disponibilidades", Disponibilidad.values()); model.addAttribute("disponibilidades", Disponibilidad.values());
model.addAttribute("institucionesEducativas", institucionRepository.findAll()); model.addAttribute("institucionesEducativas", institucionRepository.findAll());
model.addAttribute("estadoP", EstadoPostulante.values()); model.addAttribute("estadoP", EstadoPostulante.values());
Page<Postulante> 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<Postulante> 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<Postulante> postulantes = postulantesPag.getContent(); List<Postulante> postulantes = postulantesPag.getContent();
List<PostulanteListaDTO> postulantesDTO = new ArrayList<>(); List<PostulanteListaDTO> postulantesDTO = new ArrayList<>();
...@@ -119,7 +121,7 @@ public class PostulanteController { ...@@ -119,7 +121,7 @@ public class PostulanteController {
expTotal += Helper.getMonthsDifference(experiencia.getFechaDesde(), experiencia.getFechaHasta()); expTotal += Helper.getMonthsDifference(experiencia.getFechaDesde(), experiencia.getFechaHasta());
} }
if(expInMonths != null && expInMonths > expTotal) continue; 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()); model.addAttribute("pages", postulantesPag.getTotalPages());
......
...@@ -11,6 +11,7 @@ import org.springframework.data.jpa.repository.JpaRepository; ...@@ -11,6 +11,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import com.roshka.modelo.ConvocatoriaCargo;
import com.roshka.modelo.Disponibilidad; import com.roshka.modelo.Disponibilidad;
import com.roshka.modelo.EstadoPostulante; import com.roshka.modelo.EstadoPostulante;
import com.roshka.modelo.Postulante; import com.roshka.modelo.Postulante;
...@@ -60,8 +61,9 @@ public interface PostulanteRepository extends JpaRepository<Postulante,Long> { ...@@ -60,8 +61,9 @@ public interface PostulanteRepository extends JpaRepository<Postulante,Long> {
"and (pt.tecnologia.id = ?5 or ?5 is null) "+ "and (pt.tecnologia.id = ?5 or ?5 is null) "+
" and (e.institucion.id = ?6 or ?6 is null ) "+ " and (e.institucion.id = ?6 or ?6 is null ) "+
" and (conv.cargoId = ?7 or ?7 is null ) "+ " and (conv.cargoId = ?7 or ?7 is null ) "+
"and (p.estadoPostulante = ?8 or ?8 is null) " ) "and (p.estadoPostulante = ?8 or ?8 is null) "+
public Page<Postulante> postulantesMultiFiltro(TypedParameterValue nombre, Disponibilidad disponibilidad, Long nivelInges, Long nivel, Long tecnoId, Long instId,Long cargoId, Pageable pageable, EstadoPostulante estado); " and (conv.id=?9 or ?9 is null ) ")
public Page<Postulante> postulantesMultiFiltro(TypedParameterValue nombre, Disponibilidad disponibilidad, Long nivelInges, Long nivel, Long tecnoId, Long instId,Long cargoId, Pageable pageable, EstadoPostulante estado, Long convo);
@Transactional @Transactional
@Modifying @Modifying
......
...@@ -73,6 +73,13 @@ ...@@ -73,6 +73,13 @@
<option value="36">Mayor a 3 años</option> <option value="36">Mayor a 3 años</option>
<option value="60">Mayor a 5 años</option> <option value="60">Mayor a 5 años</option>
</select> </select>
<label for="convId">convocatoria</label>
<select name="convId" id="convId">
<option value="">Seleccione una opcion</option>
<c:forEach items="${convocatoriaC}" var="convo">
<option value="${convo.id}" ${param.convId == convo.id ? "selected" : ""}>${convo.getCargo().getNombre()}</option>
</c:forEach>
</select>
</form> </form>
</div> </div>
......
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