Browse Source

Se corriegio en tamaño en las colunas de departamento y equipo para que se mostraran los nombres completos ademas tambien se cambio la cadena Base64 de firmas vacias ya que por alguna razon las firmas vacias empezaron a tener otra cadena Base64

master
mramirezg 9 months ago
parent
commit
3eb5de8df0
3 changed files with 39 additions and 26 deletions
  1. +5
    -5
      src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java
  2. +30
    -19
      src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java
  3. +4
    -2
      src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java

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

@ -1,6 +1,5 @@
package mx.gob.jumapacelaya.services;
import com.fasterxml.jackson.databind.jsontype.impl.StdTypeResolverBuilder;
import mx.gob.jumapacelaya.models.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@ -16,7 +15,7 @@ public class DatabaseService {
private Connection getMysqlConnection() throws SQLException {
String url = "jdbc:mysql://mhdb.jumapacelaya.gob.mx:33006/Mantenimientos";
String url = "jdbc:mysql://185.196.20.240:33006/Mantenimientos";
String user = "root";
String pass = "mantenimientos";
@ -185,6 +184,7 @@ public class DatabaseService {
);
planAnualList.add(planAnual);
}
System.out.println("Registros obtenidos: " + planAnualList.size());
} catch (SQLException e) {
e.printStackTrace();
}
@ -285,7 +285,7 @@ public class DatabaseService {
/* ˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀˁ˚ᴥ˚ˀ */
// INSERTAR EN LA TABLA: HARDWAREDET
public boolean insertarHardware(String tipoHardwareId, int numSerie, String modelo, int placa, int mantenimientoId) {
public boolean insertarHardware(String tipoHardwareId, String numSerie, String modelo, String placa, int mantenimientoId) {
String query = "INSERT INTO HARDWAREDET (tipoHardwareId, numSerie, modelo, placa, mantenimientoId) VALUES (?, ?, ?, ?, ?)";
boolean isInserted = false;
@ -293,9 +293,9 @@ public class DatabaseService {
PreparedStatement preparedStatement = connection.prepareStatement(query)) {
preparedStatement.setString(1, tipoHardwareId);
preparedStatement.setInt(2, numSerie);
preparedStatement.setString(2, numSerie);
preparedStatement.setString(3, modelo);
preparedStatement.setInt(4, placa);
preparedStatement.setString(4, placa);
preparedStatement.setInt(5, mantenimientoId);
int rowsAffected = preparedStatement.executeUpdate();


+ 30
- 19
src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java View File

@ -232,11 +232,17 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse
tipoHardware.setItems(databaseService.getTiposHardware());
tipoHardware.setSizeFull();
NumberField noSerie = new NumberField();
TextField noSerie = new TextField();
noSerie.setEnabled(false);
noSerie.setRequired(true);
noSerie.setPlaceholder("No. Serie");
noSerie.setSizeFull();
// Validacion para que este campo solo acepte numeros
noSerie.getElement().executeJs(
"this.addEventListener('input', function(e) { " +
" e.target.value = e.target.value.replace(/[^0-9]/g, '');" + // Solo permite dígitos
"});"
);
TextField modelo = new TextField();
modelo.setEnabled(false);
@ -244,11 +250,17 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse
modelo.setPlaceholder("Modelo");
modelo.setSizeFull();
NumberField placa = new NumberField();
TextField placa = new TextField();
placa.setEnabled(false);
placa.setRequired(true);
placa.setPlaceholder("Placa");
placa.setSizeFull();
// Validacion para que este campo solo acepte numeros
placa.getElement().executeJs(
"this.addEventListener('input', function(e) { " +
" e.target.value = e.target.value.replace(/[^0-9]/g, '');" + // Solo permite dígitos
"});"
);
tipoHardware.addValueChangeListener(event -> {
TiposHardware tipoSeleccionado = event.getValue();
@ -450,12 +462,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) {
if (firmaBase64 == null || firmaBase64.isEmpty()) {
return true;
}
String firmaVacia = "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";
String firmaVacia = "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";
return firmaBase64.equals(firmaVacia);
}
@ -513,9 +520,11 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse
// Validacion de firmas si es igual o no a la cadena de firma vacia
userSignatureBase64 = esFirmaVacia(userSignatureBase64) ? null : userSignatureBase64;
smtSignatureBase64 = esFirmaVacia(smtSignatureBase64) ? null : smtSignatureBase64;
gciaSignatureBase64 = esFirmaVacia(gciaSignatureBase64) ? null : gciaSignatureBase64;
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; // Detiene la ejecución
}
@ -530,9 +539,9 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse
for (HorizontalLayout layout : hardwareLayouts) {
ComboBox<TiposHardware> tipoHardware = (ComboBox<TiposHardware>) layout.getComponentAt(0); // Ahora es ComboBox<TiposHardware>
NumberField noSerie = (NumberField) layout.getComponentAt(1);
TextField noSerie = (TextField) layout.getComponentAt(1);
TextField modelo = (TextField) layout.getComponentAt(2);
NumberField placa = (NumberField) layout.getComponentAt(3);
TextField placa = (TextField) layout.getComponentAt(3);
TiposHardware tipoSeleccionado = tipoHardware.getValue();
@ -544,13 +553,13 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse
boolean esOpcional = tipoSeleccionado != null && tiposOpcionales.contains(tipoSeleccionado.getNombreHardware());
// Validar campos solo si el tipo de hardware no es opcional
int numSerieInt = noSerie.getValue() != null ? noSerie.getValue().intValue() : 0;
int placaInt = placa.getValue() != null ? placa.getValue().intValue() : 0;
String numSerieInt = noSerie.getValue();
String placaInt = placa.getValue();
// Validaciones antes de insertar detalles del hardware
if (!esOpcional) {
if (tipoHardware.getValue() == null || modelo.getValue() == null || numSerieInt <= 0 || placaInt <= 0) {
if (tipoHardware.getValue() == null || modelo.getValue() == null || numSerieInt == null || numSerieInt.isEmpty() || placaInt == null || placaInt.isEmpty()) {
Notification.show("Por favor, completa todos los campos de hardware", 4000, Notification.Position.MIDDLE)
.addThemeVariants(NotificationVariant.LUMO_WARNING);
return;
@ -660,9 +669,11 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse
String destinatario = usuarioSeleccionado.getEmail();
String asunto = "MANTENIMIENTO DE EQUIPO DE COMPUTO REALIZADO";
String cuerpo = "<html><body>"
+ "<img src='cid:image_id'/>"
+ "</body></html>";
String cuerpo = "<html>" +
"<body>" +
"<img src='cid:image_id'/>"+
"</body>" +
"</html>";
String imagePath = "src/main/resources/META-INF/resources/images/imgCorreo/correoMantt.png";


+ 4
- 2
src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java View File

@ -5,6 +5,7 @@ import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.button.ButtonVariant;
import com.vaadin.flow.component.dependency.CssImport;
import com.vaadin.flow.component.grid.Grid;
import com.vaadin.flow.component.grid.GridVariant;
import com.vaadin.flow.component.grid.HeaderRow;
import com.vaadin.flow.component.grid.dataview.GridListDataView;
import com.vaadin.flow.component.html.H4;
@ -161,8 +162,9 @@ public class PlanAnualView extends VerticalLayout {
Grid<PlanAnual> planAnualGrid = new Grid<>(PlanAnual.class, false);
planAnualGrid.addColumn(PlanAnual :: getNumero).setHeader("No.");
planAnualGrid.addColumn(PlanAnual :: getNomEquipo).setHeader("Equipo").setAutoWidth(true);
planAnualGrid.addColumn(PlanAnual :: getDepartamento).setHeader("Departamento").setAutoWidth(true);
planAnualGrid.addColumn(PlanAnual :: getNomEquipo).setHeader("Equipo").setWidth("8em");
planAnualGrid.addColumn(PlanAnual :: getDepartamento).setHeader("Departamento").setWidth("10em");
planAnualGrid.addThemeVariants(GridVariant.LUMO_WRAP_CELL_CONTENT);
// Usando iconos en las columnas booleanas
planAnualGrid.addComponentColumn(planAnual -> getIcon(planAnual.isMonitor())).setHeader("Monitor").setAutoWidth(true);


Loading…
Cancel
Save