|
|
@ -2,6 +2,7 @@ package mx.gob.jumapacelaya.ui; |
|
|
|
|
|
|
|
import java.time.LocalDate; |
|
|
|
import java.time.format.DateTimeFormatter; |
|
|
|
import java.util.Base64; |
|
|
|
import java.util.List; |
|
|
|
import org.springframework.security.core.Authentication; |
|
|
|
import org.springframework.cglib.core.Local; |
|
|
@ -348,12 +349,47 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser |
|
|
|
LocalDate fechaProg = !txtFechaRealizacion.getValue().isEmpty() ? LocalDate.parse(txtFechaRealizacion.getValue(), formatter) : null; |
|
|
|
LocalDate fechaRealizado = !txtFecha.getValue().isEmpty() ? LocalDate.parse(txtFecha.getValue(), formatter) : null; |
|
|
|
|
|
|
|
|
|
|
|
// Obtener las firmas como en MantenimientoView |
|
|
|
byte[] userSignatureBytes = userSignPad.getImageBase64(); |
|
|
|
byte[] smtSignatureBytes = smtSignPad.getImageBase64(); |
|
|
|
byte[] gciaSignatureBytes = gciaSignPad.getImageBase64(); |
|
|
|
|
|
|
|
String userSignatureBase64 = (userSignatureBytes != null) |
|
|
|
? Base64.getEncoder().encodeToString(userSignatureBytes) |
|
|
|
: null; |
|
|
|
String smtSignatureBase64 = (smtSignatureBytes != null) |
|
|
|
? Base64.getEncoder().encodeToString(smtSignatureBytes) |
|
|
|
: null; |
|
|
|
String gciaSignatureBase64 = (gciaSignatureBytes != null) |
|
|
|
? Base64.getEncoder().encodeToString(gciaSignatureBytes) |
|
|
|
: null; |
|
|
|
|
|
|
|
// Si la firma es vacía, asigna null |
|
|
|
if (userSignatureBase64 != null && esFirmaVacia(userSignatureBase64)) |
|
|
|
userSignatureBase64 = null; |
|
|
|
if (smtSignatureBase64 != null && esFirmaVacia(smtSignatureBase64)) |
|
|
|
smtSignatureBase64 = null; |
|
|
|
if (gciaSignatureBase64 != null && esFirmaVacia(gciaSignatureBase64)) |
|
|
|
gciaSignatureBase64 = null; |
|
|
|
|
|
|
|
|
|
|
|
// ACTUALIZA PLANANUAL (nombre del equipo y fecha programada) |
|
|
|
if (!service.actualizarPlanAnual(planAnualIdActual, txtEquipo.getValue(), fechaProg)) { |
|
|
|
exito = false; |
|
|
|
} |
|
|
|
// ACTUALIZA MANTENIMIENTOS (tipo, departamento, usuario, fecha realizado) |
|
|
|
if (!service.actualizarMantenimiento(mantenimientoIdActual, tipoId, departamentoId, empleadoId, fechaRealizado, txtEquipo.getValue())) { |
|
|
|
if (!service.actualizarMantenimiento( |
|
|
|
mantenimientoIdActual, |
|
|
|
tipoId, |
|
|
|
departamentoId, |
|
|
|
empleadoId, |
|
|
|
fechaRealizado, |
|
|
|
txtEquipo.getValue(), |
|
|
|
userSignatureBase64, |
|
|
|
smtSignatureBase64, |
|
|
|
gciaSignatureBase64 |
|
|
|
)) { |
|
|
|
exito = false; |
|
|
|
} |
|
|
|
|
|
|
@ -400,6 +436,15 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Metodo para verificar si la firma corresponde a una cadena de firma vacia |
|
|
|
private boolean esFirmaVacia(String firmaBase64) { |
|
|
|
|
|
|
|
String firmaVacia = "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"; |
|
|
|
return firmaBase64.equals(firmaVacia); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void addSignatureSection() { |
|
|
|
// Usa los atributos de clase, no variables locales |
|
|
|
userSignLayout = new VerticalLayout(); |
|
|
|