Browse Source

se agrego la bitacora para cuando se haga alguna modificacion a los registros

master
mramirezg 2 months ago
parent
commit
652f95c3aa
3 changed files with 68 additions and 13 deletions
  1. BIN
      src/main/bundles/prod.bundle
  2. +19
    -2
      src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java
  3. +49
    -11
      src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java

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


+ 19
- 2
src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java View File

@ -20,8 +20,8 @@ public class DatabaseService {
private Connection getMysqlConnection() throws SQLException {
String url = "jdbc:oracle:thin:@//oracle-xe:1521/XEPDB1";
//String url = "jdbc:oracle:thin:@//svrapps:1521/XEPDB1";
//String url = "jdbc:oracle:thin:@//oracle-xe:1521/XEPDB1";
String url = "jdbc:oracle:thin:@//svrapps:1521/XEPDB1";
String user = "MANTENIMIENTOS";
String pass = "mantenimientos";
@ -623,4 +623,21 @@ public class DatabaseService {
return false;
}
}
/* ---------------- Insertar en bitacora ---------------- */
public boolean insertarBitacora(int mantenimientoid, String usuarioid, LocalDate fechora, String motivo) {
String query = "INSERT INTO MANTENIMIENTOS.BITACORACTUALIZACIONES (MANTENIMIENTOID, USUARIOID, FECHORA, MOTIVO) VALUES (?, ?, ?, ?)";
try (Connection conn = getMysqlConnection();
PreparedStatement stmt = conn.prepareStatement(query)) {
stmt.setInt(1, mantenimientoid);
stmt.setString(2, usuarioid);
stmt.setDate(3, fechora != null ? Date.valueOf(fechora) : null);
stmt.setString(4, motivo);
return stmt.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
}

+ 49
- 11
src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java View File

@ -3,17 +3,22 @@ package mx.gob.jumapacelaya.ui;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
import org.springframework.security.core.Authentication;
import org.springframework.cglib.core.Local;
import org.springframework.security.core.context.SecurityContextHolder;
import org.vaadin.lineawesome.LineAwesomeIcon;
import com.nimbusds.jose.proc.SecurityContext;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.combobox.ComboBox;
import com.vaadin.flow.component.confirmdialog.ConfirmDialog;
import com.vaadin.flow.component.dependency.CssImport;
import com.vaadin.flow.component.dialog.Dialog;
import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.grid.GridVariant;
import com.vaadin.flow.component.gridpro.GridPro;
import com.vaadin.flow.component.html.H3;
import com.vaadin.flow.component.html.Span;
import com.vaadin.flow.component.icon.Icon;
import com.vaadin.flow.component.icon.VaadinIcon;
import com.vaadin.flow.component.notification.Notification;
@ -63,7 +68,7 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser
private Button btnGuardar;
private int planAnualIdActual;
private int mantenimientoIdActual;
private ConfirmDialog confirmDialog;
private Dialog confirmDialog;
DatabaseService service = new DatabaseService();
@ -199,14 +204,43 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser
// Dialogo de confirmación de actualización
confirmDialog = new ConfirmDialog();
confirmDialog.setHeader("Actualizar Mantenimiento");
confirmDialog.setText("¿Estás seguro de que deseas actualizar el mantenimiento?");
confirmDialog.setCancelable(true);
confirmDialog.setConfirmText("Actualizar");
confirmDialog.setCancelText("Cancelar");
confirmDialog.addConfirmListener(event -> realizarActualizacion());
confirmDialog.addCancelListener( event -> {
confirmDialog = new Dialog();
confirmDialog.setHeaderTitle("Actualizar Mantenimiento");
TextField txtJustificacion = new TextField("Justificacion");
txtJustificacion.setWidthFull();
txtJustificacion.setRequired(true);
confirmDialog.add(
new VerticalLayout(
new Span("¿Estás seguro de que deseas actualizar el mantenimiento?"),
txtJustificacion
)
);
Button btnConfirmar = new Button("Actualizar", event -> {
String justificacion = txtJustificacion.getValue();
if (justificacion.isEmpty()) {
txtJustificacion.setErrorMessage("Por favor, ingresa una justificación.");
txtJustificacion.setInvalid(true);
return;
}
txtJustificacion.setInvalid(false);
confirmDialog.close();
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String usuarioId = authentication != null ? authentication.getName().toUpperCase() : "DESCONOCIDO";
LocalDate fecha = LocalDate.now();
service.insertarBitacora(mantenimientoIdActual, usuarioId, fecha, justificacion);
realizarActualizacion();
txtJustificacion.clear();
});
Button btnCancelarDialog = new Button("Cancelar", event -> {
confirmDialog.close();
txtEquipo.setReadOnly(true);
cbTipo.setReadOnly(true);
txtFecha.setReadOnly(true);
@ -221,13 +255,17 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser
gridHardware.getEditor().cancel();
});
HorizontalLayout dialogButtons = new HorizontalLayout(btnConfirmar, btnCancelarDialog);
confirmDialog.getFooter().add(dialogButtons);
mainLayout.add(headerLayout,layout2,fechasLayout,layout3,gridHardware,botonesLayout);
add(mainLayout);
}
private void realizarActualizacion() {
boolean exito = true;
boolean exito = true;
// Obtén los objetos seleccionados
TiposMantenimiento tipoSeleccionado = cbTipo.getValue();


Loading…
Cancel
Save