Browse Source

El comboBox de los tipos de hardware tambien ya muestran los nombres y no los id's de los tipos, tambien se cambiaron los temas de algunas notificaciones

master
mramirezg 9 months ago
parent
commit
dfc4c6becb
3 changed files with 121 additions and 31 deletions
  1. +34
    -0
      src/main/java/mx/gob/jumapacelaya/models/TiposHardware.java
  2. +9
    -8
      src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java
  3. +78
    -23
      src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java

+ 34
- 0
src/main/java/mx/gob/jumapacelaya/models/TiposHardware.java View File

@ -0,0 +1,34 @@
package mx.gob.jumapacelaya.models;
public class TiposHardware {
private String tipoHardwareId;
private String nombreHardware;
public TiposHardware(String tipoHardwareId, String nombreHardware) {
this.tipoHardwareId = tipoHardwareId;
this.nombreHardware = nombreHardware;
}
public String getTipoHardwareId() {
return tipoHardwareId;
}
public void setTipoHardwareId(String tipoHardwareId) {
this.tipoHardwareId = tipoHardwareId;
}
public String getNombreHardware() {
return nombreHardware;
}
public void setNombreHardware(String nombreHardware) {
this.nombreHardware = nombreHardware;
}
@Override
public String toString() {
return nombreHardware;
}
}

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

@ -1,10 +1,7 @@
package mx.gob.jumapacelaya.services;
import com.fasterxml.jackson.databind.jsontype.impl.StdTypeResolverBuilder;
import mx.gob.jumapacelaya.models.DepartamentosModel;
import mx.gob.jumapacelaya.models.PlanAnual;
import mx.gob.jumapacelaya.models.TiposMantenimiento;
import mx.gob.jumapacelaya.models.Usuario;
import mx.gob.jumapacelaya.models.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@ -119,16 +116,20 @@ public class DatabaseService {
/* -------------- Metodo para obtener los tipos de hardware ---------------- */
public List<String> getTiposHardware() {
List<String> tiposHardware = new ArrayList<>();
String query = "select TIPOHARDWAREID from TIPOSHARDWARE";
public List<TiposHardware> getTiposHardware() {
List<TiposHardware> tiposHardware = new ArrayList<>();
String query = "select TIPOHARDWAREID, NOMBRETIPO from TIPOSHARDWARE";
try (Connection connection = getConnection();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query)) {
while (resultSet.next()) {
tiposHardware.add(resultSet.getString("TIPOHARDWAREID"));
TiposHardware tiposHardwareModel = new TiposHardware(
resultSet.getString("tipohardwareid"),
resultSet.getString("nombretipo")
);
tiposHardware.add(tiposHardwareModel);
}
} catch (SQLException e) {
e.printStackTrace();


+ 78
- 23
src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java View File

@ -13,6 +13,7 @@ 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;
import com.vaadin.flow.component.notification.NotificationVariant;
import com.vaadin.flow.component.orderedlayout.FlexComponent;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
@ -28,12 +29,14 @@ import com.vaadin.flow.router.Route;
import de.f0rce.signaturepad.SignaturePad;
import jakarta.annotation.security.PermitAll;
import mx.gob.jumapacelaya.models.DepartamentosModel;
import mx.gob.jumapacelaya.models.TiposHardware;
import mx.gob.jumapacelaya.models.TiposMantenimiento;
import mx.gob.jumapacelaya.models.Usuario;
import mx.gob.jumapacelaya.services.DatabaseService;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@ -111,7 +114,7 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse
} else if ("2".equals(tipoSeleccionado.getTipomantId())) { // 2 es para CORRECTIVO
this.fecha.clear();
etiquetaLayout.setVisible(true);
correctivoLayout(); // Asegúrate de que este método se llame
correctivoLayout();
} else {
// Para otros tipos de mantenimiento
this.fecha.clear();
@ -199,10 +202,10 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse
//Metodo para agregar un nuevo ComboBox de tipo de hardware y campos de texto
private List<HorizontalLayout> hardwareLayouts = new ArrayList<>();
private void addNuevoTipo() {
ComboBox<String> tipoHardware = new ComboBox<>();
List<String> tiposHardware = databaseService.getTiposHardware();
tipoHardware.setItems(tiposHardware);
ComboBox<TiposHardware> tipoHardware = new ComboBox<>();
tipoHardware.setPlaceholder("Tipo de hardware");
tipoHardware.setItemLabelGenerator(TiposHardware::getNombreHardware);
tipoHardware.setItems(databaseService.getTiposHardware());
tipoHardware.setSizeFull();
NumberField noSerie = new NumberField();
@ -224,11 +227,15 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse
placa.setSizeFull();
tipoHardware.addValueChangeListener(event -> {
String tipoSeleccionado = event.getValue();
TiposHardware tipoSeleccionado = event.getValue();
if (tipoSeleccionado != null) {
int tipoId = Integer.parseInt(tipoSeleccionado);
if (tipoId == 6 || tipoId == 7) {
String nombreTipo = tipoSeleccionado.getNombreHardware();
if ("TECLADO".equals(nombreTipo)) {
noSerie.setEnabled(false);
modelo.setEnabled(false);
placa.setEnabled(false);
} else if ("MOUSE".equals(nombreTipo)) {
noSerie.setEnabled(false);
modelo.setEnabled(false);
placa.setEnabled(false);
@ -454,44 +461,72 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse
int mantenimientoId = databaseService.getUltimoMantenimientoId();
for (HorizontalLayout layout : hardwareLayouts) {
ComboBox<String> tipoHardware = (ComboBox<String>) layout.getComponentAt(0);
ComboBox<TiposHardware> tipoHardware = (ComboBox<TiposHardware>) layout.getComponentAt(0); // Ahora es ComboBox<TiposHardware>
NumberField noSerie = (NumberField) layout.getComponentAt(1);
TextField modelo = (TextField) layout.getComponentAt(2);
NumberField placa = (NumberField) layout.getComponentAt(3);
TiposHardware tipoSeleccionado = tipoHardware.getValue();
// Definir tipos de hardware opcionales (sin necesidad de modelo, número de serie y placa)
List<String> tiposOpcionales = Arrays.asList("TECLADO", "MOUSE");
// Verificar si el tipo de hardware es opcional
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;
// Validaciones antes de insertar detalles del hardware
if (tipoHardware.getValue() == null || modelo.getValue() == null || numSerieInt <= 0 || placaInt <= 0) {
Notification.show("Por favor, completa todos los campos de hardware", 4000, Notification.Position.MIDDLE);
return;
if (!esOpcional) {
if (tipoHardware.getValue() == null || modelo.getValue() == null || numSerieInt <= 0 || placaInt <= 0) {
Notification.show("Por favor, completa todos los campos de hardware", 4000, Notification.Position.MIDDLE)
.addThemeVariants(NotificationVariant.LUMO_WARNING);
return;
}
} else {
if (tipoSeleccionado == null) {
Notification.show("Por favor, selecciona un tipo de hardware", 4000, Notification.Position.MIDDLE)
.addThemeVariants(NotificationVariant.LUMO_WARNING);
return;
}
}
// Obtener el ID de tipo de hardware seleccionado
String tipoHardwareId = tipoSeleccionado.getTipoHardwareId();
boolean isHardwareInserted = databaseService.insertarHardware(
tipoHardware.getValue(),
tipoHardwareId, // Ahora usamos el ID del tipo de hardware
numSerieInt,
modelo.getValue(),
placaInt,
mantenimientoId
);
// Limpiar los campos después de la inserción
tipoHardware.clear();
modelo.clear();
placa.clear();
noSerie.clear();
if (!isHardwareInserted) {
Notification.show("Error al insertar detalles del hardware", 4000, Notification.Position.MIDDLE);
Notification.show("Error al insertar detalles del hardware", 4000, Notification.Position.MIDDLE)
.addThemeVariants(NotificationVariant.LUMO_ERROR);
return;
}
}
// AQUI MANEJO LA INSERCION DE LOS DATOS DE LOS CHECKBOXES DE ACTUALIZACIONES DE SEGURIDAD!!!
for (String actualizacionSelecionada : actualizaciones.getSelectedItems()) {
boolean isActualizacionInserted = databaseService.insertActualizacionSeg(actualizacionSelecionada, null, mantenimientoId);
if (!isActualizacionInserted) {
Notification.show("Error al insertar actualizacion de seguridad", 4000, Notification.Position.MIDDLE);
Notification.show("Error al insertar actualizacion de seguridad", 4000, Notification.Position.MIDDLE)
.addThemeVariants(NotificationVariant.LUMO_ERROR);
return;
}
}
@ -503,14 +538,17 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse
boolean isOtrasActualizaciones = databaseService.insertActualizacionSeg(actualizacion, otrasActu, mantenimientoId);
if (!isOtrasActualizaciones) {
Notification.show("Error al insertar otras actualizaciones de seguridad", 4000, Notification.Position.MIDDLE);
Notification.show("Error al insertar otras actualizaciones", 4000, Notification.Position.MIDDLE)
.addThemeVariants(NotificationVariant.LUMO_ERROR);
return;
}
}
}
// NOTIFICACION DE GUARDADO EXITOSO Y LIMPIEZA DE LOS CAMPOS!!!
Notification.show("!!Mantenimiento guardado exitosamente!!", 4000, Notification.Position.MIDDLE);
Notification.show("!!Mantenimiento guardado exitosamente!!", 4000, Notification.Position.MIDDLE)
.addThemeVariants(NotificationVariant.LUMO_SUCCESS);
fecha.clear();
tipoMantt.clear();
area.clear();
@ -552,12 +590,29 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse
}
// Cambiamos el valor por el ID
/*if ("1".equals(tipoParam)) { // 1 es para PREVENTIVO
tipoMantt.setValue("1"); // Establecemos el ID en el ComboBox
tipoMantt.setReadOnly(true);
} else if ("2".equals(tipoParam)) { // 2 es para CORRECTIVO
tipoMantt.setValue("2");
tipoMantt.setReadOnly(true);
}*/
if ("1".equals(tipoParam)) { // 1 es para PREVENTIVO
TiposMantenimiento preventivo = tipoMantt.getDataProvider()
.fetch(new com.vaadin.flow.data.provider.Query<>())
.filter(tipo -> "1".equals(tipo.getTipomantId()))
.findFirst()
.orElse(null);
if (preventivo != null) {
tipoMantt.setValue(preventivo);
tipoMantt.setReadOnly(true);
}
} else if ("2".equals(tipoParam)) { // 2 es para CORRECTIVO
TiposMantenimiento correctivo = tipoMantt.getDataProvider()
.fetch(new com.vaadin.flow.data.provider.Query<>())
.filter(tipo -> "2".equals(tipo.getTipomantId()))
.findFirst()
.orElse(null);
if (correctivo != null) {
tipoMantt.setValue(correctivo);
tipoMantt.setReadOnly(true);
}
}
}
}

Loading…
Cancel
Save