|
|
@@ -0,0 +1,301 @@
|
|
|
+package es.uv.saic.web;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
+import java.net.MalformedURLException;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+import javax.xml.parsers.ParserConfigurationException;
|
|
|
+
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.web.bind.annotation.DeleteMapping;
|
|
|
+import org.springframework.web.bind.annotation.GetMapping;
|
|
|
+import org.springframework.web.bind.annotation.PathVariable;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestParam;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+import org.xml.sax.SAXException;
|
|
|
+
|
|
|
+import es.uv.saic.domain.EvidenciaIndicadorEnquesta;
|
|
|
+import es.uv.saic.domain.Indicador;
|
|
|
+import es.uv.saic.domain.IndicadorEnquesta;
|
|
|
+import es.uv.saic.dto.IndicadorDTOimp;
|
|
|
+import es.uv.saic.dto.IndicadorEnquestaDTO;
|
|
|
+import es.uv.saic.dto.IndicadorEnquestaTmpDup;
|
|
|
+import es.uv.saic.dto.IndicadorEnquestaValorDTOImp;
|
|
|
+import es.uv.saic.service.EvidenciaIndicadorEnquestaService;
|
|
|
+import es.uv.saic.service.IndicadorEnquestaService;
|
|
|
+import es.uv.saic.service.IndicadorEnquestaTmpService;
|
|
|
+import es.uv.saic.service.IndicadorService;
|
|
|
+
|
|
|
+@RestController
|
|
|
+@RequestMapping("/indicadorEnquesta")
|
|
|
+public class IndicadorController {
|
|
|
+ @Autowired
|
|
|
+ private IndicadorService is;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IndicadorEnquestaService ies;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IndicadorEnquestaTmpService iets;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private EvidenciaIndicadorEnquestaService eies;
|
|
|
+
|
|
|
+ @GetMapping("/{ruct}/{curs}")
|
|
|
+ public List<IndicadorEnquesta> getAllIndsByRuct(@PathVariable Integer ruct, @PathVariable Integer curs) {
|
|
|
+ return ies.getAllIndsByRuct(ruct, curs);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Endpoint para la funcion deleteByEnquestaCursAmbitEstudi de iets
|
|
|
+ */
|
|
|
+ @DeleteMapping("/{enquesta}/{curs}/{ambit}/{estudi}")
|
|
|
+ public Integer deleteByEnquestaCursAmbitEstudi(@PathVariable("enquesta") String enquesta, @PathVariable("curs") Integer curs,
|
|
|
+ @PathVariable("ambit") String ambit, @PathVariable("estudi") String estudi) {
|
|
|
+
|
|
|
+ Integer i = 0;
|
|
|
+ try {
|
|
|
+ i = iets.deleteByEnquestaCursAmbitEstudi(enquesta, curs, ambit, estudi);
|
|
|
+
|
|
|
+ } catch(Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return i;
|
|
|
+ }
|
|
|
+
|
|
|
+ @DeleteMapping("/{enquesta}")
|
|
|
+ public Integer deleteByEnquesta(@PathVariable("enquesta") String enquesta) {
|
|
|
+ return iets.deleteByEnquesta(enquesta);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Endpoint para la funcion deleteFromCurrent de iets, dev
|
|
|
+ */
|
|
|
+ @DeleteMapping("/current/{enquesta}")
|
|
|
+ public Integer deleteFromCurrent(@PathVariable("enquesta") String enquesta) {
|
|
|
+ return iets.deleteFromCurrent(enquesta);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Endpoint para la funcion deleteFromPending de iets
|
|
|
+ */
|
|
|
+ @DeleteMapping("/pending/{enquesta}")
|
|
|
+ public Integer deleteFromPending(@PathVariable("enquesta") String enquesta) {
|
|
|
+ return iets.deleteFromPending(enquesta);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Endpoint para la funcion deleteDuplicates de iets
|
|
|
+ */
|
|
|
+ @DeleteMapping("/duplicates/{enquesta}")
|
|
|
+ public Integer deleteDuplicates(@PathVariable("enquesta") String enquesta) {
|
|
|
+ return iets.deleteDuplicates(enquesta);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Endpoint para la funcion findByEnquestaCursAmbitEstudi de ies
|
|
|
+ */
|
|
|
+ @PostMapping("/{enquesta}/{curs}/{ambit}/{estudi}")
|
|
|
+ public List<IndicadorEnquesta> findByEnquestaCursAmbitEstudi(@PathVariable("enquesta") String enquesta, @PathVariable("curs") Integer curs,
|
|
|
+ @PathVariable("ambit") String ambit, @PathVariable("estudi") String estudi) {
|
|
|
+ return ies.findByEnquestaCursAmbitEstudi(enquesta, curs, ambit, estudi);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Endpoing para la función findByEnquestaCursAmbitEstudiCentre
|
|
|
+ */
|
|
|
+ @PostMapping("/{enquesta}/{curs}/{ambit}/{estudi}/{centre}")
|
|
|
+ public List<IndicadorEnquesta> findByEnquestaCursAmbitEstudiCentre(@PathVariable("enquesta") String enquesta, @PathVariable("curs") Integer curs,
|
|
|
+ @PathVariable("ambit") String ambit, @PathVariable("estudi") String estudi, @PathVariable("centre") Integer centre) {
|
|
|
+ return ies.findByEnquestaCursAmbitEstudiCentre(enquesta, curs, ambit, estudi, centre);
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/{enquesta}/{curs}/{ambit}/{estudi}/{centre}/{titulacio}")
|
|
|
+ public List<IndicadorEnquesta> findByEnquestaCursAmbitEstudiCentreTitulacio(@PathVariable("enquesta") String enquesta, @PathVariable("curs") Integer curs,
|
|
|
+ @PathVariable("ambit") String ambit, @PathVariable("estudi") String estudi, @PathVariable("centre") Integer centre,
|
|
|
+ @PathVariable("titulacio") Integer titulacio) {
|
|
|
+ return ies.findByEnquestaCursAmbitEstudiCentreTitulacio(enquesta, curs, ambit, estudi, centre, titulacio);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Endpoint para la funcion getFromTitulacion de ies
|
|
|
+ */
|
|
|
+ @GetMapping("/getFromTitulacio/{idTitulacio}/{curs}")
|
|
|
+ public List<Indicador> getFromTitulacion(@PathVariable Integer idTitulacio, @PathVariable Integer curs)
|
|
|
+ throws ParserConfigurationException, MalformedURLException, IOException, SAXException {
|
|
|
+
|
|
|
+ return is.getFromTitulacion(idTitulacio, curs);
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/save")
|
|
|
+ public void save(@RequestBody EvidenciaIndicadorEnquesta eie) {
|
|
|
+ eies.save(eie);
|
|
|
+ }
|
|
|
+
|
|
|
+ @GetMapping("/count/{enquesta}")
|
|
|
+ public Integer countByEnquesta(@PathVariable String enquesta) {
|
|
|
+ return iets.countByEnquesta(enquesta);
|
|
|
+ }
|
|
|
+
|
|
|
+ @GetMapping("/checkDuplicates/{enquesta}")
|
|
|
+ public List<IndicadorEnquestaTmpDup> checkDuplicates(@PathVariable String enquesta) {
|
|
|
+ return iets.checkDuplicates(enquesta);
|
|
|
+ }
|
|
|
+
|
|
|
+ @GetMapping("/checkIntegrity/{enquesta}")
|
|
|
+ public List<IndicadorEnquestaTmpDup> checkIntegrity(@PathVariable String enquesta) {
|
|
|
+ return iets.checkIntegrity(enquesta);
|
|
|
+ }
|
|
|
+
|
|
|
+ @GetMapping("/consolidate/{enquesta}")
|
|
|
+ public Integer consolidateByEnquesta(@PathVariable String enquesta) {
|
|
|
+ return ies.consolidateByEnquesta(enquesta);
|
|
|
+ }
|
|
|
+
|
|
|
+ @GetMapping
|
|
|
+ public List<String> findTypes() {
|
|
|
+ return ies.findTypes();
|
|
|
+ }
|
|
|
+
|
|
|
+ @GetMapping("/graph/{lugar}")
|
|
|
+ public List<Indicador> getGraphData(@PathVariable Integer lugar) {
|
|
|
+ return is.getGraphData(lugar);
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/graph/centre")
|
|
|
+ public List<IndicadorDTOimp> getGraphData(@RequestParam Integer centre, @RequestParam String tambit, @RequestParam Integer year) {
|
|
|
+ return ies.getGraphData(centre, tambit, year).stream().map(ind -> new IndicadorDTOimp(ind)).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/graph/titulacions")
|
|
|
+ public List<IndicadorDTOimp> getGraphData(@RequestParam List<Integer> tits, @RequestParam Integer centre, @RequestParam String tambit, @RequestParam Integer year) {
|
|
|
+ return ies.getGraphData(tits, centre, tambit, year).stream().map(ind -> new IndicadorDTOimp(ind)).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ @DeleteMapping("/{proces}/{enquesta}")
|
|
|
+ public void deleteByProcesEnquesta(@PathVariable String proces, @PathVariable String enquesta) {
|
|
|
+ eies.removeByProcesEvidencia(proces, enquesta);
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/templatedata")
|
|
|
+ public void getTemplateData(@RequestParam Integer idTitulacio, @RequestParam Integer idCentre, @RequestParam Integer curs, @RequestParam HashMap<String, Object> context) {
|
|
|
+
|
|
|
+ /* Indicadores del data warehouse */
|
|
|
+ try {
|
|
|
+ List<Indicador> indicadores;
|
|
|
+ indicadores = is.getFromTitulacion(idTitulacio, curs);
|
|
|
+ for(Indicador i : indicadores) {
|
|
|
+ context.put(i.getIndicador(), i.getValor());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch(Exception e) { }
|
|
|
+
|
|
|
+ /* Indicadores de encuestas y otros almacenados en BD */
|
|
|
+ IndicadorEnquestaDTO indicadorEnquestaDTO = new IndicadorEnquestaDTO(idTitulacio, idCentre, curs);
|
|
|
+ List<IndicadorEnquestaValorDTOImp> enquestesT = ies.getAllInds(indicadorEnquestaDTO.getIdTitulacio(), indicadorEnquestaDTO.getIdCentre(), indicadorEnquestaDTO.getCurs(), ies.getRuctTitulacio(idTitulacio))
|
|
|
+ .stream()
|
|
|
+ .map(ind -> new IndicadorEnquestaValorDTOImp(ind))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ for(IndicadorEnquestaValorDTOImp i : enquestesT) {
|
|
|
+ String indicador = i.getAmbit().toLowerCase().equals("t") ? (i.getEnquesta().toLowerCase()+"_"+i.getIndicador().toLowerCase()) : (i.getEnquesta().toLowerCase()+"_"+i.getIndicador().toLowerCase()+"_"+i.getAmbit().toLowerCase());
|
|
|
+ if(i.getNum() == null) {
|
|
|
+ indicador = i.getTipus().toLowerCase().equals("avg") ? indicador : (indicador += "_"+i.getTipus().toLowerCase());
|
|
|
+ indicador = i.getCursd() == null ? indicador : (indicador += "_"+i.getCursd().toLowerCase());
|
|
|
+ context.put(indicador, formatValue(i.getValor()));
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ context.put(indicador, i.getNum());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @PostMapping("/download/templatedata")
|
|
|
+ public HashMap<String, String> getTemplateData(@RequestParam Integer idTitulacio, @RequestParam Integer idCentre, @RequestParam Integer curs, @RequestParam Integer ruct) {
|
|
|
+ HashMap<String, String> context = new HashMap<String, String>();
|
|
|
+
|
|
|
+ /* Indicadores del data warehouse */
|
|
|
+ try {
|
|
|
+ List<Indicador> indicadores;
|
|
|
+ indicadores = is.getFromTitulacion(idTitulacio, curs);
|
|
|
+ for(Indicador i : indicadores) {
|
|
|
+ context.put(i.getIndicador(), i.getValor());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch(Exception e) { }
|
|
|
+
|
|
|
+ /* Indicadores de encuestas */
|
|
|
+ List<IndicadorEnquestaValorDTOImp> enquestesT;
|
|
|
+ IndicadorEnquestaDTO iEnquestaDTO = new IndicadorEnquestaDTO(idTitulacio, idCentre, curs);
|
|
|
+ enquestesT = ies.getAllInds(iEnquestaDTO.getIdTitulacio(), iEnquestaDTO.getIdCentre(), iEnquestaDTO.getCurs(), ies.getRuctTitulacio(idTitulacio)).stream()
|
|
|
+ .map(ind -> new IndicadorEnquestaValorDTOImp(ind))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ for(IndicadorEnquestaValorDTOImp i : enquestesT) {
|
|
|
+ String indicador = i.getAmbit().equals("t") ? (i.getEnquesta()+"_"+i.getIndicador()) : (i.getEnquesta()+"_"+i.getIndicador()+"_"+i.getAmbit());
|
|
|
+ indicador = i.getTipus().equals("avg") ? indicador : (indicador += "_"+i.getTipus());
|
|
|
+ indicador = i.getCursd() == null ? indicador : (indicador += "_"+i.getCursd());
|
|
|
+ context.put(indicador, formatValue(i.getValor()));
|
|
|
+ }
|
|
|
+
|
|
|
+ return context;
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/templatedata/array")
|
|
|
+ public HashMap<String, String> getTemplateDataArray(@RequestParam Integer idTitulacio, @RequestParam Integer idCentre, @RequestParam Integer curs) {
|
|
|
+ HashMap<String, String> info = new HashMap<String, String>();
|
|
|
+
|
|
|
+ /* Indicadores del data warehouse */
|
|
|
+ try {
|
|
|
+ List<Indicador> indicadores;
|
|
|
+ indicadores = is.getFromTitulacion(idTitulacio, curs);
|
|
|
+ for(Indicador i : indicadores) {
|
|
|
+ info.put(i.getIndicador(), i.getValor());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch(Exception e) { }
|
|
|
+
|
|
|
+ /* Indicadores de encuestas */
|
|
|
+ List<IndicadorEnquestaValorDTOImp> enquestesT;
|
|
|
+ IndicadorEnquestaDTO iEnquestaDTO = new IndicadorEnquestaDTO(idTitulacio, idCentre, curs);
|
|
|
+ enquestesT = ies.getAllInds(iEnquestaDTO.getIdTitulacio(), iEnquestaDTO.getIdCentre(), iEnquestaDTO.getCurs(), ies.getRuctTitulacio(idTitulacio)).stream()
|
|
|
+ .map(ind -> new IndicadorEnquestaValorDTOImp(ind))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ for(IndicadorEnquestaValorDTOImp i : enquestesT) {
|
|
|
+ String indicador = i.getAmbit().equals("t") ? (i.getEnquesta()+"_"+i.getIndicador()) : (i.getEnquesta()+"_"+i.getIndicador()+"_"+i.getAmbit());
|
|
|
+ indicador = i.getTipus().equals("avg") ? indicador : (indicador += "_"+i.getTipus());
|
|
|
+ indicador = i.getCursd() == null ? indicador : (indicador += "_"+i.getCursd());
|
|
|
+ info.put(indicador, formatValue(i.getValor()));
|
|
|
+ }
|
|
|
+
|
|
|
+ return info;
|
|
|
+ }
|
|
|
+
|
|
|
+ private String formatValue(String v) {
|
|
|
+ if(v == null) return "";
|
|
|
+ if(v.equals("NP")) return "NP";
|
|
|
+ if(v.isEmpty() | v.isBlank()) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
+ try{
|
|
|
+ return String.format("%.2f", Float.parseFloat(v)).replace(",", ".");
|
|
|
+ }
|
|
|
+ catch(NumberFormatException e){ }
|
|
|
+
|
|
|
+ try{
|
|
|
+ return Integer.toString(Integer.parseInt(v));
|
|
|
+ }
|
|
|
+ catch(NumberFormatException e){ }
|
|
|
+
|
|
|
+ return v;
|
|
|
+ }
|
|
|
+}
|