|
|
@@ -2,17 +2,12 @@ package es.uv.saic.web;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.io.PrintWriter;
|
|
|
-import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
|
|
|
|
|
-import org.jsoup.Jsoup;
|
|
|
-import org.jsoup.nodes.Document;
|
|
|
-import org.jsoup.nodes.Element;
|
|
|
-import org.jsoup.select.Elements;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.security.core.Authentication;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
@@ -20,17 +15,14 @@ import org.springframework.ui.Model;
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
|
|
|
|
|
-import es.uv.saic.domain.Instancia;
|
|
|
-import es.uv.saic.domain.InstanciaTasca;
|
|
|
-import es.uv.saic.domain.Proces;
|
|
|
import es.uv.saic.domain.Usuari;
|
|
|
-import es.uv.saic.service.ProcesService;
|
|
|
+import es.uv.saic.feign.ExportClient;
|
|
|
|
|
|
@Controller
|
|
|
public class ExportController {
|
|
|
|
|
|
@Autowired
|
|
|
- private ProcesService ps;
|
|
|
+ private ExportClient ec;
|
|
|
|
|
|
/*
|
|
|
* Export data for a given process and task as CSV
|
|
|
@@ -47,54 +39,12 @@ public class ExportController {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ List<String[]> lines = ec.exportData(id_p, id_t);
|
|
|
response.setContentType("text/csv");
|
|
|
response.setCharacterEncoding("UTF-8");
|
|
|
response.setHeader("Content-Disposition", "attachment; filename=data_export.csv");
|
|
|
|
|
|
PrintWriter pw = response.getWriter();
|
|
|
- Proces p = this.ps.findByID(id_p);
|
|
|
- List<Instancia> ins = p.getInstancies();
|
|
|
- List<String[]> lines = new ArrayList<>();
|
|
|
- if(p.getNomProces().equals("SAEM")) {
|
|
|
- String[] header = {"centre", "titulacio", "codi", "nom", "obs", "per"};
|
|
|
- lines.add(header);
|
|
|
- }
|
|
|
- else {
|
|
|
- String[] header = {"centre", "titulacio", "cod_assignatura_1er", "nom_assignatura_1er", "obs_assignatura_1er", "cod_assignatura_3er", "nom_assignatura_3er", "obs_assignatura_3er"};
|
|
|
- lines.add(header);
|
|
|
- }
|
|
|
-
|
|
|
- for(Instancia i : ins) {
|
|
|
- InstanciaTasca it = i.getInstanciaTasca().stream()
|
|
|
- .filter(c -> id_t.equals(c.getTasca().getIdTascap()))
|
|
|
- .findAny()
|
|
|
- .orElse(null);
|
|
|
- if(it == null) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- if(it.getEstat() == null){
|
|
|
- continue;
|
|
|
- }
|
|
|
- if(!it.getEstat().equals("E")){
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- Document doc = Jsoup.parseBodyFragment(it.getText());
|
|
|
-
|
|
|
- Elements elements = doc.select("p.western.mceEditable");
|
|
|
- int j = 2;
|
|
|
- int size = lines.get(0).length;
|
|
|
- String[] line = new String[size];
|
|
|
- line[0] = i.getCentre().toString();
|
|
|
- line[1] = i.getTitulacio().toString();
|
|
|
- for(Element e : elements) {
|
|
|
- line[j] = e.text();
|
|
|
- j++;
|
|
|
- }
|
|
|
-
|
|
|
- lines.add(line);
|
|
|
-
|
|
|
- }
|
|
|
|
|
|
lines.stream()
|
|
|
.map(this::convertToCSV)
|
|
|
@@ -205,54 +155,13 @@ public class ExportController {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ List<String[]> lines = ec.exportData2(id_p, id_t);
|
|
|
response.setContentType("text/csv");
|
|
|
response.setCharacterEncoding("UTF-8");
|
|
|
response.setHeader("Content-Disposition", "attachment; filename=data_export.csv");
|
|
|
|
|
|
PrintWriter pw = response.getWriter();
|
|
|
- Proces p = this.ps.findByID(id_p);
|
|
|
- List<Instancia> ins = p.getInstancies();
|
|
|
- List<String[]> lines = new ArrayList<>();
|
|
|
- String[] header = {"centre", "titulacio", "nom", "cognoms", "email"};
|
|
|
- lines.add(header);
|
|
|
-
|
|
|
- for(Instancia i : ins) {
|
|
|
- InstanciaTasca it = i.getInstanciaTasca().stream()
|
|
|
- .filter(c -> c.getTasca().getIdTascap().compareTo(id_t) == 0)
|
|
|
- .findAny()
|
|
|
- .orElse(null);
|
|
|
-
|
|
|
- if(it == null) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- if(it.getEstat().isEmpty() || it.getEstat().isBlank()){
|
|
|
- continue;
|
|
|
- }
|
|
|
- if(!it.getEstat().equals("E")){
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- Document doc = Jsoup.parseBodyFragment(it.getText());
|
|
|
- int size = lines.get(0).length;
|
|
|
|
|
|
- Elements rows = doc.getElementsByTag("tr");
|
|
|
- for(Element row : rows) {
|
|
|
- Elements cells = row.getElementsByTag("td");
|
|
|
- if(cells.get(0).text().equals("NOM")) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- String[] line = new String[size];
|
|
|
- if(!cells.get(1).text().isEmpty()) {
|
|
|
- line[0] = i.getCentre().toString();
|
|
|
- line[1] = i.getTitulacio().toString();
|
|
|
- line[2] = cells.get(0).text();
|
|
|
- line[3] = cells.get(1).text();
|
|
|
- line[4] = cells.get(2).text();
|
|
|
- lines.add(line);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
lines.stream()
|
|
|
.map(this::convertToCSV)
|
|
|
.forEach(pw::println);
|