diff --git a/src/main/java/com/example/proyectofinal/controllers/AdminController.java b/src/main/java/com/example/proyectofinal/controllers/AdminController.java index 7fc7d17..1e96ae3 100644 --- a/src/main/java/com/example/proyectofinal/controllers/AdminController.java +++ b/src/main/java/com/example/proyectofinal/controllers/AdminController.java @@ -89,7 +89,7 @@ public class AdminController { model.addAttribute("usuario", new Usuario()); return "admin/usuario/update"; } - + //TODO add confirmation of if the user is a studen and if it is then cahnge the first email in alumno table @PostMapping("/admin/update_usuario") public String updateUser(@ModelAttribute Usuario usuario, Authentication authentication) { Collection authorities = authentication.getAuthorities(); diff --git a/src/main/java/com/example/proyectofinal/controllers/BuscadorController.java b/src/main/java/com/example/proyectofinal/controllers/BuscadorController.java index c70b4a9..2ab8ccd 100644 --- a/src/main/java/com/example/proyectofinal/controllers/BuscadorController.java +++ b/src/main/java/com/example/proyectofinal/controllers/BuscadorController.java @@ -172,7 +172,7 @@ public class BuscadorController { } } List itemsPage = Arrays.asList(5, 10, 15, 20, 25, 50); - Page page = null; + Page page; if(queryMultiWord.length>1){ page = sucursalService.getPageMultiWord(pageNum, size, sortField, sortDir, queryList, secondaryOption); diff --git a/src/main/java/com/example/proyectofinal/controllers/PdfController.java b/src/main/java/com/example/proyectofinal/controllers/PdfController.java new file mode 100644 index 0000000..3f7cbab --- /dev/null +++ b/src/main/java/com/example/proyectofinal/controllers/PdfController.java @@ -0,0 +1,119 @@ +package com.example.proyectofinal.controllers; + +import com.example.proyectofinal.models.empresas.*; +import com.example.proyectofinal.servicios.empresa.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +@Controller +public class PdfController { + @Autowired + private EmpresaService empresaService; + @Autowired + private AlumnoService alumnoService; + @Autowired + private CicloService cicloService; + @Autowired + private ContactosService contactosService; + @Autowired + private FamiliaService familiaService; + @Autowired + private OfertaService ofertaService; + @Autowired + private SectorService sectorService; + @Autowired + private SkillService skillService; + @Autowired + private SucursalService sucursalService; + + @GetMapping("/empresas_pdf/search/all") + public ResponseEntity> searchEmpresasPdf(@RequestParam String query, @RequestParam String secondaryOption) { + List empresas; + if(secondaryOption.equalsIgnoreCase("Todo")){ + empresas = empresaService.findAll(); + } else { + empresas = empresaService.searchForPdf(query,secondaryOption); + } + return ResponseEntity.ok(empresas); + } + + @GetMapping("/alumnos_pdf/search/all") + public ResponseEntity> searchAlumnosPdf(@RequestParam String query, @RequestParam String secondaryOption) { + List alumnos; + if(secondaryOption.equalsIgnoreCase("Todo")){ + alumnos = alumnoService.findAll(); + } else { + alumnos = alumnoService.searchForPdf(query,secondaryOption); + } + return ResponseEntity.ok(alumnos); + } + + @GetMapping("/ciclos_pdf/search/all") + public ResponseEntity> searchCiclosPdf(@RequestParam String query, @RequestParam String secondaryOption) { + List ciclos; + if(secondaryOption.equalsIgnoreCase("Todo")){ + ciclos = cicloService.findAll(); + } else { + ciclos = cicloService.searchForPdf(query,secondaryOption); + } + return ResponseEntity.ok(ciclos); + } + + @GetMapping("/contactos_pdf/search/all") + public ResponseEntity> searchContactosPdf(@RequestParam String query, @RequestParam String secondaryOption) { + List contactos; + if(secondaryOption.equalsIgnoreCase("Todo")){ + contactos = contactosService.findAll(); + } else { + contactos = contactosService.searchForPdf(query,secondaryOption); + } + return ResponseEntity.ok(contactos); + } + + @GetMapping("/familias_pdf/search/all") + public ResponseEntity> searchFamiliasPdf() { + List familias; + familias = familiaService.findAll(); + return ResponseEntity.ok(familias); + } + + @GetMapping("/ofertas_pdf/search/all") + public ResponseEntity> searchOfertasPdf(@RequestParam String query, @RequestParam String secondaryOption) { + List ofertas; + if(secondaryOption.equalsIgnoreCase("Todo")){ + ofertas = ofertaService.findAll(); + } else { + ofertas = ofertaService.searchForPdf(query, secondaryOption); + } + return ResponseEntity.ok(ofertas); + } + + @GetMapping("/sectores_pdf/search/all") + public ResponseEntity> searchSectorPdf() { + List sectors; + sectors = sectorService.findAll(); + return ResponseEntity.ok(sectors); + } + + @GetMapping("/skills_pdf/search/all") + public ResponseEntity> searchSkillsPdf() { + List skills; + skills = skillService.findAll(); + return ResponseEntity.ok(skills); + } + @GetMapping("/sucursales_pdf/search/all") + public ResponseEntity> searchSucursalesPdf(@RequestParam String query, @RequestParam String secondaryOption) { + List sucursals; + if(secondaryOption.equalsIgnoreCase("Todo")){ + sucursals = sucursalService.findAll(); + } else { + sucursals = sucursalService.searchForPdf(query,secondaryOption); + } + return ResponseEntity.ok(sucursals); + } +} diff --git a/src/main/java/com/example/proyectofinal/database b/src/main/java/com/example/proyectofinal/database index bae9599..1ee44ba 100644 --- a/src/main/java/com/example/proyectofinal/database +++ b/src/main/java/com/example/proyectofinal/database @@ -14,47 +14,7 @@ INSERT INTO Ciclos (nombre, codigo, fk_familia) VALUES ('Tourismo','TOUR', 5); INSERT INTO ciclos (nombre, codigo, fk_familia) VALUES ('Deporte','DEP', 4); INSERT INTO ciclos (nombre, codigo, fk_familia) VALUES ('Contabilidad','Cont', 3); --- Insert into Skill table -INSERT INTO skills (nombre) VALUES ('Java'); -INSERT INTO skills (nombre) VALUES ('Microsoft XL'); -INSERT INTO skills (nombre) VALUES ('Ingles'); -INSERT INTO skills (nombre) VALUES ('Aluman'); -INSERT INTO skills (nombre) VALUES ('Ruso'); -INSERT INTO skills (nombre) VALUES ('Python'); -INSERT INTO skills (nombre) VALUES ('C++'); -INSERT INTO skills (nombre) VALUES ('C#'); -INSERT INTO skills (nombre) VALUES ('HTML'); -INSERT INTO skills (nombre) VALUES ('CSS'); -INSERT INTO skills (nombre) VALUES ('JavaScript'); -INSERT INTO skills (nombre) VALUES ('PHP'); -INSERT INTO skills (nombre) VALUES ('SQL'); -INSERT INTO skills (nombre) VALUES ('Marketing'); -INSERT INTO skills (nombre) VALUES ('Carnet de conducir'); - --- Insert into Sector table -INSERT INTO sectores (nombre) VALUES ('Agricultura'); -INSERT INTO sectores (nombre) VALUES ('Tecnologías de la información y la comunicación'); -INSERT INTO sectores (nombre) VALUES ('Ganadería'); -INSERT INTO sectores (nombre) VALUES ('Pesca'); -INSERT INTO sectores (nombre) VALUES ('Silvicultura'); -INSERT INTO sectores (nombre) VALUES ('Turismo'); -INSERT INTO sectores (nombre) VALUES ('Minería'); -INSERT INTO sectores (nombre) VALUES ('Industria manufacturera'); -INSERT INTO sectores (nombre) VALUES ('Construcción'); -INSERT INTO sectores (nombre) VALUES ('Industria energética'); -INSERT INTO sectores (nombre) VALUES ('Industria química'); -INSERT INTO sectores (nombre) VALUES ('Transporte y logística'); -INSERT INTO sectores (nombre) VALUES ('Turismo y hostelería'); -INSERT INTO sectores (nombre) VALUES ('Salud'); -INSERT INTO sectores (nombre) VALUES ('Finanzas'); -INSERT INTO sectores (nombre) VALUES ('Telecomunicaciones'); -INSERT INTO sectores (nombre) VALUES ('Entretenimiento y medios'); -INSERT INTO sectores (nombre) VALUES ('Servicios profesionales'); -INSERT INTO sectores (nombre) VALUES ('Investigación y desarrollo (I+D)'); -INSERT INTO sectores (nombre) VALUES ('Tecnologías de la información y la comunicación (TIC)'); -INSERT INTO sectores (nombre) VALUES ('Servicios de información'); -INSERT INTO sectores (nombre) VALUES ('Servicios gubernamentales'); -INSERT INTO sectores (nombre) VALUES ('Servicios sin ánimo de lucro'); + -- Insert into Alumno table INSERT INTO alumnos (nombre, apellido, apellido2, fecha_nacimiento, genero, nia, dni, correo, correo2, nacionalidad, keywords, fk_ciclo) VALUES ('Jorge', 'Doe', NULL , '2000-01-01', 'Masculino', '11345678', '123456A', 'john.doe@example.com', 'john.smith@example.com', 'American', 'Java, Python', 1); diff --git a/src/main/java/com/example/proyectofinal/servicios/empresa/AlumnoService.java b/src/main/java/com/example/proyectofinal/servicios/empresa/AlumnoService.java index 234130b..7866fd1 100644 --- a/src/main/java/com/example/proyectofinal/servicios/empresa/AlumnoService.java +++ b/src/main/java/com/example/proyectofinal/servicios/empresa/AlumnoService.java @@ -138,18 +138,13 @@ public class AlumnoService implements IAlumno{ if (!querySearchBar.isEmpty()) { for (String query : queryMultiWord) { query = query.trim().toLowerCase(); - if (secondaryOption.equals("Nombre")) { - listEmpPrime.addAll(alumnoRepository.alumnosByNombreCust(query)); - } else if (secondaryOption.equals("Apellido")) { - listEmpPrime.addAll(alumnoRepository.alumnosByApellidoCust(query)); - } else if (secondaryOption.equals("Ciclo")) { - listEmpPrime.addAll(alumnoRepository.alumnosByCicloCust(query)); - } else if (secondaryOption.equals("Keywords")) { - listEmpPrime.addAll(alumnoRepository.alumnosByKeywordsCust(query)); - } else if (secondaryOption.equals("Nia")) { - listEmpPrime.addAll(alumnoRepository.alumnosByNiaCust(query)); - } else if (secondaryOption.equals("Dni")) { - listEmpPrime.addAll(alumnoRepository.alumnosByDniCust(query)); + switch (secondaryOption) { + case "Nombre" -> listEmpPrime.addAll(alumnoRepository.alumnosByNombreCust(query)); + case "Apellido" -> listEmpPrime.addAll(alumnoRepository.alumnosByApellidoCust(query)); + case "Ciclo" -> listEmpPrime.addAll(alumnoRepository.alumnosByCicloCust(query)); + case "Keywords" -> listEmpPrime.addAll(alumnoRepository.alumnosByKeywordsCust(query)); + case "Nia" -> listEmpPrime.addAll(alumnoRepository.alumnosByNiaCust(query)); + case "Dni" -> listEmpPrime.addAll(alumnoRepository.alumnosByDniCust(query)); } } } @@ -166,4 +161,22 @@ public class AlumnoService implements IAlumno{ public List findBySkillsIn(List skills) { return alumnoRepository.findBySkillsIn(skills,skills.size()); } + + public List searchForPdf(String queryPrime, String secondaryOption) { + String[] queryMultiWord = queryPrime.split(","); + queryMultiWord = Arrays.stream(queryMultiWord).map(String::trim).toArray(String[]::new); + ArrayList listEmpPrime = new ArrayList<>(); + for (String query : queryMultiWord) { + query = query.trim().toLowerCase(); + switch (secondaryOption) { + case "Nombre" -> listEmpPrime.addAll(alumnoRepository.alumnosByNombreCust(query)); + case "Apellido" -> listEmpPrime.addAll(alumnoRepository.alumnosByApellidoCust(query)); + case "Ciclo" -> listEmpPrime.addAll(alumnoRepository.alumnosByCicloCust(query)); + case "Keywords" -> listEmpPrime.addAll(alumnoRepository.alumnosByKeywordsCust(query)); + case "Nia" -> listEmpPrime.addAll(alumnoRepository.alumnosByNiaCust(query)); + case "Dni" -> listEmpPrime.addAll(alumnoRepository.alumnosByDniCust(query)); + } + } + return listEmpPrime; + } } diff --git a/src/main/java/com/example/proyectofinal/servicios/empresa/CicloService.java b/src/main/java/com/example/proyectofinal/servicios/empresa/CicloService.java index fb69ed1..b0410b2 100644 --- a/src/main/java/com/example/proyectofinal/servicios/empresa/CicloService.java +++ b/src/main/java/com/example/proyectofinal/servicios/empresa/CicloService.java @@ -145,4 +145,20 @@ public class CicloService implements ICiclos { listEmpPrime.retainAll(listEmpSec); return listEmpPrime; } + + public List searchForPdf(String queryPrime, String secondaryOption) { + String[] queryMultiWord = queryPrime.split(","); + queryMultiWord = Arrays.stream(queryMultiWord).map(String::trim).toArray(String[]::new); + ArrayList listEmpPrime = new ArrayList<>(); + for (String query : queryMultiWord) { + query = query.trim().toLowerCase(); + if (secondaryOption.equals("Familia")) { + listEmpPrime.addAll(cicloRepository.cicloByFamCust(query)); + } else if (secondaryOption.equals("Codigo")) { + listEmpPrime.addAll(cicloRepository.cicloByCodCust(query)); + } + } + + return listEmpPrime; + } } diff --git a/src/main/java/com/example/proyectofinal/servicios/empresa/ContactosService.java b/src/main/java/com/example/proyectofinal/servicios/empresa/ContactosService.java index 8bd306a..6af9d30 100644 --- a/src/main/java/com/example/proyectofinal/servicios/empresa/ContactosService.java +++ b/src/main/java/com/example/proyectofinal/servicios/empresa/ContactosService.java @@ -24,7 +24,7 @@ public class ContactosService implements IContactos { @Override public List findAll() { - return List.of(); + return contactoRepository.findAll(); } @Override @@ -129,13 +129,10 @@ public class ContactosService implements IContactos { @Override public List searchCustom(String querySearchBar, String queryPrime, String secondaryOption) { - // See if the query is a single word or multiple words String[] queryMultiWord = queryPrime.split(","); queryMultiWord = Arrays.stream(queryMultiWord).map(String::trim).toArray(String[]::new); - // Create the ArrayLists to store the results ArrayList listContactoPrime = new ArrayList<>(); - ArrayList listContactoSec = new ArrayList<>(); - // Confirm if the search bar is empty + ArrayList listContactoSec; if (!querySearchBar.isEmpty()) { for (String query : queryMultiWord) { query = query.trim().toLowerCase(); @@ -146,10 +143,23 @@ public class ContactosService implements IContactos { } } } - System.out.println("listContactoPrime: TEST" + listContactoPrime); listContactoSec = (ArrayList) contactoRepository.search(querySearchBar); - System.out.println("listContactoSec: TEST" + listContactoSec); listContactoPrime.retainAll(listContactoSec); return listContactoPrime; } + + public List searchForPdf(String queryPrime, String secondaryOption) { + String[] queryMultiWord = queryPrime.split(","); + queryMultiWord = Arrays.stream(queryMultiWord).map(String::trim).toArray(String[]::new); + ArrayList listContactoPrime = new ArrayList<>(); + for (String query : queryMultiWord) { + query = query.trim().toLowerCase(); + if (secondaryOption.equals("Nombre")) { + listContactoPrime.addAll(contactoRepository.findContactosByNameCust(query)); + } else if (secondaryOption.equals("Empresa")) { + listContactoPrime.addAll(contactoRepository.findContactosByEmpresaNameCust(query)); + } + } + return listContactoPrime; + } } diff --git a/src/main/java/com/example/proyectofinal/servicios/empresa/EmpresaService.java b/src/main/java/com/example/proyectofinal/servicios/empresa/EmpresaService.java index 96bf0e1..5fb7922 100644 --- a/src/main/java/com/example/proyectofinal/servicios/empresa/EmpresaService.java +++ b/src/main/java/com/example/proyectofinal/servicios/empresa/EmpresaService.java @@ -111,15 +111,19 @@ public class EmpresaService implements IEmpresa { for (String query : queryMultiWord) { query = query.trim().toLowerCase(); Page page; - if (secondaryOption.equals("Nombre")) { - page = empresaRepository.findEmpresasByEmpresaName(query, PageRequest.of(pageNum - 1, size, Sort.by(sortField).ascending())); - allMatches.addAll(page.getContent()); - } else if (secondaryOption.equals("Sector")) { - page = empresaRepository.findEmpresasBySectorName(query, PageRequest.of(pageNum - 1, size, Sort.by(sortField).ascending())); - allMatches.addAll(page.getContent()); - } else if (secondaryOption.equals("Keywords")) { - page = empresaRepository.findEmpresasByMultKeywords(query, PageRequest.of(pageNum - 1, size, Sort.by(sortField).ascending())); - allMatches.addAll(page.getContent()); + switch (secondaryOption) { + case "Nombre" -> { + page = empresaRepository.findEmpresasByEmpresaName(query, PageRequest.of(pageNum - 1, size, Sort.by(sortField).ascending())); + allMatches.addAll(page.getContent()); + } + case "Sector" -> { + page = empresaRepository.findEmpresasBySectorName(query, PageRequest.of(pageNum - 1, size, Sort.by(sortField).ascending())); + allMatches.addAll(page.getContent()); + } + case "Keywords" -> { + page = empresaRepository.findEmpresasByMultKeywords(query, PageRequest.of(pageNum - 1, size, Sort.by(sortField).ascending())); + allMatches.addAll(page.getContent()); + } } } // Convert the list of all matches to a page @@ -135,17 +139,15 @@ public class EmpresaService implements IEmpresa { queryMultiWord = Arrays.stream(queryMultiWord).map(String::trim).toArray(String[]::new); //Create the ArrayLists to store the results ArrayList listEmpPrime = new ArrayList<>(); - ArrayList listEmpSec = new ArrayList<>(); + ArrayList listEmpSec; //Confirm if the search bar is empty if (!querySearchBar.isEmpty()) { for (String query : queryMultiWord) { query = query.trim().toLowerCase(); - if (secondaryOption.equals("Nombre")) { - listEmpPrime.addAll(empresaRepository.findEmpresasByEmpresaNameCust(query)); - } else if (secondaryOption.equals("Sector")) { - listEmpPrime.addAll(empresaRepository.findEmpresasBySectorNameCust(query)); - } else if (secondaryOption.equals("Keywords")) { - listEmpPrime.addAll(empresaRepository.findEmpresasByKeywordsCust(query)); + switch (secondaryOption) { + case "Nombre" -> listEmpPrime.addAll(empresaRepository.findEmpresasByEmpresaNameCust(query)); + case "Sector" -> listEmpPrime.addAll(empresaRepository.findEmpresasBySectorNameCust(query)); + case "Keywords" -> listEmpPrime.addAll(empresaRepository.findEmpresasByKeywordsCust(query)); } } } @@ -156,10 +158,25 @@ public class EmpresaService implements IEmpresa { return listEmpPrime; } + + public List searchForPdf(String queryPrime,String secondaryOption) { + //See if the query is a single word or multiple words + String[] queryMultiWord = queryPrime.split(","); + queryMultiWord = Arrays.stream(queryMultiWord).map(String::trim).toArray(String[]::new); + ArrayList listEmpPrime = new ArrayList<>(); + for (String query : queryMultiWord) { + query = query.trim().toLowerCase(); + switch (secondaryOption) { + case "Nombre" -> listEmpPrime.addAll(empresaRepository.findEmpresasByEmpresaNameCust(query)); + case "Sector" -> listEmpPrime.addAll(empresaRepository.findEmpresasBySectorNameCust(query)); + case "Keywords" -> listEmpPrime.addAll(empresaRepository.findEmpresasByKeywordsCust(query)); + } + } + return listEmpPrime; + } @Override public void saveManualy(long id, String nombre, String cif, String correo, String telefono, String keywords, long id1) { empresaRepository.saveManualy( id, nombre, cif, correo, telefono, keywords, id1); - } } diff --git a/src/main/java/com/example/proyectofinal/servicios/empresa/FamiliaService.java b/src/main/java/com/example/proyectofinal/servicios/empresa/FamiliaService.java index 6f09d26..a118828 100644 --- a/src/main/java/com/example/proyectofinal/servicios/empresa/FamiliaService.java +++ b/src/main/java/com/example/proyectofinal/servicios/empresa/FamiliaService.java @@ -57,6 +57,11 @@ public class FamiliaService implements IFamilia { return familiaRepository.search(query); } + @Override + public List findAll() { + return familiaRepository.findAll(); + } + public List findAllFamilias() { return familiaRepository.findAll(); } diff --git a/src/main/java/com/example/proyectofinal/servicios/empresa/OfertaService.java b/src/main/java/com/example/proyectofinal/servicios/empresa/OfertaService.java index 23c8026..126bb1c 100644 --- a/src/main/java/com/example/proyectofinal/servicios/empresa/OfertaService.java +++ b/src/main/java/com/example/proyectofinal/servicios/empresa/OfertaService.java @@ -214,4 +214,29 @@ public class OfertaService implements IOferta { public List findDistinctYears() { return ofertaRepository.findDistinctYears(); } + + public List searchForPdf(String queryPrime, String secondaryOption) { + String[] queryMultiWord = queryPrime.split(","); + queryMultiWord = Arrays.stream(queryMultiWord).map(String::trim).toArray(String[]::new); + ArrayList listEmpPrime = new ArrayList<>(); + for (String query : queryMultiWord) { + query = query.trim().toLowerCase(); + switch (secondaryOption) { + case "Nombre" -> listEmpPrime.addAll(ofertaRepository.ofertasByNombreCust(query)); + case "Empresa" -> listEmpPrime.addAll(ofertaRepository.ofertasByEmpresaCust(query)); + case "Skill" -> listEmpPrime.addAll(ofertaRepository.ofertasBySkillCust(query)); + case "Este Año" -> { + String year = new SimpleDateFormat("yyyy").format(new Date()); + listEmpPrime.addAll(ofertaRepository.findOfertaByFechaAnyo(year, PageRequest.of(0, 1000, Sort.by("fecha").ascending())).getContent()); + } + case "Ultimos 3 meses" -> + listEmpPrime.addAll(ofertaRepository.findOfertaByFechaUltimos3Meses(PageRequest.of(0, 1000, Sort.by("fecha").ascending())).getContent()); + case "Ultimos 6 meses" -> + listEmpPrime.addAll(ofertaRepository.findOfertaByFechaUltimos6Meses(PageRequest.of(0, 1000, Sort.by("fecha").ascending())).getContent()); + } + } + + + return listEmpPrime; + } } diff --git a/src/main/java/com/example/proyectofinal/servicios/empresa/SucursalService.java b/src/main/java/com/example/proyectofinal/servicios/empresa/SucursalService.java index 87c1302..314c8f6 100644 --- a/src/main/java/com/example/proyectofinal/servicios/empresa/SucursalService.java +++ b/src/main/java/com/example/proyectofinal/servicios/empresa/SucursalService.java @@ -126,12 +126,10 @@ public class SucursalService implements ISucursal { if (!querySearchBar.isEmpty()) { for (String query : queryMultiWord) { query = query.trim().toLowerCase(); - if (secondaryOption.equals("Nombre")) { - listEmpPrime.addAll(sucursalRepository.sucursalByNameCust(query)); - } else if (secondaryOption.equals("Empresa")) { - listEmpPrime.addAll(sucursalRepository.sucursalByEmpNameCust(query)); - } else if (secondaryOption.equals("Localidad")) { - listEmpPrime.addAll(sucursalRepository.sucursalByLoclCust(query)); + switch (secondaryOption) { + case "Nombre" -> listEmpPrime.addAll(sucursalRepository.sucursalByNameCust(query)); + case "Empresa" -> listEmpPrime.addAll(sucursalRepository.sucursalByEmpNameCust(query)); + case "Localidad" -> listEmpPrime.addAll(sucursalRepository.sucursalByLoclCust(query)); } } } @@ -139,4 +137,19 @@ public class SucursalService implements ISucursal { listEmpPrime.retainAll(listEmpSec); return listEmpPrime; } + + public List searchForPdf(String queryPrime, String secondaryOption) { + String[] queryMultiWord = queryPrime.split(","); + queryMultiWord = Arrays.stream(queryMultiWord).map(String::trim).toArray(String[]::new); + ArrayList listEmpPrime = new ArrayList<>(); + for (String query : queryMultiWord) { + query = query.trim().toLowerCase(); + switch (secondaryOption) { + case "Nombre" -> listEmpPrime.addAll(sucursalRepository.sucursalByNameCust(query)); + case "Empresa" -> listEmpPrime.addAll(sucursalRepository.sucursalByEmpNameCust(query)); + case "Localidad" -> listEmpPrime.addAll(sucursalRepository.sucursalByLoclCust(query)); + } + } + return listEmpPrime; + } } diff --git a/src/main/java/com/example/proyectofinal/servicios/implemetations/empresas/IFamilia.java b/src/main/java/com/example/proyectofinal/servicios/implemetations/empresas/IFamilia.java index 37019bb..94a36d0 100644 --- a/src/main/java/com/example/proyectofinal/servicios/implemetations/empresas/IFamilia.java +++ b/src/main/java/com/example/proyectofinal/servicios/implemetations/empresas/IFamilia.java @@ -17,4 +17,5 @@ public interface IFamilia extends IPagination { List search(String query); + List findAll(); } diff --git a/src/main/java/com/example/proyectofinal/temp b/src/main/java/com/example/proyectofinal/temp index a759f51..9f75528 100644 --- a/src/main/java/com/example/proyectofinal/temp +++ b/src/main/java/com/example/proyectofinal/temp @@ -114,3 +114,121 @@ SELECT 'Servicios gubernamentales' WHERE NOT EXISTS (SELECT 1 FROM sectores); INSERT INTO sectores (nombre) SELECT 'Servicios sin ánimo de lucro' WHERE NOT EXISTS (SELECT 1 FROM sectores); + + + +-- Insert skills if the skill table is empty +INSERT INTO skills (nombre) +SELECT 'Java' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'Microsoft XL' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'Ingles' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'Aluman' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'Ruso' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'Python' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'C++' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'C#' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'HTML' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'CSS' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'JavaScript' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'PHP' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'SQL' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'Marketing' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'Carnet de conducir' WHERE NOT EXISTS (SELECT 1 FROM skills); + +-- Insert for sectores +INSERT INTO sectores (nombre) +SELECT 'Agricultura' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Tecnologías de la información y la comunicación' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Ganadería' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Pesca' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Silvicultura' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Turismo' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Minería' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Industria manufacturera' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Construcción' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Industria energética' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Industria química' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Transporte y logística' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Turismo y hostelería' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Salud' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Finanzas' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Telecomunicaciones' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Entretenimiento y medios' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Servicios profesionales' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Investigación y desarrollo (I+D)' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Tecnologías de la información y la comunicación (TIC)' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Servicios de información' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Servicios gubernamentales' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Servicios sin ánimo de lucro' WHERE NOT EXISTS (SELECT 1 FROM sectores); diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 98adc54..017808f 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -5,3 +5,118 @@ INSERT INTO autoridad (nombre) SELECT 'WRITE' WHERE NOT EXISTS (SELECT 1 FROM autoridad); INSERT INTO autoridad (nombre) SELECT 'DELETE' WHERE NOT EXISTS (SELECT 1 FROM autoridad); + +INSERT INTO skills (nombre) +SELECT 'Java' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'Microsoft XL' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'Ingles' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'Aluman' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'Ruso' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'Python' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'C++' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'C#' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'HTML' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'CSS' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'JavaScript' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'PHP' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'SQL' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'Marketing' WHERE NOT EXISTS (SELECT 1 FROM skills); + +INSERT INTO skills (nombre) +SELECT 'Carnet de conducir' WHERE NOT EXISTS (SELECT 1 FROM skills); + +-- Insert for sectores +INSERT INTO sectores (nombre) +SELECT 'Agricultura' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Tecnologías de la información y la comunicación' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Ganadería' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Pesca' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Silvicultura' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Turismo' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Minería' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Industria manufacturera' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Construcción' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Industria energética' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Industria química' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Transporte y logística' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Turismo y hostelería' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Salud' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Finanzas' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Telecomunicaciones' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Entretenimiento y medios' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Servicios profesionales' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Investigación y desarrollo (I+D)' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Tecnologías de la información y la comunicación (TIC)' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Servicios de información' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Servicios gubernamentales' WHERE NOT EXISTS (SELECT 1 FROM sectores); + +INSERT INTO sectores (nombre) +SELECT 'Servicios sin ánimo de lucro' WHERE NOT EXISTS (SELECT 1 FROM sectores); diff --git a/src/main/resources/static/style.css b/src/main/resources/static/style.css index 870fd8c..0660280 100644 --- a/src/main/resources/static/style.css +++ b/src/main/resources/static/style.css @@ -93,17 +93,29 @@ h1 { } body { margin: 0; - padding: 0px; + padding: 0; } .header { display: flex; align-items: center; - background-color: #007BFF; justify-content: space-between; + background-color: #007BFF; padding: 0; box-sizing: border-box; } +.pdfButton { + font-size: 10px; /* Adjust font size */ + padding: 2px 5px; /* Adjust padding */ + width: auto; /* Adjust width to auto so it expands as needed */ + white-space: normal; /* Allow text to wrap to next line */ + text-align: center; /* Center the text */ + z-index: 2; + position: relative; +} .header h1 { + position: absolute; + left: 50%; + transform: translateX(-50%); margin: 0; } .header button { @@ -217,3 +229,5 @@ html, body { display: none; } + + diff --git a/src/main/resources/templates/list/alumnos.html b/src/main/resources/templates/list/alumnos.html index 16d1ab1..197b51f 100644 --- a/src/main/resources/templates/list/alumnos.html +++ b/src/main/resources/templates/list/alumnos.html @@ -5,6 +5,8 @@ + + Lista: Alumnos