Browse Source

PlantillaController.java fully added

Drowsito 4 weeks ago
parent
commit
ff0aa4f1ca

+ 9 - 0
src/main/java/es/uv/saic/dto/InstanciaDTO.java

@@ -26,6 +26,7 @@ public class InstanciaDTO implements Serializable {
 	private String nomval;
 	private String nomcas;
 	private Integer cursAvaluat;
+	private String nomValTitulacio;
 
 	public InstanciaDTO() {}
 	
@@ -45,6 +46,7 @@ public class InstanciaDTO implements Serializable {
 		this.nomval = i.getOrgan().getOrgan().getNomVal();
 		this.nomcas = i.getOrgan().getNomCas();
 		this.cursAvaluat = i.getProces().getCursAvaluat();
+		this.nomValTitulacio = i.getOrgan().getNomVal();
 		
 		String icon = "<span class=\"btn gantt-legend-done\" style=\"border-width:5px;border-radius:50%;width:20px;height:20px;margin-top:-2px\"></span>";
 		if(this.estat.equals("A")) {
@@ -185,4 +187,11 @@ public class InstanciaDTO implements Serializable {
 		this.cursAvaluat = cursAvaluat;
 	}
 
+	public String getNomValTitulacio() {
+		return nomValTitulacio;
+	}
+
+	public void setNomValTitulacio(String nomValTitulacio) {
+		this.nomValTitulacio = nomValTitulacio;
+	}
 }

+ 14 - 0
src/main/java/es/uv/saic/dto/PdfDTO.java

@@ -6,6 +6,7 @@ import java.util.Optional;
 public class PdfDTO {
     private String content;
     private Optional<BigInteger> idtascai;
+    private BigInteger idtasca;
     
     public PdfDTO() {}
 
@@ -14,6 +15,11 @@ public class PdfDTO {
         this.idtascai = idtascai;
     }
 
+    public PdfDTO(String content, BigInteger idtasca) {
+        this.content = content;
+        this.idtasca = idtasca;
+    }
+
     public String getContent() {
         return content;
     }
@@ -29,4 +35,12 @@ public class PdfDTO {
     public void setIdtascai(Optional<BigInteger> idtascai) {
         this.idtascai = idtascai;
     }
+
+    public BigInteger getIdtasca() {
+        return idtasca;
+    }
+
+    public void setIdtasca(BigInteger idtasca) {
+        this.idtasca = idtasca;
+    }
 }

+ 12 - 2
src/main/java/es/uv/saic/dto/TascaDTO.java

@@ -8,16 +8,17 @@ public class TascaDTO {
     private String codiEvidencia;
     private Integer tipus;
     private String nomEvidenciaCas;
-
+    private String opcions;
     
     public TascaDTO() {
     }
 
-    public TascaDTO(Integer idTasca, String codiEvidencia, Tipus tipus, String nomEvidenciaCas) {
+    public TascaDTO(Integer idTasca, String codiEvidencia, Tipus tipus, String nomEvidenciaCas, String opcions) {
         this.idTasca = idTasca;
         this.codiEvidencia = codiEvidencia;
         this.tipus = tipus.getTipus();
         this.nomEvidenciaCas = nomEvidenciaCas;
+        this.opcions = opcions;
     }
 
     public TascaDTO(Tasca tasca) {
@@ -25,6 +26,7 @@ public class TascaDTO {
         this.codiEvidencia = tasca.getCodiEvidencia();
         this.tipus = tasca.getTipus().getTipus();
         this.nomEvidenciaCas = tasca.getNomEvidenciaCas();
+        this.opcions = tasca.getOpcions();
     }
 
     public Integer getIdTasca() {
@@ -58,4 +60,12 @@ public class TascaDTO {
     public void setNomEvidenciaCas(String nomEvidenciaCas) {
         this.nomEvidenciaCas = nomEvidenciaCas;
     }
+
+    public String getOpcions() {
+        return opcions;
+    }
+
+    public void setOpcions(String opcions) {
+        this.opcions = opcions;
+    }
 }

+ 62 - 0
src/main/java/es/uv/saic/dto/TemplateDataDTO.java

@@ -0,0 +1,62 @@
+package es.uv.saic.dto;
+
+public class TemplateDataDTO {
+    private InstanciaTascaDTO instanciaTasca;
+    private Integer idTitulacio;
+    private Integer idCentre;
+    private Integer curs;
+    private String template;
+    
+    public TemplateDataDTO(InstanciaTascaDTO instanciaTasca, String template) {
+        this.instanciaTasca = instanciaTasca;
+        this.template = template;
+    }
+
+    public TemplateDataDTO(Integer idTitulacio, Integer idCentre, Integer curs, String template) {
+        this.idTitulacio = idTitulacio;
+        this.idCentre = idCentre;
+        this.curs = curs;
+        this.template = template;
+    }
+
+    public InstanciaTascaDTO getInstanciaTasca() {
+        return instanciaTasca;
+    }
+
+    public void setInstanciaTasca(InstanciaTascaDTO instanciaTasca) {
+        this.instanciaTasca = instanciaTasca;
+    }
+
+    public String getTemplate() {
+        return template;
+    }
+
+    public void setTemplate(String template) {
+        this.template = template;
+    }
+
+    public Integer getIdTitulacio() {
+        return idTitulacio;
+    }
+
+    public void setIdTitulacio(Integer idTitulacio) {
+        this.idTitulacio = idTitulacio;
+    }
+
+    public Integer getIdCentre() {
+        return idCentre;
+    }
+
+    public void setIdCentre(Integer idCentre) {
+        this.idCentre = idCentre;
+    }
+
+    public Integer getCurs() {
+        return curs;
+    }
+
+    public void setCurs(Integer curs) {
+        this.curs = curs;
+    }
+
+}

+ 17 - 17
src/main/java/es/uv/saic/service/PlantillaService.java

@@ -41,9 +41,9 @@ import es.uv.saic.domain.Plantilla;
 import es.uv.saic.domain.PlantillaComentario;
 import es.uv.saic.domain.PlantillaConversation;
 import es.uv.saic.domain.PlantillaRepository;
-import es.uv.saic.domain.Proces;
 import es.uv.saic.dto.IndicadorEnquestaDTO;
 import es.uv.saic.dto.IndicadorEnquestaValorDTO;
+import es.uv.saic.dto.InstanciaTascaDTO;
 import es.uv.saic.dto.NomProcesOrganDTO;
 import es.uv.saic.feign.CoreClient;
 
@@ -96,13 +96,13 @@ public class PlantillaService {
 		return false;
 	}
 	
-	public String addTemplateData(InstanciaTasca it, String template){
+	public String addTemplateData(InstanciaTascaDTO it, String template){
 		HashMap<String, String> context = new HashMap<String, String>();
 		HashMap<String, String> header = new HashMap<String, String>();
 		HashMap<String, String> img = new HashMap<String, String>();
 		 
 		Integer idTitulacio = it.getInstancia().getTitulacio();
-		Proces proces = it.getInstancia().getProces();
+		Integer cursAvaluat = it.getInstancia().getCursAvaluat();
 		Integer idCentre = it.getInstancia().getCentre();
 		String ambit = "G";
 		String opcionsStr = it.getTasca().getOpcions().replaceAll("^\\.$", "");
@@ -110,24 +110,24 @@ public class PlantillaService {
 		if(!opcionsStr.isEmpty()) {
 			opcions = opcionsStr.split(";");
 		}
-		if(it.getInstancia().getOrgan().getId().getTlugar().equals("C")) {
+		if(it.getInstancia().getTlugar().equals("C")) {
 			if(it.getInstancia().getTitulacio() == 2) {
 				ambit = "M";
 			}
 		}
 		
 		/** Add header information **/
-		addHeaderData(it.getInstancia().getOrgan().getOrgan(), it.getInstancia().getOrgan(), it.getInstancia().getProces().getCursAvaluat(), header, img);
+		addHeaderData(it.getInstancia().getNomval(), it.getInstancia().getLugar(), it.getInstancia().getNomValTitulacio(), it.getInstancia().getCursAvaluat(), header, img);
 		
 		/** Iterate elements inside {[loop]} ... {[endloop]} **/
-		template = this.iterateLoopTag(template, idCentre, ambit, proces.getCursAvaluat(), context);
+		template = this.iterateLoopTag(template, idCentre, ambit, cursAvaluat, context);
 		
 		/** Iterate elements with data-loop attribute **/
 		Document doc = Jsoup.parse(template);
-		doc = iterateLoopAttr(idCentre, proces.getCursAvaluat(), doc, context);
+		doc = iterateLoopAttr(idCentre, cursAvaluat, doc, context);
 		
 		/** Add template data (non iterated data)**/
-		getTemplateData(idTitulacio, idCentre, proces.getCursAvaluat(), context);	
+		getTemplateData(idTitulacio, idCentre, cursAvaluat, context);	
 		this.replaceValues(doc, context, header, img);
 		
 		/** Replace sections if specified in options **/
@@ -146,7 +146,7 @@ public class PlantillaService {
 		Organ titulacio = core.findOrganById("T", idTitulacio);
 		
 		/** Add header information **/
-		addHeaderData(centre, titulacio, curs, header, img);
+		addHeaderData(centre.getNomVal(), centre.getId().getLugar(), titulacio.getNomVal(), curs, header, img);
 							
 		/** Iterate elements inside {[loop]} ... {[endloop]} **/
 		template = this.iterateLoopTag(template, idCentre, titulacio.getTambit(), curs, context);
@@ -162,9 +162,9 @@ public class PlantillaService {
 		return doc.html();	
 	}
 	
-	private void addHeaderData(Organ centre, Organ titulacio, Integer curs, HashMap<String, String> header, HashMap<String, String> img) {
-		header.put("centre", centre.getNomVal());
-		header.put("titulacio", titulacio.getNomVal());
+	private void addHeaderData(String nomVal, Integer lugar, String nomValTitulacion, Integer curs, HashMap<String, String> header, HashMap<String, String> img) {
+		header.put("centre", nomVal);
+		header.put("titulacio", nomValTitulacion);
 		header.put("curs", "CURSO "+Integer.toString(curs-1)+" - "+Integer.toString(curs));
 		header.put("curs_anterior", Integer.toString(curs-2)+" - "+Integer.toString(curs-1));
 		header.put("conv-ant1", "CONVOCATORIA "+Integer.toString(curs-1)+" - "+Integer.toString(curs));
@@ -172,7 +172,7 @@ public class PlantillaService {
 		header.put("periode-ant1", Integer.toString(curs-6)+" - "+Integer.toString(curs-1));
 		header.put("periode-ant2", Integer.toString(curs-7)+" - "+Integer.toString(curs-2));
 		ClassPathResource fuv = new ClassPathResource("/static/logos/UV.png");
-		ClassPathResource fc = new ClassPathResource("/static/logos/C"+Integer.toString(centre.getId().getLugar())+".png");
+		ClassPathResource fc = new ClassPathResource("/static/logos/C"+Integer.toString(lugar)+".png");
 		String logouv_b64;
 		String logoc_b64;
 		try {
@@ -183,7 +183,7 @@ public class PlantillaService {
 		try {
 			logoc_b64 = "data:image/png;base64, "+Base64.getEncoder().encodeToString(fc.getInputStream().readAllBytes());
 		} catch (IOException e) {
-			logoc_b64 = "https://saic.uv.es/public/logos/C"+Integer.toString(centre.getId().getLugar())+".png";
+			logoc_b64 = "https://saic.uv.es/public/logos/C"+Integer.toString(lugar)+".png";
 		}
 		img.put("logo_centre", logoc_b64);
 		img.put("logo_uv", logouv_b64);
@@ -563,11 +563,11 @@ public class PlantillaService {
 		return "";
 	}
 	
-	public Document replaceSection(String[] opcions, InstanciaTasca it, Document doc) {
+	public Document replaceSection(String[] opcions, InstanciaTascaDTO it, Document doc) {
 		if(opcions.length > 0) {
 			NomProcesOrganDTO nomProcesOrganDTO = new NomProcesOrganDTO(opcions[0], 
-																		it.getInstancia().getOrgan().getId().getTlugar(), 
-																		it.getInstancia().getOrgan().getId().getLugar(), 
+																		it.getInstancia().getTlugar(), 
+																		it.getInstancia().getLugar(), 
 																		it.getInstancia().getCentre(), 
 																		it.getInstancia().getTitulacio());
 			InstanciaTasca itOld = core.getReportFromNomProcesOrgan(nomProcesOrganDTO);

+ 109 - 19
src/main/java/es/uv/saic/web/PlantillaController.java

@@ -1,19 +1,21 @@
 package es.uv.saic.web;
 
-import java.math.BigInteger;
+import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.RestController;
 
-import es.uv.saic.domain.InstanciaTasca;
 import es.uv.saic.domain.Plantilla;
 import es.uv.saic.dto.PdfDTO;
+import es.uv.saic.dto.TemplateDataDTO;
 import es.uv.saic.service.PlantillaService;
 
 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.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
 
 
 @RestController
@@ -21,28 +23,116 @@ public class PlantillaController {
     @Autowired
     private PlantillaService ps;
 
-    @PostMapping("/toPDF")
-    public ResponseEntity<?> toPDF(@RequestBody PdfDTO pdfDTO) {
+    @GetMapping("/plantilla")
+    public ResponseEntity<?> findAll() {
         try {
-            byte[] pdf = ps.toPDF(pdfDTO.getContent(), pdfDTO.getIdtascai());  
-            return (pdf != null && pdf.length != 0) ? ResponseEntity.ok(pdf) : ResponseEntity.badRequest().body("El pdf esta vacio o es null");
+            List<Plantilla> plantillas = ps.findAll();
+
+             return (plantillas != null) ? ResponseEntity.ok(plantillas) : 
+                ResponseEntity.badRequest().body("No existen plantillas") ;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResponseEntity.badRequest().body("No se han podido recoger las plantillas: " + e.getMessage());
+        }
+    }
+
+    @GetMapping("/plantilla/{id}")
+    public ResponseEntity<?> findByID(@PathVariable Integer id) {
+        try {
+            Plantilla plantilla = ps.findByID(id);
+
+             return (plantilla != null) ? ResponseEntity.ok(plantilla) : 
+                ResponseEntity.badRequest().body("No existe la plantilla buscada") ;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResponseEntity.badRequest().body("No se ha podido recoger la plantilla " + e.getMessage());
+        }
+    }
+    
+    @GetMapping("/plantilla/{versio}/{codi}/{ambit}")
+    public ResponseEntity<?> findByVersioCodiAmbit(@PathVariable Integer versio,
+        @PathVariable String codi,
+        @PathVariable String ambit) {
+        try {
+            Plantilla plantilla = ps.findByVersioCodiAmbit(versio, codi, ambit);
+
+             return (plantilla != null) ? ResponseEntity.ok(plantilla) : 
+                ResponseEntity.badRequest().body("No existe la plantilla buscada") ;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResponseEntity.badRequest().body("No se ha podido recoger la plantilla " + e.getMessage());
+        }
+    }
+
+    @PostMapping("/plantilla/save")
+    public ResponseEntity<?> save(@RequestBody Plantilla plantilla) {
+        try {
+            ps.save(plantilla);
+            return ResponseEntity.ok("Save");
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResponseEntity.badRequest().body("Error guardando la plantilla: " + e.getMessage());
+        }
+    }
+    
+    @DeleteMapping("/plantilla/delete")
+    public ResponseEntity<?> delete(@RequestBody Plantilla plantilla) {
+        try {
+            ps.delete(plantilla);
+            return ResponseEntity.ok("Delete");
         } catch (Exception e) {
-             e.printStackTrace();
-            return ResponseEntity.badRequest().body("Error al pdf:" +  e.getMessage());
+            e.printStackTrace();
+            return ResponseEntity.badRequest().body("Error borrando la plantilla: " + e.getMessage());
         }
     }
     
-    // @PostMapping("/plantilla/{id}")
-    // public ResponseEntity<?> findByID(@PathVariable BigInteger idPlantilla) {
-    //     try {
-    //         InstanciaTasca plantilla = ps.findById(idPlantilla);
-            
-    //     } catch (Exception e) {
-    //         // TODO: handle exception
-    //     }
-        
-    //     return entity;
-    // }
+    @GetMapping("/plantilla/used/{id}")
+    public ResponseEntity<?> isUsed(@PathVariable Integer id) {
+        try {
+            Boolean isUsed = ps.isUsed(id);
+
+             return (isUsed != null) ? ResponseEntity.ok(isUsed) : 
+                ResponseEntity.badRequest().body("No existe la plantilla que se esta buscando") ;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResponseEntity.badRequest().body("No se ha podido comprobar si la plantilla es usada: " + e.getMessage());
+        }
+    }
+
+    @PostMapping("/addTemplateData")
+    public ResponseEntity<?> addTemplateData(@RequestBody TemplateDataDTO td) {
+        try {
+            String template = ps.addTemplateData(td.getInstanciaTasca(), td.getTemplate());        
+            return (template != null) ? ResponseEntity.ok(template) : 
+                ResponseEntity.badRequest().body("La plantilla no se ha podido rellenar.") ; 
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResponseEntity.badRequest().body("La plantilla no se ha podido rellenar: " + e.getMessage());
+        }
+    }
     
+    @PostMapping("/addTemplateData2")
+    public ResponseEntity<?> addTemplateData2(@RequestBody TemplateDataDTO td) {
+        try {
+            String template = ps.addTemplateData(td.getIdTitulacio(), td.getIdCentre(), td.getCurs(), td.getTemplate());        
+            return (template != null) ? ResponseEntity.ok(template) : 
+                ResponseEntity.badRequest().body("La plantilla no se ha podido rellenar.") ; 
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResponseEntity.badRequest().body("La plantilla no se ha podido rellenar: " + e.getMessage());
+        }
+    }
+
+    @PostMapping("/savePDF")
+    public ResponseEntity<?> savePDF(@RequestBody PdfDTO pdf) {
+        try {
+            String dst = ps.savePDF(pdf.getContent(), pdf.getIdtasca());        
+            return (dst != null) ? ResponseEntity.ok(dst) : 
+                ResponseEntity.badRequest().body("La plantilla no se ha podido rellenar.") ; 
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResponseEntity.badRequest().body("La plantilla no se ha podido rellenar: " + e.getMessage());
+        }
+    }
     
 }