|
@@ -59,6 +59,7 @@ import es.uv.saic.service.TascaService;
|
|
|
import es.uv.saic.service.TipusService;
|
|
import es.uv.saic.service.TipusService;
|
|
|
import es.uv.saic.service.UsuariService;
|
|
import es.uv.saic.service.UsuariService;
|
|
|
import es.uv.saic.service.UsuarisRolService;
|
|
import es.uv.saic.service.UsuarisRolService;
|
|
|
|
|
+import tools.jackson.databind.ObjectMapper;
|
|
|
|
|
|
|
|
@RestController
|
|
@RestController
|
|
|
@RequestMapping("/admin")
|
|
@RequestMapping("/admin")
|
|
@@ -477,136 +478,147 @@ public class AdminController {
|
|
|
|
|
|
|
|
// PUT para la creación de un procedimiento nuevo
|
|
// PUT para la creación de un procedimiento nuevo
|
|
|
@PutMapping("/procedure")
|
|
@PutMapping("/procedure")
|
|
|
- public void newProcedure(@RequestParam Map<String, String> params,
|
|
|
|
|
- @RequestParam(name = "idTascap[]", required = false) List<String> idTascap,
|
|
|
|
|
- @RequestParam(name = "dataLimit[]", required = false) List<String> dataLimit,
|
|
|
|
|
- @RequestParam(name = "tipus[]", required = false) List<String> tipus,
|
|
|
|
|
- @RequestParam(name = "codiEvidencia[]", required = false) List<String> codiEvidencia,
|
|
|
|
|
- @RequestParam(name = "idTascaSeg[]", required = false) List<String> idTascaSeg,
|
|
|
|
|
- @RequestParam(name = "idTascaSeg2[]", required = false) List<String> idTascaSeg2,
|
|
|
|
|
- @RequestParam(name = "opcions[]", required = false) List<String> opcions,
|
|
|
|
|
- @RequestParam(name = "idRol[]", required = false) List<String> idRol,
|
|
|
|
|
- @RequestParam(name = "titolCas[]", required = false) List<String> titolCas,
|
|
|
|
|
- @RequestParam(name = "titolVal[]", required = false) List<String> titolVal,
|
|
|
|
|
- @RequestParam(name = "descripcioCas[]", required = false) List<String> descripcioCas,
|
|
|
|
|
- @RequestParam(name = "descripcioVal[]", required = false) List<String> descripcioVal,
|
|
|
|
|
- @RequestParam(name = "nomEvidenciaCas[]", required = false) List<String> nomEvidenciaCas,
|
|
|
|
|
- @RequestParam(name = "nomEvidenciaVal[]", required = false) List<String> nomEvidenciaVal,
|
|
|
|
|
- @RequestParam(name = "idPlantilla[]", required = false) List<String> idPlantilla,
|
|
|
|
|
- @RequestParam(name = "informe[]", required = false) List<Boolean> informe) {
|
|
|
|
|
-
|
|
|
|
|
|
|
+ public void newProcedure(@RequestBody ProcedureRequestDTO request) {
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DDMMYYYY);
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DDMMYYYY);
|
|
|
|
|
+ ProcesDTO procesDTO = request.getProces();
|
|
|
|
|
+ List<TascaDTO> tasquesDTO = request.getTasques();
|
|
|
|
|
+
|
|
|
Proces p = new Proces();
|
|
Proces p = new Proces();
|
|
|
- p.setIdProces(Integer.parseInt(params.get("idProces")));
|
|
|
|
|
- p.setNomProces(params.get("nomProces"));
|
|
|
|
|
- p.setVersio(params.get("versio"));
|
|
|
|
|
- p.setComentaris(params.get("comentaris"));
|
|
|
|
|
- p.setSubTitol(params.get("subTitol"));
|
|
|
|
|
- p.setAmbit(params.get("ambit"));
|
|
|
|
|
- p.setTitolCas(params.get("titolCas").equals(".") ? "" : params.get("titolCas"));
|
|
|
|
|
- p.setTitolVal(params.get("titolVal").equals(".") ? "" : params.get("titolVal"));
|
|
|
|
|
- p.setDescripcioCas(params.get("descripcioCas").equals(".") ? "" : params.get("descripcioCas"));
|
|
|
|
|
- p.setDescripcioVal(params.get("descripcioVal").equals(".") ? "" : params.get("descripcioVal"));
|
|
|
|
|
- p.setCursActivacio(Integer.parseInt(params.get("cursActivacio")));
|
|
|
|
|
- p.setCursAvaluat(Integer.parseInt(params.get("cursAvaluat")));
|
|
|
|
|
|
|
+ p.setIdProces(procesDTO.getIdProces());
|
|
|
|
|
+ p.setNomProces(procesDTO.getNomProces());
|
|
|
|
|
+ p.setVersio(procesDTO.getVersio());
|
|
|
|
|
+ p.setComentaris(procesDTO.getComentaris());
|
|
|
|
|
+ p.setSubTitol(procesDTO.getSubTitol());
|
|
|
|
|
+ p.setAmbit(procesDTO.getAmbit());
|
|
|
|
|
+ p.setTitolCas(procesDTO.getTitolCas());
|
|
|
|
|
+ p.setTitolVal(procesDTO.getTitolVal());
|
|
|
|
|
+ p.setDescripcioCas(procesDTO.getDescripcioCas());
|
|
|
|
|
+ p.setDescripcioVal(procesDTO.getDescripcioVal());
|
|
|
|
|
+ p.setCursActivacio(procesDTO.getCursActivacio());
|
|
|
|
|
+ p.setCursAvaluat(procesDTO.getCursAvaluat());
|
|
|
|
|
|
|
|
ps.save(p);
|
|
ps.save(p);
|
|
|
|
|
|
|
|
- if (idTascaSeg != null) {
|
|
|
|
|
- for (Integer i = 0; i < idTascap.size(); i++) {
|
|
|
|
|
|
|
+ if (tasquesDTO != null && !tasquesDTO.isEmpty()) {
|
|
|
|
|
+ for (TascaDTO tDto : tasquesDTO) {
|
|
|
Tasca t = new Tasca();
|
|
Tasca t = new Tasca();
|
|
|
- t.setIdTasca((p.getIdProces() * 10000) + t.getIdTascap());
|
|
|
|
|
|
|
+ t.setIdTasca((p.getIdProces() * 10000) + tDto.getIdTascap());
|
|
|
t.setProces(p);
|
|
t.setProces(p);
|
|
|
- t.setIdTascap(t.getIdTascap());
|
|
|
|
|
- t.setIdTascaSeg(Integer.parseInt(idTascaSeg.get(i)));
|
|
|
|
|
- t.setIdTascaSeg2(idTascaSeg2.get(i).equals(".") ? null : Integer.parseInt(idTascaSeg2.get(i)));
|
|
|
|
|
- t.setOpcions(opcions.get(i));
|
|
|
|
|
- t.setTitolCas(titolCas.get(i).equals(".") ? "" : titolCas.get(i).replace("[comma]", ","));
|
|
|
|
|
- t.setDescripcioCas(
|
|
|
|
|
- descripcioCas.get(i).equals(".") ? "" : descripcioCas.get(i).replace("[comma]", ","));
|
|
|
|
|
- t.setTitolVal(titolVal.get(i).equals(".") ? "" : titolVal.get(i).replace("[comma]", ","));
|
|
|
|
|
- t.setDescripcioVal(
|
|
|
|
|
- descripcioVal.get(i).equals(".") ? "" : descripcioVal.get(i).replace("[comma]", ","));
|
|
|
|
|
- t.setNomEvidenciaCas(
|
|
|
|
|
- nomEvidenciaCas.get(i).equals(".") ? "" : nomEvidenciaCas.get(i).replace("[comma]", ","));
|
|
|
|
|
- t.setNomEvidenciaVal(
|
|
|
|
|
- nomEvidenciaVal.get(i).equals(".") ? "" : nomEvidenciaVal.get(i).replace("[comma]", ","));
|
|
|
|
|
- t.setDataLim(LocalDate.parse(dataLimit.get(i), formatter));
|
|
|
|
|
- t.setTipus(tps.findOne(Integer.parseInt(tipus.get(i))));
|
|
|
|
|
- if (t.getTipus().getTipus() == 11 || t.getTipus().getTipus() == 15) {
|
|
|
|
|
- t.setCodiEvidencia(idPlantilla.get(i));
|
|
|
|
|
- } else {
|
|
|
|
|
- t.setCodiEvidencia(
|
|
|
|
|
- codiEvidencia.get(i).equals(".") ? "" : codiEvidencia.get(i).replace("[comma]", ","));
|
|
|
|
|
|
|
+ t.setIdTascap(tDto.getIdTascap());
|
|
|
|
|
+ t.setIdTascaSeg(tDto.getIdTascaSeg());
|
|
|
|
|
+ t.setIdTascaSeg2(tDto.getIdTascaSeg2());
|
|
|
|
|
+ t.setOpcions(tDto.getOpcions());
|
|
|
|
|
+ t.setTitolCas(limpiarTexto(tDto.getTitolCas()));
|
|
|
|
|
+ t.setDescripcioCas(limpiarTexto(tDto.getDescripcioCas()));
|
|
|
|
|
+ t.setTitolVal(limpiarTexto(tDto.getTitolVal()));
|
|
|
|
|
+ t.setDescripcioVal(limpiarTexto(tDto.getDescripcioVal()));
|
|
|
|
|
+ t.setNomEvidenciaCas(limpiarTexto(tDto.getNomEvidenciaCas()));
|
|
|
|
|
+ t.setNomEvidenciaVal(limpiarTexto(tDto.getNomEvidenciaVal()));
|
|
|
|
|
+ if (tDto.getDataLim() != null && !tDto.getDataLim().isEmpty()) {
|
|
|
|
|
+ t.setDataLim(LocalDate.parse(tDto.getDataLim(), formatter));
|
|
|
|
|
+ }
|
|
|
|
|
+ if (tDto.getIdTipus() != null) {
|
|
|
|
|
+ t.setTipus(tps.findOne(tDto.getIdTipus()));
|
|
|
|
|
+
|
|
|
|
|
+ if (t.getTipus().getTipus() == 11 || t.getTipus().getTipus() == 15) {
|
|
|
|
|
+ // Si es plantilla, usamos el idPlantilla del DTO
|
|
|
|
|
+ t.setCodiEvidencia(tDto.getIdPlantilla() != null ? tDto.getIdPlantilla().toString() : "");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ t.setCodiEvidencia(limpiarTexto(tDto.getCodiEvidencia()));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- t.setRol(rs.findOne(Integer.parseInt(idRol.get(i))));
|
|
|
|
|
- t.setInforme(informe.get(i));
|
|
|
|
|
|
|
+ if (tDto.getIdRol() != null) {
|
|
|
|
|
+ t.setRol(rs.findOne(tDto.getIdRol()));
|
|
|
|
|
+ }
|
|
|
|
|
+ t.setInforme(tDto.getInforme() != null ? tDto.getInforme() : false);
|
|
|
|
|
|
|
|
ts.save(t);
|
|
ts.save(t);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // POST para editar un procedimiento ya existente
|
|
|
|
|
@PostMapping("/procedure")
|
|
@PostMapping("/procedure")
|
|
|
- public void editProcedure(@RequestBody ProcedureRequestDTO resquest) {
|
|
|
|
|
- ProcesDTO proces = resquest.getProces();
|
|
|
|
|
- List<TascaDTO> tasques = resquest.getTasques();
|
|
|
|
|
- Proces p = ps.findByID(proces.getIdProces());
|
|
|
|
|
- p.setNomProces(proces.getNomProces());
|
|
|
|
|
- p.setVersio(proces.getVersio());
|
|
|
|
|
- p.setComentaris(proces.getComentaris());
|
|
|
|
|
- p.setSubTitol(proces.getSubTitol());
|
|
|
|
|
- p.setAmbit(proces.getAmbit());
|
|
|
|
|
- p.setTitolCas(proces.getTitolCas());
|
|
|
|
|
- p.setTitolVal(proces.getTitolVal());
|
|
|
|
|
- p.setDescripcioCas(proces.getDescripcioCas());
|
|
|
|
|
- p.setDescripcioVal(proces.getDescripcioVal());
|
|
|
|
|
- p.setCursActivacio(proces.getCursActivacio());
|
|
|
|
|
- p.setCursAvaluat(proces.getCursAvaluat());
|
|
|
|
|
-
|
|
|
|
|
|
|
+ public void editProcedure(@RequestBody ProcedureRequestDTO request) {
|
|
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DDMMYYYY);
|
|
|
|
|
+ ProcesDTO procesDTO = request.getProces();
|
|
|
|
|
+ List<TascaDTO> tasquesDTO = request.getTasques();
|
|
|
|
|
+
|
|
|
|
|
+ Proces p = ps.findByID(procesDTO.getIdProces());
|
|
|
|
|
+ p.setNomProces(procesDTO.getNomProces());
|
|
|
|
|
+ p.setVersio(procesDTO.getVersio());
|
|
|
|
|
+ p.setComentaris(procesDTO.getComentaris());
|
|
|
|
|
+ p.setSubTitol(procesDTO.getSubTitol());
|
|
|
|
|
+ p.setAmbit(procesDTO.getAmbit());
|
|
|
|
|
+ p.setTitolCas(procesDTO.getTitolCas());
|
|
|
|
|
+ p.setTitolVal(procesDTO.getTitolVal());
|
|
|
|
|
+ p.setDescripcioCas(procesDTO.getDescripcioCas());
|
|
|
|
|
+ p.setDescripcioVal(procesDTO.getDescripcioVal());
|
|
|
|
|
+ p.setCursActivacio(procesDTO.getCursActivacio());
|
|
|
|
|
+ p.setCursAvaluat(procesDTO.getCursAvaluat());
|
|
|
ps.save(p);
|
|
ps.save(p);
|
|
|
|
|
|
|
|
- for (TascaDTO t : tasques) {
|
|
|
|
|
- if (t.getIdTascaSeg() != null) {
|
|
|
|
|
- for (Tasca t2 : ts.findByProces(p.getIdProces())) {
|
|
|
|
|
- if (!t.getIdTascap().toString().contains(Integer.toString(t2.getIdTascap()))) {
|
|
|
|
|
- ts.delete(t2);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ List<Tasca> tasquesActuals = ts.findByProces(p.getIdProces());
|
|
|
|
|
+ List<Integer> idsTasquesNoves = tasquesDTO.stream()
|
|
|
|
|
+ .map(TascaDTO::getIdTascap)
|
|
|
|
|
+ .toList();
|
|
|
|
|
|
|
|
- Tasca tasca;
|
|
|
|
|
- try {
|
|
|
|
|
- tasca = ts.getByID((p.getIdProces() * 10000) + t.getIdTascap());
|
|
|
|
|
- if (tasca == null) {
|
|
|
|
|
- tasca = new Tasca();
|
|
|
|
|
- tasca.setIdTasca((p.getIdProces() * 10000) + t.getIdTascap());
|
|
|
|
|
- tasca.setProces(p);
|
|
|
|
|
- tasca.setIdTascap(t.getIdTascap());
|
|
|
|
|
- }
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
|
|
+ for (Tasca t2 : tasquesActuals) {
|
|
|
|
|
+ if (!idsTasquesNoves.contains(t2.getIdTascap())) {
|
|
|
|
|
+ ts.delete(t2);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ for (TascaDTO tDto : tasquesDTO) {
|
|
|
|
|
+ if (tDto.getIdTascaSeg() != null) {
|
|
|
|
|
+ int idCalculat = (int) (p.getIdProces() * 10000) + tDto.getIdTascap();
|
|
|
|
|
+
|
|
|
|
|
+ Tasca tasca = ts.getByID(idCalculat);
|
|
|
|
|
+ if (tasca == null) {
|
|
|
tasca = new Tasca();
|
|
tasca = new Tasca();
|
|
|
- tasca.setIdTasca((p.getIdProces() * 10000) + t.getIdTascap());
|
|
|
|
|
|
|
+ tasca.setIdTasca(idCalculat);
|
|
|
tasca.setProces(p);
|
|
tasca.setProces(p);
|
|
|
- tasca.setIdTascap(t.getIdTascap());
|
|
|
|
|
|
|
+ tasca.setIdTascap(tDto.getIdTascap());
|
|
|
|
|
+ }
|
|
|
|
|
+ tasca.setIdTascaSeg(tDto.getIdTascaSeg());
|
|
|
|
|
+ tasca.setIdTascaSeg2(tDto.getIdTascaSeg2());
|
|
|
|
|
+ tasca.setOpcions(tDto.getOpcions());
|
|
|
|
|
+ tasca.setTitolCas(limpiarTexto(tDto.getTitolCas()));
|
|
|
|
|
+ tasca.setTitolVal(limpiarTexto(tDto.getTitolVal()));
|
|
|
|
|
+ tasca.setDescripcioCas(limpiarTexto(tDto.getDescripcioCas()));
|
|
|
|
|
+ tasca.setDescripcioVal(limpiarTexto(tDto.getDescripcioVal()));
|
|
|
|
|
+ tasca.setNomEvidenciaCas(limpiarTexto(tDto.getNomEvidenciaCas()));
|
|
|
|
|
+ tasca.setNomEvidenciaVal(limpiarTexto(tDto.getNomEvidenciaVal()));
|
|
|
|
|
+
|
|
|
|
|
+ if (tDto.getDataLim() != null && !tDto.getDataLim().isEmpty()) {
|
|
|
|
|
+ tasca.setDataLim(LocalDate.parse(tDto.getDataLim(), formatter));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (tDto.getIdTipus() != null) {
|
|
|
|
|
+ tasca.setTipus(tps.findOne(tDto.getIdTipus()));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (tasca.getTipus().getTipus() == 11 || tasca.getTipus().getTipus() == 15) {
|
|
|
|
|
- tasca.setCodiEvidencia(t.getIdPlantilla().toString());
|
|
|
|
|
|
|
+ if (tasca.getTipus() != null && (tasca.getTipus().getTipus() == 11 || tasca.getTipus().getTipus() == 15)) {
|
|
|
|
|
+ tasca.setCodiEvidencia(tDto.getIdPlantilla() != null ? tDto.getIdPlantilla().toString() : "");
|
|
|
} else {
|
|
} else {
|
|
|
- tasca.setCodiEvidencia(
|
|
|
|
|
- t.getCodiEvidencia().equals(".") ? "" : t.getCodiEvidencia().replace("[comma]", ","));
|
|
|
|
|
|
|
+ tasca.setCodiEvidencia(limpiarTexto(tDto.getCodiEvidencia()));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- tasca.setRol(rs.findOne(t.getIdRol()));
|
|
|
|
|
- tasca.setInforme(t.getInforme());
|
|
|
|
|
- ts.save(tasca);
|
|
|
|
|
|
|
+ tasca.setRol(rs.findOne(tDto.getIdRol()));
|
|
|
|
|
+ tasca.setInforme(tDto.getInforme() != null ? tDto.getInforme() : false);
|
|
|
|
|
|
|
|
|
|
+ ts.save(tasca);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private String limpiarTexto(String texto) {
|
|
|
|
|
+ if (texto == null || texto.equals(".")) {
|
|
|
|
|
+ return "";
|
|
|
|
|
+ }
|
|
|
|
|
+ return texto.replace("[comma]", ",");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// DELETE que elimina un procedimiento
|
|
// DELETE que elimina un procedimiento
|
|
|
@DeleteMapping("/procedure")
|
|
@DeleteMapping("/procedure")
|
|
|
public void removeProcedure(@RequestParam("idProces") Integer idProces) {
|
|
public void removeProcedure(@RequestParam("idProces") Integer idProces) {
|