Browse Source

Ya se pueden agregar o midificar las firmas depues de que se guardo el reporte

master
mramirezg 1 month ago
parent
commit
85750ab155
5 changed files with 69 additions and 10 deletions
  1. BIN
      src/main/bundles/prod.bundle
  2. +18
    -3
      src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java
  3. +46
    -1
      src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java
  4. +4
    -6
      src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java
  5. +1
    -0
      src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java

BIN
src/main/bundles/prod.bundle View File


+ 18
- 3
src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java View File

@ -624,8 +624,8 @@ public class DatabaseService {
}
}
public boolean actualizarMantenimiento(int mantenimientoId, int tipoId, String departamentoId, int empleadoId, LocalDate fechaRealizado, String nombreEquipo) {
String sql = "UPDATE MANTENIMIENTOS SET TIPOMANTID=?, DEPARTAMENTOID=?, EMPLEADOID=?, FECHA=?, NOMBREEQUIPO=? WHERE MANTENIMIENTOID=?";
public boolean actualizarMantenimiento(int mantenimientoId, int tipoId, String departamentoId, int empleadoId, LocalDate fechaRealizado, String nombreEquipo, String firmausuario, String firmasmt, String firmagcia) {
String sql = "UPDATE MANTENIMIENTOS SET TIPOMANTID=?, DEPARTAMENTOID=?, EMPLEADOID=?, FECHA=?, NOMBREEQUIPO=?, FIRMAUSUARIO=?, FIRMASMT=?, FIRMAGCIA=? WHERE MANTENIMIENTOID=?";
try (Connection conn = getMysqlConnection();
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setInt(1, tipoId); // tipoId es int
@ -633,7 +633,22 @@ public class DatabaseService {
stmt.setInt(3, empleadoId); // empleadoId es int
stmt.setDate(4, fechaRealizado != null ? Date.valueOf(fechaRealizado) : null);
stmt.setString(5, nombreEquipo);
stmt.setInt(6, mantenimientoId);
if (firmausuario != null) {
stmt.setString(6, firmausuario);
} else {
stmt.setNull(6, Types.VARCHAR);
}
if (firmasmt != null) {
stmt.setString(7, firmasmt);
} else {
stmt.setNull(7, Types.VARCHAR);
}
if (firmagcia != null) {
stmt.setString(8, firmagcia);
} else {
stmt.setNull(8, Types.VARCHAR);
}
stmt.setInt(9, mantenimientoId);
return stmt.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();


+ 46
- 1
src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java View File

@ -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();


+ 4
- 6
src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java View File

@ -482,7 +482,7 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse
// Metodo para verificar si la firma corresponde a una cadena de firma vacia
private boolean esFirmaVacia(String firmaBase64) {
String firmaVacia = "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";
String firmaVacia = "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";
return firmaBase64.equals(firmaVacia);
}
@ -532,11 +532,9 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse
String smtSignatureBase64 = Base64.getEncoder().encodeToString(smtSignatureBytes);
String gciaSignatureBase64 = Base64.getEncoder().encodeToString(gciaSignatureBytes);
if (esFirmaVacia(userSignatureBase64) || esFirmaVacia(smtSignatureBase64) || esFirmaVacia(gciaSignatureBase64)) {
Notification.show("Por favor, completa todas las firmas antes de guardar.", 4000, Notification.Position.MIDDLE)
.addThemeVariants(NotificationVariant.LUMO_WARNING);
return;
}
if (esFirmaVacia(userSignatureBase64)) userSignatureBase64 = null;
if (esFirmaVacia(smtSignatureBase64)) smtSignatureBase64 = null;
if (esFirmaVacia(gciaSignatureBase64)) gciaSignatureBase64 = null;
// Validación de campos de hardware


+ 1
- 0
src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java View File

@ -263,6 +263,7 @@ public class PlanAnualView extends VerticalLayout {
.setHeader("Departamento").setAutoWidth(true).setKey("departamentoColumnKey");
planAnualGrid.addThemeVariants(GridVariant.LUMO_WRAP_CELL_CONTENT);
planAnualGrid.addThemeVariants(GridVariant.LUMO_ROW_STRIPES);
// Fechas formateadas
planAnualGrid.addColumn(planAnual -> {


Loading…
Cancel
Save