Selaa lähdekoodia

Cambios para el correcto funcionamiento de Organ service

Se han añadido nuevos DTO además de cambiado las llamas a servicios de OrganService y IndicadorEnquestaTmpService a llamadas http a sus correspondientes servicios REST.
Mario Martínez Hernández 1 kuukausi sitten
vanhempi
commit
40a15bbf63

+ 4 - 10
.classpath

@@ -29,27 +29,21 @@
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="src" path="target/generated-sources/annotations">
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
 		<attributes>
-			<attribute name="optional" value="true"/>
 			<attribute name="maven.pomderived" value="true"/>
-			<attribute name="ignore_optional_problems" value="true"/>
-			<attribute name="m2e-apt" value="true"/>
+			<attribute name="test" value="true"/>
+			<attribute name="optional" value="true"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
+	<classpathentry kind="src" path="target/generated-sources/annotations">
 		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-			<attribute name="test" value="true"/>
 			<attribute name="optional" value="true"/>
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
 		<attributes>
 			<attribute name="optional" value="true"/>
-			<attribute name="maven.pomderived" value="true"/>
-			<attribute name="ignore_optional_problems" value="true"/>
-			<attribute name="m2e-apt" value="true"/>
 			<attribute name="test" value="true"/>
 		</attributes>
 	</classpathentry>

+ 9 - 9
notas.md

@@ -6,16 +6,16 @@
  - IndicadorEnquestaService -> SAIC_CORE
  - DataSourceService -> SAIC_DATA
  ### Llamadas a OrganService a convertir
-    - ln 114 getActiveCentres() GET
-    - ln 115 getTitulations() GET
-    - ln 201 findByRuct(Integer ruct) POST
+    - ln 114 getActiveCentres() GET - ✅
+    - ln 115 getTitulations() GET - ✅
+    - ln 201 findByRuct(Integer ruct) POST - ✅
 
  ### Llamadas a IndicadorEnquestaTmpService a convertir
-    - ln 95 deleteByEnquestaCursAmbitEstudi(String enquesta, Integer curs, String ambit, String estudi) DELETE
-    - ln 106 findByEnquestaCursAmbitEstudi(String enquesta, Integer curs, String ambit, String estudi) POST
-    - ln 150 deleteFromCurrent(String enquesta) DELETE
-    - ln 153 deleteFromPending(String enquesta) DELETE
-    - ln 163 deleteDuplicates(String enquesta) DELETE
+    - ln 95 deleteByEnquestaCursAmbitEstudi(String enquesta, Integer curs, String ambit, String estudi) DELETE - ✅
+    - ln 106 findByEnquestaCursAmbitEstudi(String enquesta, Integer curs, String ambit, String estudi) POST - ✅
+    - ln 150 deleteFromCurrent(String enquesta) DELETE - ✅
+    - ln 153 deleteFromPending(String enquesta) DELETE - ✅
+    - ln 163 deleteDuplicates(String enquesta) DELETE  - ✅
 
  ### Llamadas a IndicadorEnquestaService a convertir
     - ln 202 getAllInds(Organ o, Integer curs) POST
@@ -105,7 +105,7 @@
  ### OrganService endpoints:
     - getActiveCentres() GET
     - getTitulations() GET
-    - findByRuct(Integer ruct) POST
+    - findByRuct(Integer ruct) POST  -> AHORA ES "getAllIndsByRuct"
     - findById(String tlugar, Integer idTitulacio) POST
     - getTitulacionsByTypeCentre(Integer lugar, Integer ambit) POST
 

+ 12 - 1
src/main/java/es/uv/saic/domain/OrganRepository.java

@@ -7,6 +7,7 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
 import es.uv.saic.dto.OrganDTO;
+import es.uv.saic.dto.OrganDTOImp;
 
 @Repository
 public interface OrganRepository extends JpaRepository<Organ, OrganPK> {
@@ -17,6 +18,15 @@ public interface OrganRepository extends JpaRepository<Organ, OrganPK> {
 	@Query(value=("SELECT * FROM organs WHERE ruct = ?1 AND actiu"), nativeQuery=true)
 	public Organ findByRuct(Integer ruct);
 
+	@Query(value=("SELECT o1.lugar AS lugar, o1.tlugar AS tlugar," + 
+				"o1.lugar2 AS lugar2, o1.tlugar2 AS tlugar2, " + 
+				"o1.nom_cas AS nomCas, o1.nom_val AS nomVal," + 
+				"o1.ruct AS ruct, o1.tambit AS tambit," + 
+				"o2.nom_cas AS nomCas2, o2.nom_val AS nomVal2, " +
+				"o2.ruct AS ruct2 " + 
+				"FROM organs AS o1 JOIN organs AS o2 on o1.tlugar2 = o2.tlugar AND o1.lugar2 = o2.lugar WHERE o1.ruct = ?1 AND o1.actiu = true;"), nativeQuery=true)
+	public OrganDTO findByRuctDTO(Integer ruct);
+
 	@Query(value=("""
 		SELECT lugar FROM organs WHERE tlugar = ?1 AND lugar = ?2
 		UNION 
@@ -79,7 +89,8 @@ public interface OrganRepository extends JpaRepository<Organ, OrganPK> {
 				"o1.lugar2 AS lugar2, o1.tlugar2 AS tlugar2, " + 
 				"o1.nom_cas AS nomCas, o1.nom_val AS nomVal," + 
 				"o1.ruct AS ruct, o1.tambit AS tambit," + 
-				"o2.nom_cas AS nomCentroCas, o2.nom_val AS nomCentroVal " + 
+				"o2.nom_cas AS nomCas2, o2.nom_val AS nomVal2, " +
+				"o2.ruct AS ruct2 " + 
 				"FROM organs AS o1 JOIN organs AS o2 on o1.tlugar2 = o2.tlugar AND o1.lugar2 = o2.lugar WHERE o1.actiu = true;"), nativeQuery=true)
 	public List<OrganDTO> findAllTitulacionsWithCentre();
 	

+ 9 - 2
src/main/java/es/uv/saic/dto/EnquestaDTO.java

@@ -8,9 +8,9 @@ public class EnquestaDTO {
     Integer centre;
     Integer titulacio;
 
-    EnquestaDTO() {};
+    public EnquestaDTO() {};
     
-    EnquestaDTO(String enquesta, Integer curs, String ambit, String estudi,
+    public EnquestaDTO(String enquesta, Integer curs, String ambit, String estudi,
         Integer centre, Integer titulacio) {
             this.enquesta = enquesta;
             this.curs = curs;
@@ -20,6 +20,13 @@ public class EnquestaDTO {
             this.titulacio = titulacio;
     }
 
+    public EnquestaDTO(String enquesta, Integer curs, String ambit, String estudi) {
+        this.enquesta = enquesta;
+        this.curs = curs;
+        this.ambit = ambit;
+        this.estudi = estudi;
+    }
+
     public String getEnquesta() {
         return this.enquesta;
     }

+ 5 - 3
src/main/java/es/uv/saic/dto/OrganDTO.java

@@ -9,6 +9,8 @@ public interface OrganDTO {
     String getNomVal();
     Integer getRuct();
     String getTambit();
-    String getNomCentroCas();
-    String getNomCentroVal();
-}
+    String getNomCas2();
+    String getNomVal2();
+    Integer getRuct2();
+
+}

+ 129 - 0
src/main/java/es/uv/saic/dto/OrganDTOImp.java

@@ -0,0 +1,129 @@
+package es.uv.saic.dto;
+
+public class OrganDTOImp implements OrganDTO{
+    private String lugar;
+    private String tlugar;
+    private String lugar2;
+    private String tlugar2;
+    private String nomCas;
+    private String nomVal;
+    private Integer ruct;
+    private String tambit;
+    private String nomCas2;
+    private String nomVal2;
+    private Integer ruct2;
+
+    public OrganDTOImp() {}
+
+    public OrganDTOImp(String lugar, String tlugar, String lugar2, String tlugar2, 
+                   String nomCas, String nomVal, Integer ruct, String tambit, 
+                   String nomCas2, String nomVal2, Integer ruct2) {
+        this.lugar = lugar;
+        this.tlugar = tlugar;
+        this.lugar2 = lugar2;
+        this.tlugar2 = tlugar2;  
+        this.nomCas = nomCas;
+        this.nomVal = nomVal;
+        this.ruct = ruct;
+        this.tambit = tambit;
+        this.nomCas2 = nomCas2;
+        this.nomVal2 = nomVal2;
+        this.ruct2 = ruct2;
+    }
+
+    public String getLugar() {
+        return lugar;
+    }
+
+    public String getTlugar() {
+        return tlugar;
+    }
+
+    public String getLugar2() {
+        return lugar2;
+    }
+
+    public String getTlugar2() {
+        return tlugar2;
+    }
+
+    public String getNomCas() {
+        return nomCas;
+    }
+
+    public String getNomVal() {
+        return nomVal;
+    }
+
+    public Integer getRuct() {
+        return ruct;
+    }
+
+    public String getTambit() {
+        return tambit;
+    }
+
+    public String getNomTCas() {
+        return nomCas2;
+    }
+
+    public String getNomTVal() {
+        return nomVal2;
+    }
+
+    public Integer getRuct2() {
+        return ruct2;
+    }
+
+    public String getNomCas2() {
+        return nomCas2;
+    }
+
+    public String getNomVal2() {
+        return nomVal2;
+    }
+
+    public void setLugar(String lugar) {
+        this.lugar = lugar;
+    }
+
+    public void setTlugar(String tlugar) {
+        this.tlugar = tlugar;
+    }
+
+    public void setLugar2(String lugar2) {
+        this.lugar2 = lugar2;
+    }
+
+    public void setTlugar2(String tlugar2) {
+        this.tlugar2 = tlugar2;
+    }
+
+    public void setNomCas(String nomCas) {
+        this.nomCas = nomCas;
+    }
+
+    public void setNomVal(String nomVal) {
+        this.nomVal = nomVal;
+    }
+
+    public void setRuct(Integer ruct) {
+        this.ruct = ruct;
+    }
+
+    public void setTambit(String tambit) {
+        this.tambit = tambit;
+    }
+
+    public void setNomCas2(String nomCas2) {
+        this.nomCas2 = nomCas2;
+    }
+
+    public void setNomVal2(String nomVal2) {
+        this.nomVal2 = nomVal2;
+    }
+
+    public void setRuct2(Integer ruct2) {
+        this.ruct2 = ruct2;
+    }
+}

+ 5 - 0
src/main/java/es/uv/saic/service/IndicadorEnquestaService.java

@@ -14,6 +14,7 @@ import es.uv.saic.domain.IndicadorEnquestaRepository;
 import es.uv.saic.domain.Organ;
 import es.uv.saic.dto.IndicadorDTO;
 import es.uv.saic.dto.IndicadorEnquestaValorDTO;
+import es.uv.saic.dto.OrganDTOImp;
 
 @Service
 public class IndicadorEnquestaService {
@@ -81,6 +82,10 @@ public class IndicadorEnquestaService {
 	public List<IndicadorEnquesta> getAllInds(Organ o, Integer curs){
 		return this.r.getAllIndsByEstudi(o.getId().getLugar(), o.getOrgan().getId().getLugar(), curs, o.getTambit());
 	}
+
+	public List<IndicadorEnquesta> getAllInds(OrganDTOImp o, Integer curs){
+		return this.r.getAllIndsByEstudi(Integer.parseInt(o.getLugar()), Integer.parseInt(o.getLugar2()), curs, o.getTambit());
+	}
 			
 	public List<IndicadorDTO> getGraphData(List<Integer> titulacions, Integer centre, String estudi, Integer cursMax) {
 		return this.r.getGraphData(titulacions, centre, estudi, cursMax);

+ 4 - 0
src/main/java/es/uv/saic/service/OrganService.java

@@ -27,6 +27,10 @@ public class OrganService {
 		return this.organRepository.findByRuct(ruct);
 	}
 
+	public OrganDTO findByRuctDTO(Integer ruct) {
+		return this.organRepository.findByRuctDTO(ruct);
+	}
+
 	public boolean exists(String tlugar, Integer lugar){
 		List<Integer> o = this.organRepository.exists(tlugar, lugar);
 		if(o == null){

+ 146 - 33
src/main/java/es/uv/saic/web/DataController.java

@@ -5,6 +5,7 @@ import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URI;
 import java.net.http.HttpClient;
+import java.net.http.HttpRequest;
 import java.net.http.HttpResponse;
 import java.sql.SQLException;
 import java.util.ArrayList;
@@ -33,24 +34,20 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import es.uv.saic.domain.Datasource;
 import es.uv.saic.domain.IndicadorEnquesta;
 import es.uv.saic.domain.IndicadorEnquestaTmp;
-import es.uv.saic.domain.Organ;
 import es.uv.saic.domain.Usuari;
+import es.uv.saic.dto.EnquestaDTO;
 import es.uv.saic.dto.IndicadorEnquestaTmpDup;
+import es.uv.saic.dto.OrganDTOImp;
 import es.uv.saic.service.DataService;
 import es.uv.saic.service.DatasourceService;
 import es.uv.saic.service.IndicadorEnquestaService;
 import es.uv.saic.service.IndicadorEnquestaTmpService;
-import es.uv.saic.service.OrganService;
-
 @Controller
 public class DataController {
 
 	@Autowired
 	private DataService ips;
 	
-	@Autowired 
-	private OrganService os;
-	
 	@Autowired
 	private IndicadorEnquestaTmpService iets;
 	
@@ -103,9 +100,37 @@ public class DataController {
 	@ResponseBody
 	public String delete(Model model, Authentication auth, @RequestParam String enquesta,
 			@RequestParam Integer curs, @RequestParam String ambit, @RequestParam String estudi) throws IOException {  
-		String locale = LocaleContextHolder.getLocale().getLanguage();
-		String r = Integer.toString(this.iets.deleteByEnquestaCursAmbitEstudi(enquesta, curs, ambit, estudi));
-	    String retval = locale.equals("es") ? "[INFO] Se han eliminado "+r+" registros" : "[INFO] S'han esborrat "+r+" registres";
+		
+		URI uriobjUri = URI.create(uri + "/delete/ByEnquestaCursAmbitEstudi");
+		String retval = "";
+
+		try {
+			ObjectMapper objectMapper = new ObjectMapper();
+			EnquestaDTO enquestaDTO = new EnquestaDTO(enquesta, curs, ambit, estudi); 
+			String requestBody = objectMapper.writeValueAsString(enquestaDTO);
+
+			HttpClient httpClient = HttpClient.newHttpClient();
+			HttpRequest request = HttpRequest.newBuilder()
+					.uri(uriobjUri)
+					.header("Content-Type", "application/json")
+					.method("DELETE", HttpRequest.BodyPublishers.ofString(requestBody))
+					.build();
+
+			HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
+
+			// Create the json with the response body
+			if (response.statusCode() == HttpURLConnection.HTTP_OK) {
+				String r = response.body();
+				String locale = LocaleContextHolder.getLocale().getLanguage();
+				retval = locale.equals("es") ? "[INFO] Se han eliminado "+r+" registros" : "[INFO] S'han esborrat "+r+" registres";
+			} else {
+				System.err.println("Failed to load centres. HTTP error code: " + response.statusCode());
+			}			
+				
+		} catch (Exception e) {
+			System.err.println("Failed to load centres: " + e.getMessage());
+		}
+		
         return retval;
 	}
 	
@@ -115,43 +140,61 @@ public class DataController {
 	@ResponseBody
 	public List<IndicadorEnquestaTmp> show(Model model, Authentication auth, @RequestParam String enquesta,
 			@RequestParam Integer curs, @RequestParam String ambit, @RequestParam String estudi) throws IOException {    
-		List<IndicadorEnquestaTmp> inds = this.iets.findByEnquestaCursAmbitEstudi(enquesta, curs, ambit, estudi);
-        return inds;
+		URI uriobjUri = URI.create(uri + "/findByEnquestaCursAmbitEstudi");
+		List<IndicadorEnquestaTmp> inds = null;
+
+		try {
+			ObjectMapper objectMapper = new ObjectMapper();
+			EnquestaDTO enquestaDTO = new EnquestaDTO(enquesta, curs, ambit, estudi); 
+			String requestBody = objectMapper.writeValueAsString(enquestaDTO);
+
+			HttpClient httpClient = HttpClient.newHttpClient();
+			HttpRequest request = HttpRequest.newBuilder()
+					.uri(uriobjUri)
+					.header("Content-Type", "application/json")
+					.method("POST", HttpRequest.BodyPublishers.ofString(requestBody))
+					.build();
+
+			HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
+
+			// Create the json with the response body
+			if (response.statusCode() == HttpURLConnection.HTTP_OK) {
+				ObjectMapper mapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+				// Convert JSON array to List<Organ> 
+				inds = mapper.readValue(response.body(), new TypeReference<List<IndicadorEnquestaTmp>>() {});
+
+			} else {
+				System.err.println("Failed to find enquesta by Curs, Ambit, Estudi. HTTP error code: " + response.statusCode());
+			}			
+				
+		} catch (Exception e) {
+			System.err.println("Failed to find enquesta by Curs, Ambit, Estudi: " + e.getMessage());
+		}
+		return inds;
 	}
 	
 	// GET para mostrar el formulario de busqueda de datos
 	@GetMapping("/data/current")
 	@Secured({"ROLE_ADMIN", "ROLE_TESTER"})
 	public String current(Model model, Authentication auth) throws IOException {
-		URI uriobjUri = URI.create(uri + "/getActiveCentres");
-		URI uriobjUri2 = URI.create(uri + "/getTitulacions");
+		URI uriobjUri = URI.create(uri + "/getTitulacionsWithCentre");
 
 		try {
 			HttpClient httpClient = HttpClient.newHttpClient();
-			java.net.http.HttpRequest request = java.net.http.HttpRequest.newBuilder()
+			HttpRequest request = HttpRequest.newBuilder()
 					.uri(uriobjUri)
 					.GET()
 					.build();
 
 			HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
 
-			HttpClient httpClient2 = HttpClient.newHttpClient();
-			java.net.http.HttpRequest request2 = java.net.http.HttpRequest.newBuilder()
-					.uri(uriobjUri2)
-					.GET()
-					.build();
-
-			HttpResponse<String> response2 = httpClient2.send(request2, HttpResponse.BodyHandlers.ofString());
-
 			// Create the json with the response body
 			if (response.statusCode() == HttpURLConnection.HTTP_OK) {
 				ObjectMapper mapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-				// Convert JSON array to List<Organ>
-				List<Organ> centres = mapper.readValue(response.body(), new TypeReference<List<Organ>>() {});
-				List<Organ> titulacions = mapper.readValue(response2.body(), new TypeReference<List<Organ>>() {});
+				// Convert JSON array to List<Organ> 
+				List<OrganDTOImp> centres = mapper.readValue(response.body(), new TypeReference<List<OrganDTOImp>>() {});
 
-				model.addAttribute("centres", centres);
-				model.addAttribute("titulacions", titulacions);
+				model.addAttribute("data", centres);
 			} else {
 				System.err.println("Failed to load centres. HTTP error code: " + response.statusCode());
 			}			
@@ -191,12 +234,37 @@ public class DataController {
 	@ResponseBody
 	public Integer fixIntegrityIssues(Model model, Authentication auth, 
 			@RequestParam String enquesta, @PathVariable String deleteFrom) throws IOException {   
+		
+		URI uriobjUri = null;
 		if(deleteFrom.equals("current")) {
-			return this.iets.deleteFromCurrent(enquesta);
+			uriobjUri = URI.create(uri + "/delete/current" + enquesta);
 		}
 		else if(deleteFrom.equals("new")) {
-			return this.iets.deleteFromPending(enquesta);
+			uriobjUri = URI.create(uri + "/delete/pending" + enquesta);
+		} else {
+			return 0;
 		}
+
+		try {
+			HttpClient httpClient = HttpClient.newHttpClient();
+			HttpRequest request = HttpRequest.newBuilder()
+					.uri(uriobjUri)
+					.DELETE()
+					.build();
+
+			HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
+
+			// Create the json with the response body
+			if (response.statusCode() == HttpURLConnection.HTTP_OK) {
+				return Integer.parseInt(response.body());
+			} else {
+				System.err.println("Failed  to fix integrity by delete current/duplicated." + 
+				" HTTP error code: " + response.statusCode());
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
 		return 0;
 	}
 
@@ -205,7 +273,29 @@ public class DataController {
 	@Secured({"ROLE_ADMIN", "ROLE_TESTER"})
 	@ResponseBody
 	public Integer fixDuplicatesIssues(Model model, Authentication auth, @RequestParam String enquesta) throws IOException {   
-		return this.iets.deleteDuplicates(enquesta);
+		URI uriobjUri = URI.create(uri + "/delete/duplicates/" + enquesta);
+
+		try {
+			HttpClient httpClient = HttpClient.newHttpClient();
+			HttpRequest request = HttpRequest.newBuilder()
+					.uri(uriobjUri)
+					.DELETE()
+					.build();
+
+			HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
+
+			// Create the json with the response body
+			if (response.statusCode() == HttpURLConnection.HTTP_OK) {
+				return Integer.parseInt(response.body());
+			} else {
+				System.err.println("Failed to delete duplicates from " + enquesta + "." + 
+				" HTTP error code: " + response.statusCode());
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		return 0;
 	}
 	
 	// POST que consolida los datos pasadas por la encuesta
@@ -242,9 +332,32 @@ public class DataController {
 	@Secured({"ROLE_ADMIN", "ROLE_TESTER"})
 	@ResponseBody
 	public List<IndicadorEnquesta> show(Model model, Authentication auth, @PathVariable Integer ruct, 
-			@PathVariable Integer curs) throws IOException {  
-		Organ o = os.findByRuct(ruct);
-		List<IndicadorEnquesta> inds = this.ies.getAllInds(o, curs);
+			@PathVariable Integer curs) throws IOException { 
+			
+		URI uriobjUri = URI.create(uri + "/getAllIndsByRuct/" + ruct.toString() + "/" + curs);
+		List<IndicadorEnquesta> inds = null;
+		
+		try {
+			HttpClient httpClient = HttpClient.newHttpClient();
+			HttpRequest request = HttpRequest.newBuilder()
+					.uri(uriobjUri)
+					.GET()
+					.build();
+
+			HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
+
+			if (response.statusCode() == HttpURLConnection.HTTP_OK) {
+				ObjectMapper mapper = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+	
+				inds = mapper.readValue(response.body(), new TypeReference<List<IndicadorEnquesta>>() {});
+			} else {
+				System.err.println("Failed to load List<IndicadorEnquesta>. HTTP response code: " + response.statusCode());
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+			System.err.println("Error al encontrar el ruct " + ruct + " curso: " + curs);
+		}
+		
         return inds;
 	}
 	

+ 4 - 5
src/main/java/es/uv/saic/web/IndicadorController.java

@@ -12,7 +12,6 @@ import org.springframework.web.bind.annotation.RestController;
 
 import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.json.JsonMapper;
 
 import es.uv.saic.domain.Organ;
@@ -53,7 +52,7 @@ public class IndicadorController {
             e.printStackTrace();
             return ResponseEntity.badRequest().body("Error al tramitar la petición de borrar: " + e.getMessage());
         }
-    return ResponseEntity.ok("Se han eliminado " + i + " enquesta/s.");
+    return ResponseEntity.ok(i.toString());
     }
 
     /*
@@ -94,7 +93,7 @@ public class IndicadorController {
             return ResponseEntity.badRequest().body("Error al eliminar las enquestas pendientes: " + e.getMessage());
         }
 
-        return ResponseEntity.ok("Se han eliminado " + i + " enquestas pendientes.");
+        return ResponseEntity.ok(i.toString());
     }
 
     /*
@@ -114,7 +113,7 @@ public class IndicadorController {
             return ResponseEntity.badRequest().body("Error al eliminar las enquestas duplicadas: " + e.getMessage());
         }
 
-        return ResponseEntity.ok("Se han eliminado " + i + " enquestas duplicadas.");
+        return ResponseEntity.ok(i.toString());
     }
 
     /*
@@ -180,7 +179,7 @@ public class IndicadorController {
     }
 
     /*
-     * 
+     * Endpoing para la función findByEnquestaCursAmbitEstudiCentre
      */
 
     @PostMapping("/findByEnquestaCursAmbitEstudiCentre")

+ 14 - 23
src/main/java/es/uv/saic/web/OrganController.java

@@ -1,6 +1,7 @@
 package es.uv.saic.web;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
@@ -12,42 +13,31 @@ import org.springframework.web.bind.annotation.RestController;
 
 import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.json.JsonMapper;
 
+import es.uv.saic.domain.IndicadorEnquesta;
 import es.uv.saic.domain.Organ;
 import es.uv.saic.dto.OrganDTO;
+import es.uv.saic.dto.OrganDTOImp;
+import es.uv.saic.service.IndicadorEnquestaService;
 import es.uv.saic.service.OrganService;
 
 @RestController
 public class OrganController {
     
     @Autowired
-    OrganService os;
+    private OrganService os;
 
-    /*
-     * Endpoint for getActiveCentres
-     */ 
-    @GetMapping("/getActiveCentres")
-    public ResponseEntity<?> getActiveCentres() {
-        try {
-            List<Organ> list = os.getActiveCentres();
-
-            return ResponseEntity.ok(list);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return ResponseEntity.badRequest().body("Error al obtener los centros activos: " + e.getMessage());
-        }
-    }
+    @Autowired
+    private IndicadorEnquestaService ies;
 
     /*
      * Endpoint for getTitulacions
      */
-    @GetMapping("/getTitulacions")
-    public ResponseEntity<?> getTitulacions() {
+    @GetMapping("/getTitulacionsWithCentre")
+    public ResponseEntity<?> getTitulacionsWithCentre() {
         try {
             List<OrganDTO> list = os.findAllTitulacionsWithCentre();
-
             return ResponseEntity.ok(list);
         } catch (Exception e) {
             e.printStackTrace();
@@ -58,12 +48,13 @@ public class OrganController {
     /*
      * Endopint for findByRuct
      */
-    @PostMapping("/findByRuct/{ruct}")
-    public ResponseEntity<?> findByRuct(@PathVariable Integer ruct) {
+    @GetMapping("/getAllIndsByRuct/{ruct}/{curs}")
+    public ResponseEntity<?> getAllIndsByRuct(@PathVariable Integer ruct, @PathVariable Integer curs) {
         try {
-            Organ organ = os.findByRuct(ruct);
+            Organ o = os.findByRuct(ruct); 
+            List<IndicadorEnquesta> inds = ies.getAllInds(o, curs);
 
-            return ResponseEntity.ok(organ);
+            return ResponseEntity.ok(inds);
         } catch (Exception e) {
             e.printStackTrace();
             return ResponseEntity.badRequest().body("Error al obtener el organo por ruct: " + e.getMessage());

+ 2 - 2
src/main/resources/templates/dataCurrent.html

@@ -85,13 +85,13 @@
 						<div class="col-6">
 							<label th:text="#{data.input.cen}">Centre(s)</label>
 							<select class="selectpicker" id="centresSelector" name="centre" data-live-search="true" data-width="100%" data-actions-box="true" th:attr="data-none-selected-text=#{global.selectors.noData}" required>
-						        <option th:each="item : ${centres}" th:if="${item.tlugar == 'C'}" th:text="${#locale.language} == 'es' ? ${item.nomCas}:${item.nomVal}" th:attr="value=${item.ruct}, data-tlugar=${item.tlugar}, data-parent=${item.ruct}"></option>
+						        <option th:each="item : ${data}" th:if="${item.tlugar == 'C'}" th:text="${#locale.language} == 'es' ? ${item.nomCas2}:${item.nomVal2}" th:attr="value=${item.ruct2}, data-tlugar=${item.tlugar2}, data-parent=${item.ruct2}"></option>
 						    </select>
 						</div>
 						<div class="col-6">
 							<label th:text="#{data.input.tit}">Titulació(ns)</label>
 							<select class="selectpicker" id="titulacionsSelector" name="titulacio" data-live-search="true" data-width="100%" data-actions-box="true" required>
-						        <option th:each="item : ${titulacions}" th:if="${item.tlugar == 'T'}" th:text="${#locale.language} == 'es' ? ${item.nomCas}:${item.nomVal}" th:attr="value=${item.ruct}, data-tlugar=${item.tlugar}, data-parent=${item.ruct}"></option>
+						        <option th:each="item : ${data}" th:if="${item.tlugar == 'T'}" th:text="${#locale.language} == 'es' ? ${item.nomCas}:${item.nomVal}" th:attr="value=${item.ruct}, data-tlugar=${item.tlugar}, data-parent=${item.ruct2}"></option>
 						    </select>
 						</div>
 					</div>