diff --git a/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java new file mode 100644 index 0000000..f16099b --- /dev/null +++ b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java @@ -0,0 +1,56 @@ +package mx.gob.jumapacelaya.services; + +import java.sql.*; +import java.util.ArrayList; +import java.util.List; + +public class DatabaseService { + + private final String url = "jdbc:mysql://mhdb.jumapacelaya.gob.mx:33006/Mantenimientos"; + private final String user = "root"; + private final String pass = "mantenimientos"; + + + private Connection getConnection() throws SQLException { + return DriverManager.getConnection(url, user, pass); + } + + // Método para obtener los tipos de mantenimientos + public List getTiposDeMantenimientos() { + List tiposDeMantenimientos = new ArrayList<>(); + String query = "SELECT * FROM TIPOMANT"; + + try (Connection connection = DriverManager.getConnection("jdbc:mysql://mhdb.jumapacelaya.gob.mx:33006/Mantenimientos", "root", "mantenimientos"); + Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery(query)) { + + while (resultSet.next()) { + tiposDeMantenimientos.add(resultSet.getString("NOMBRE")); + } + } catch (SQLException e) { + e.printStackTrace(); + } + return tiposDeMantenimientos; + } + + // Método para obtener las nomenclaturas + public String getNomenclatura(String tipoMantenimiento ) { + String nomenclatura = ""; + String query = "SELECT nomenclatura FROM TIPOMANT where NOMBRE = ?"; + + try (Connection connection = getConnection(); + PreparedStatement preparedStatement = connection.prepareStatement(query)) { + + preparedStatement.setString(1, tipoMantenimiento); + ResultSet resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + nomenclatura = resultSet.getString("nomenclatura"); + } + + } catch (SQLException e) { + e.printStackTrace(); + } + return nomenclatura; + } +} diff --git a/src/main/java/mx/gob/jumapacelaya/ui/ActDiariaView.java b/src/main/java/mx/gob/jumapacelaya/ui/ActDiariaView.java index d58c329..e492613 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/ActDiariaView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/ActDiariaView.java @@ -1,7 +1,11 @@ package mx.gob.jumapacelaya.ui; import com.vaadin.flow.component.button.Button; +import com.vaadin.flow.component.button.ButtonVariant; +import com.vaadin.flow.component.grid.ColumnPathRenderer; import com.vaadin.flow.component.grid.Grid; import com.vaadin.flow.component.html.H2; +import com.vaadin.flow.component.html.H3; +import com.vaadin.flow.component.icon.VaadinIcon; import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; import com.vaadin.flow.data.renderer.ComponentRenderer; @@ -18,7 +22,7 @@ import java.util.*; @PermitAll -@PageTitle("Home") +@PageTitle("Actividades Diarias") @Route(value = "actdiaria", layout = MainLayout.class) public class ActDiariaView extends VerticalLayout { @@ -29,6 +33,8 @@ public class ActDiariaView extends VerticalLayout { H2 titulo = new H2(); + Button btnCorrectivo = new Button("Correctivo"); + Grid grdColumnas = new Grid<>(ActividadDiaria.class,false); List people = Arrays.asList( @@ -38,10 +44,15 @@ public class ActDiariaView extends VerticalLayout { //new ActividadDiaria("Johannes Kepler", 1571)); public ActDiariaView() { - - titulo.setText("Listado de Actividades"); + VerticalLayout headerLayout = new VerticalLayout(); + headerLayout.getStyle().set("background-color", "#3e8bea"); + headerLayout.add(titulo); + titulo.setText("Listado de Actividades Diarias"); header.setAlignSelf(Alignment.CENTER, titulo); + + VerticalLayout gridLayout = new VerticalLayout(); + gridLayout.add(grdColumnas); //Tabla echa con un grid grdColumnas.addColumn(ActividadDiaria::getNumero).setHeader("Numero"); grdColumnas.addColumn(ActividadDiaria::getProyecto).setHeader("Proyecto"); @@ -54,11 +65,23 @@ public class ActDiariaView extends VerticalLayout { grdColumnas.addColumn(date->{ return formato.format(date.getFechaCierre()); }).setHeader("Fecha de cierre"); - Button btnCorrectivo = new Button("Correctivo"); grdColumnas.setItems(people); + // grdColumnas.addColumn( + // new ColumnPathRenderer<>(Button::new, (btnCorrectivo, ActividadDiaria) ->{ + // btnCorrectivo.addThemeVariants(ButtonVariant.LUMO_ICON, + // ButtonVariant.LUMO_ERROR, + // ButtonVariant.LUMO_TERTIARY); + // btnCorrectivo.setIcon(new Icon(VaadinIcon.TRASH)); + // })).setHeader("Prueba"); - add(titulo, header, grdColumnas); + + // add(titulo, header, grdColumnas); + this.setPadding(false); + this.setMargin(false); + this.setSpacing(false); + add(headerLayout, gridLayout); } -} \ No newline at end of file + + } diff --git a/src/main/java/mx/gob/jumapacelaya/ui/MainLayout.java b/src/main/java/mx/gob/jumapacelaya/ui/MainLayout.java index 92a4170..5976de0 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/MainLayout.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/MainLayout.java @@ -23,6 +23,7 @@ public class MainLayout extends AppLayout { public MainLayout(SecurityService securityService) { this.securityService = securityService; + this.getStyle().set("background-image", "url('images/bckgnd.png')"); setPrimarySection(Section.DRAWER); addDrawerContent(); addHeaderContent(); @@ -31,6 +32,8 @@ public class MainLayout extends AppLayout { private void addHeaderContent() { DrawerToggle toggle = new DrawerToggle(); toggle.setAriaLabel("Menu toggle"); + toggle.getStyle().set("border-radius", "50px"); + toggle.getStyle().set("back-color", "red"); viewTitle = new H2(); viewTitle.addClassNames(LumoUtility.FontSize.LARGE, LumoUtility.Margin.NONE); @@ -43,18 +46,18 @@ public class MainLayout extends AppLayout { securityService.logout(); }); logoutButton.getStyle().set("margin-right", "50px"); - logoutButton.addThemeVariants(ButtonVariant.LUMO_ERROR); + logoutButton.addThemeVariants(ButtonVariant.LUMO_PRIMARY ,ButtonVariant.LUMO_ERROR); HorizontalLayout headerContent = new HorizontalLayout(); headerContent.setDefaultVerticalComponentAlignment(FlexComponent.Alignment.CENTER); headerContent.setWidthFull(); + headerContent.setHeight("64px"); + headerContent.getStyle().set("background-color", "#AA86E0"); headerContent.add(viewTitle); headerContent.setFlexGrow(1, viewTitle); headerContent.add(usrNameLabel, logoutButton); addToNavbar(false, toggle, headerContent); - - } private void addDrawerContent() { @@ -64,7 +67,7 @@ public class MainLayout extends AppLayout { headerLayout.setAlignItems(FlexComponent.Alignment.CENTER); Image imgLogo = new Image("images/1027x160.png", "Logo"); - imgLogo.setWidth("300px"); + imgLogo.setWidth("250px"); headerLayout.add(imgLogo); @@ -76,8 +79,9 @@ public class MainLayout extends AppLayout { private SideNav createNavigation() { SideNav nav = new SideNav(); - nav.addItem(new SideNavItem("Mantenimiento", MantenimientoView.class, VaadinIcon.COGS.create())); - nav.addItem(new SideNavItem("Actividad Diaria", ActDiariaView.class, VaadinIcon.ALARM.create())); + nav.addItem(new SideNavItem("Mantenimiento", MantenimientoView.class, VaadinIcon.WRENCH.create())); + nav.addItem(new SideNavItem("Plan Anual", PlanAnualView.class, VaadinIcon.CALENDAR.create())); + nav.addItem(new SideNavItem("Listado de Actividades", ActDiariaView.class, VaadinIcon.EDIT.create())); return nav; } diff --git a/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java b/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java index 46998ba..715d15c 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java @@ -12,6 +12,9 @@ import com.vaadin.flow.component.textfield.TextField; 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.util.List; @PermitAll @@ -20,10 +23,12 @@ import jakarta.annotation.security.PermitAll; public class MantenimientoView extends VerticalLayout { public MantenimientoView() { + DatabaseService databaseService = new DatabaseService(); //Componentes de texto TextField nomenclatura = new TextField("Nomenclatura"); nomenclatura.setReadOnly(true); + TextArea otras = new TextArea("¿Cuales?"); otras.setEnabled(false); @@ -34,12 +39,23 @@ public class MantenimientoView extends VerticalLayout { //ComboBox ComboBox area = new ComboBox("Area o Departamento"); area.setItems("T.I", "Catastro", "Medicion"); //Areas de ejemplo + ComboBox tipoMantt = new ComboBox<>("Tipo de Mantenimiento"); - tipoMantt.setItems("Preventivo","Correctivo"); //Esto a futuro debera traer los tipos de mantenimiento directo de la BD + List tiposDeMantenimiento = databaseService.getTiposDeMantenimientos(); + tipoMantt.setItems(tiposDeMantenimiento); + tipoMantt.addValueChangeListener(event -> { + String tipoSeleccionado = event.getValue(); + if (tipoSeleccionado != null) { + String nomenclaturaValue = databaseService.getNomenclatura(tipoSeleccionado); + nomenclatura.setValue(nomenclaturaValue); + } else { + nomenclatura.clear(); + } + }); + ComboBox usuario = new ComboBox("Usuario"); usuario.setItems("Usuario1", "Usuario2", "Usuario3"); - /*ComboBox tipoEquipo = new ComboBox<>("Tipo de Equipo"); - tipoEquipo.setItems("Laptop", "Escritorio");*/ + //CheckBoxes LIMPIEZA DE EQUIPO CheckboxGroup limpiezaEq = new CheckboxGroup<>(); diff --git a/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java b/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java new file mode 100644 index 0000000..d180f4b --- /dev/null +++ b/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java @@ -0,0 +1,55 @@ +package mx.gob.jumapacelaya.ui; + +import com.vaadin.flow.component.button.Button; +import com.vaadin.flow.component.html.*; +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.textfield.TextField; +import com.vaadin.flow.router.PageTitle; +import com.vaadin.flow.router.Route; +import jakarta.annotation.security.PermitAll; +import mx.gob.jumapacelaya.models.ActividadDiaria; + +@PermitAll +@PageTitle("Plan Anual de Mantenimiento") +@Route(value = "plananual", layout = MainLayout.class) +public class PlanAnualView extends VerticalLayout { + + HorizontalLayout header = new HorizontalLayout(); + H3 titulo = new H3(); + + public PlanAnualView() { + VerticalLayout headerLayout = new VerticalLayout(); + headerLayout.getStyle().set("background-color", "#3e8bea"); + headerLayout.add(titulo); + titulo.setText("Plan Anual de Mantenimiento Preventivo de Equipo de Computo 2024"); + header.setAlignSelf(Alignment.CENTER, titulo); + + HorizontalLayout nomenclaturaLayout = new HorizontalLayout(); + Image celayaLogo = new Image("images/logocelaya2124.png", "celaya2024"); + celayaLogo.setWidth("100px"); + celayaLogo.getStyle().set("margin-left", "15px"); + celayaLogo.getStyle().set("margin-top", "15px"); + + TextField nomenclaturaTxt = new TextField(); + nomenclaturaTxt.setValue("FR01-PA-7.1.3-02"); + nomenclaturaTxt.setReadOnly(true); + nomenclaturaTxt.getStyle().set("margin-right", "15px"); + nomenclaturaTxt.getStyle().set("margin-top", "15px"); + + + nomenclaturaLayout.add(celayaLogo); + nomenclaturaLayout.addAndExpand(new HorizontalLayout()); + nomenclaturaLayout.add(nomenclaturaTxt); + + + + + this.setPadding(false); + this.setMargin(false); + this.setSpacing(false); + add(headerLayout, nomenclaturaLayout); + + } +} diff --git a/src/main/resources/META-INF/resources/images/bckgnd.png b/src/main/resources/META-INF/resources/images/bckgnd.png new file mode 100644 index 0000000..8b523af Binary files /dev/null and b/src/main/resources/META-INF/resources/images/bckgnd.png differ diff --git a/src/main/resources/META-INF/resources/images/logocelaya2124.png b/src/main/resources/META-INF/resources/images/logocelaya2124.png new file mode 100644 index 0000000..ea7dd98 Binary files /dev/null and b/src/main/resources/META-INF/resources/images/logocelaya2124.png differ diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3cd6d21..395cd04 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -18,9 +18,9 @@ spring.ldap.password=Dr3na%134$4guA #Conexion a la base de datos Mantenimientos -# MySQL Configuration -spring.jpa.hibernate.ddl-auto=update -spring.datasource.url=jdbc:mysql://HOST:PORT/DB_NAME -spring.datasource.username=USERNAME -spring.datasource.password=PASSWORD -spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +#MySQL Configuration +#spring.jpa.hibernate.ddl-auto=update +#spring.datasource.url=jdbc:mysql://mhdb.jumapacelaya.gob.mx:33006/Mantenimientos +#spring.datasource.username=root +#spring.datasource.password=mantenimientos +#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver