dbaylonv 10 months ago
parent
commit
ad020b2e0b
4 changed files with 187 additions and 100 deletions
  1. BIN
      src/main/bundles/dev.bundle
  2. +0
    -35
      src/main/frontend/themes/sistema-mantenimiento/styles.css
  3. +58
    -0
      src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java
  4. +129
    -65
      src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java

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


+ 0
- 35
src/main/frontend/themes/sistema-mantenimiento/styles.css View File

@ -72,43 +72,8 @@
}
/* ------------------------ FIN -------------------------- */
/*
*/
/*
*/
/* ---------------- Estilos para la vista de MantenimientosView.java ---------------- */
/* Estilo para el mantenimiento header */
.mantenimiento-header {
width: 100px;
}
/* Estilo para el comboBox tipo de mantenimiento */
.mantenimiento-combo {
margin-right: 15px;
}
/* Estilo para los tipos de hardware */
.mantenimiento-group {
width: 100px;
}
/* Etiqueta MANTENIMIENTO */
.mantenimiento-label {
margin-bottom: 10px;
}
/* Estilo para los campos de texto */
.mantenimiento-text-field {
margin-bottom: 15px;
}
/* ----------------------------- FIN --------------------------- */
/*
*/
/*
*/
/* --------------- Estilos para la vista de ActDiaria.java -------------- */
/* Estilo para el header */
.act-diaria-header {


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

@ -53,4 +53,62 @@ public class DatabaseService {
}
return nomenclatura;
}
/* -------------- Metodo para obtener a los usuarios ---------------- */
public List<String> getUsuarios() {
List<String> usuarios = new ArrayList<>();
String query = "select USUARIOID from USUARIOSFINAN";
try (Connection connection = getConnection();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query)) {
while (resultSet.next()) {
usuarios.add(resultSet.getString("usuarioid"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return usuarios;
}
/* -------------- Metodo para obtener los departamentos ---------------- */
public List<String> getDepartamentos() {
List<String> departamentos = new ArrayList<>();
String query = "select DESCRIPCION from DEPARTAMENTOSFINAN";
try (Connection connection = getConnection();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query)) {
while (resultSet.next()) {
departamentos.add(resultSet.getString("descripcion"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return departamentos;
}
/* -------------- Metodo para obtener los tipos de hardware ---------------- */
public List<String> getTiposHardware() {
List<String> tiposHardware = new ArrayList<>();
String query = "select NOMBRETIPO from TIPOSHARDWARE";
try (Connection connection = getConnection();
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query)) {
while (resultSet.next()) {
tiposHardware.add(resultSet.getString("nombretipo"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return tiposHardware;
}
}

+ 129
- 65
src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java View File

@ -1,20 +1,28 @@
package mx.gob.jumapacelaya.ui;
import com.vaadin.flow.component.button.ButtonVariant;
import com.vaadin.flow.component.checkbox.CheckboxGroup;
import com.vaadin.flow.component.combobox.ComboBox;
import com.vaadin.flow.component.datepicker.DatePicker;
import com.vaadin.flow.component.dependency.CssImport;
import com.vaadin.flow.component.html.H1;
import com.vaadin.flow.component.html.H2;
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.orderedlayout.HorizontalLayout;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.radiobutton.RadioButtonGroup;
import com.vaadin.flow.component.textfield.TextArea;
import com.vaadin.flow.component.textfield.TextField;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route;
import jakarta.annotation.security.PermitAll;
import mx.gob.jumapacelaya.services.DatabaseService;
import java.awt.*;
import java.time.LocalDate;
import java.util.List;
@ -25,9 +33,16 @@ import java.util.List;
@CssImport("./themes/sistema-mantenimiento/styles.css")
public class MantenimientoView extends VerticalLayout {
private final VerticalLayout controlsLayout;
private final DatabaseService databaseService;
private final VerticalLayout actualizacionesLayout;
public MantenimientoView() {
DatabaseService databaseService = new DatabaseService();
this.databaseService = new DatabaseService();
this.controlsLayout = new VerticalLayout();
this.actualizacionesLayout = new VerticalLayout();
HorizontalLayout fechaLayout = new HorizontalLayout();
//Componentes de texto
TextField nomenclatura = new TextField("Nomenclatura");
nomenclatura.setReadOnly(true);
@ -37,15 +52,11 @@ public class MantenimientoView extends VerticalLayout {
otras.setEnabled(false);
otras.addClassName("mantenimiento-text-field");
//Selector de fecha
DatePicker fecha = new DatePicker("Fecha");
//ComboBox
ComboBox<String> area = new ComboBox("Area o Departamento");
area.setItems("T.I", "Catastro", "Medicion"); //Areas de ejemplo
area.addClassName("mantenimiento-combo");
//ComboBox Tipo de Mantenimiento
ComboBox<String> tipoMantt = new ComboBox<>("Tipo de Mantenimiento");
List<String> tiposDeMantenimiento = databaseService.getTiposDeMantenimientos();
tipoMantt.setItems(tiposDeMantenimiento);
@ -68,82 +79,135 @@ public class MantenimientoView extends VerticalLayout {
fecha.clear();
}
});
fechaLayout.add(fecha);
fechaLayout.addAndExpand(new HorizontalLayout());
fechaLayout.add(tipoMantt, nomenclatura);
fechaLayout.setWidthFull();
ComboBox<String> usuario = new ComboBox("Usuario");
usuario.setItems("Usuario1", "Usuario2", "Usuario3");
//CheckBoxes LIMPIEZA DE EQUIPO
CheckboxGroup<String> limpiezaEq = new CheckboxGroup<>();
limpiezaEq.setWidthFull();
limpiezaEq.setLabel("LIMPIEZA DE EQUIPO REALIZDA");
limpiezaEq.setItems("CPU","Monitor","Laptop");
limpiezaEq.setWidthFull();
CheckboxGroup<String> escannerImp = new CheckboxGroup<>();
escannerImp.setItems("Escaner", "Impresora", "Otro");
escannerImp.setWidthFull();
//CheckBoxes ACTUALIZACIONES DE SEGURIDAD
CheckboxGroup<String> actualiSeg = new CheckboxGroup();
Span etiqueta = new Span("ACTUALIZACIONES DE SEGURIDAD INFORMATICA");
actualiSeg.setLabel("Actualizaciones necesarias");
actualiSeg.setItems("S.O", "Antivirus", "Firewall");
RadioButtonGroup<String> forma = new RadioButtonGroup<>();
forma.setLabel("Actividad realizada de forma:");
forma.setItems("Remota", "Manual");
RadioButtonGroup<String> masActu = new RadioButtonGroup<>();
masActu.setLabel("¿Requiere mas actualizaciones?:");
masActu.setItems("Si", "No");
masActu.addValueChangeListener(event -> {
if ("Si".equals(event.getValue())) {
otras.setEnabled(true);
} else {
otras.setEnabled(false);
}
HorizontalLayout departamentoLayout = new HorizontalLayout();
//ComboBox Area o Departamento
ComboBox<String> area = new ComboBox<>("Area o Departamento");
List<String> areas = databaseService.getDepartamentos();
area.setItems(areas);
ComboBox<String> usuario = new ComboBox<>("Usuario");
List<String> usuarios = databaseService.getUsuarios();
usuario.setItems(usuarios);
departamentoLayout.add(area, usuario);
departamentoLayout.setWidthFull();
createHardwareSection(databaseService);
addActualizacionesSection();
add(fechaLayout, departamentoLayout, controlsLayout, actualizacionesLayout);
}
private void createHardwareSection(DatabaseService databaseService) {
HorizontalLayout etiquetaLayout = new HorizontalLayout();
Span etiqueta = new Span("Limpieza de Equipo Realizada");
//Boton para agregar otro tipo de hardware
Button btnAgregarTipo = new Button(new Icon(VaadinIcon.PLUS));
btnAgregarTipo.addThemeVariants(ButtonVariant.LUMO_ICON);
btnAgregarTipo.setAriaLabel("Agregar Tipo");
//Listener del boton para agregar mas
btnAgregarTipo.addClickListener(event -> {
addNuevoTipo();
});
etiquetaLayout.add(etiqueta, btnAgregarTipo);
controlsLayout.add(etiquetaLayout);
controlsLayout.setSpacing(false);
addNuevoTipo();
}
//?Diseño del Layout de la fecha y la nomenclatura
HorizontalLayout header = new HorizontalLayout();
header.setWidthFull();
header.add(fecha);
header.addAndExpand(new HorizontalLayout());
header.add(tipoMantt);
header.add(nomenclatura);
//Metodo para agregar un nuevo ComboBox de tipo de hardware y campos de texto
private void addNuevoTipo() {
ComboBox<String> tipoHardware = new ComboBox<>();
List<String> tiposHardware = databaseService.getTiposHardware();
tipoHardware.setItems(tiposHardware);
tipoHardware.setPlaceholder("Tipo de hardware");
TextField noSerie = new TextField();
noSerie.setEnabled(false);
noSerie.setPlaceholder("No. Serie");
//?Diseño para los campos de area y el usuario
HorizontalLayout usuarioLayout = new HorizontalLayout(area, usuario/*, tipoEquipo*/);
TextField modelo = new TextField();
modelo.setEnabled(false);
modelo.setPlaceholder("Modelo");
//?Alineacion de los checkBoxes
HorizontalLayout checkboxLayout = new HorizontalLayout(forma, masActu, otras);
TextField placa = new TextField();
placa.setEnabled(false);
placa.setPlaceholder("Placa");
tipoHardware.addValueChangeListener(event -> {
String tipoSeleccionado = event.getValue();
//?Reparaciones realizadas
VerticalLayout reparacionLayout = new VerticalLayout();
Span etiqueta2 = new Span("Reparación Realizada al Equipo");
TextField instalacion = new TextField("Instalacion de Software");
TextField reparacion = new TextField("Reparacion de Hardware");
TextField cambio = new TextField("Cambio de Dispositivo");
reparacionLayout.add(etiqueta2, instalacion, reparacion, cambio);
reparacionLayout.setAlignItems(Alignment.STRETCH);
reparacionLayout.setVisible(false);
tipoMantt.addValueChangeListener(event -> {
if ("Correctivo".equals(event.getValue())) {
reparacionLayout.setVisible(true);
if (tipoSeleccionado != null) {
if ("MOUSE".equalsIgnoreCase(tipoSeleccionado) || "TECLADO".equalsIgnoreCase(tipoSeleccionado)) {
noSerie.setEnabled(false);
modelo.setEnabled(false);
placa.setEnabled(false);
} else {
noSerie.setEnabled(true);
modelo.setEnabled(true);
placa.setEnabled(true);
}
} else {
reparacionLayout.setVisible(false);
noSerie.setEnabled(false);
modelo.setEnabled(false);
placa.setEnabled(false);
}
});
//Boton para eliminar ese conjunto de hardware
Button btnEliminar = new Button(new Icon(VaadinIcon.TRASH));
btnEliminar.addThemeVariants(ButtonVariant.LUMO_ICON, ButtonVariant.LUMO_ERROR);
btnEliminar.setAriaLabel("Eliminar Tipo");
//Crear nuevo layout horizontal con estos campos
HorizontalLayout hardwareDetailsLayout = new HorizontalLayout();
hardwareDetailsLayout.add(tipoHardware, noSerie, modelo, placa, btnEliminar);
//Listener para eliminar el tipo
btnEliminar.addClickListener(event -> {
controlsLayout.remove(hardwareDetailsLayout);
});
add(header, usuarioLayout, limpiezaEq, escannerImp, etiqueta, actualiSeg, checkboxLayout, reparacionLayout);
controlsLayout.add(hardwareDetailsLayout);
}
private void addActualizacionesSection() {
VerticalLayout etiquetaLayout = new VerticalLayout();
Span Titulo = new Span("Actualizaciones de Seguridad Informatica:");
etiquetaLayout.add(Titulo);
CheckboxGroup<String> actualizaciones = new CheckboxGroup<>();
actualizaciones.setLabel("Actualizaciones Necesarias");
actualizaciones.setItems("S.O", "Antivirus", "Firewall");
RadioButtonGroup<String> formaGroup = new RadioButtonGroup<>();
formaGroup.setLabel("Actividad Realizada de Forma:");
formaGroup.setItems("Remota", "Manual");
VerticalLayout actualizacionesGroup = new VerticalLayout();
actualizacionesGroup.add(actualizaciones);
HorizontalLayout formasLayout = new HorizontalLayout();
formasLayout.add(formaGroup);
actualizacionesLayout.add(Titulo, actualizacionesGroup, formasLayout);
actualizacionesLayout.setSpacing(false);
}
}

Loading…
Cancel
Save