From dd94512a1b82b330ead82b633831ff22ec7453a6 Mon Sep 17 00:00:00 2001 From: mramirezg Date: Thu, 5 Feb 2026 15:58:16 -0600 Subject: [PATCH] limpieza de codigo siguiendo buenas paracticas y tambien se cambiaron los logs con un sistema mas robusto --- .../gob/jumapacelaya/api/RedmineClient.java | 72 +++++-------------- .../controller/SecurityConfiguration.java | 27 ++++--- .../services/DatabaseService.java | 68 +++++++++--------- .../jumapacelaya/services/EmailService.java | 2 +- .../jumapacelaya/services/LdapService.java | 2 +- .../mx/gob/jumapacelaya/ui/ActDiariaView.java | 14 ++-- .../gob/jumapacelaya/ui/DetallesMantView.java | 6 +- .../jumapacelaya/ui/MantCorrectivoView.java | 12 ++-- .../jumapacelaya/ui/MantenimientoView.java | 18 ++--- .../mx/gob/jumapacelaya/ui/PlanAnualView.java | 23 +++--- .../gob/jumapacelaya/ui/login/LoginView.java | 3 - src/main/resources/application.properties | 4 +- 12 files changed, 102 insertions(+), 149 deletions(-) diff --git a/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java b/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java index 34af0bf..55511de 100644 --- a/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java +++ b/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java @@ -7,6 +7,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; + import java.io.IOException; import java.net.URI; import java.net.http.HttpClient; @@ -84,10 +85,10 @@ public class RedmineClient { if (response.statusCode() == 200) { tickets.addAll(parseTickets(response.body())); } else { - System.err.println("Error en la respuesta: " + response.statusCode()); + log.error("Error al obtener tickets. Codigo de estado: {}", response.statusCode()); } } catch (Exception e) { - e.printStackTrace(); + log.error("Ocurrió una excepción al procesar la respuesta del servidor: ", e); } return tickets; @@ -135,55 +136,15 @@ public class RedmineClient { JsonObject jsonObject = JsonParser.parseString(response.body()).getAsJsonObject(); return jsonObject.get("total_count").getAsInt(); } else { - System.err.println("Error en la respuesta: " + response.statusCode()); + log.error("Error al obtener los tickets. Codigo de estado: {}", response.statusCode()); } } catch (Exception e) { - e.printStackTrace(); + log.error("Ocurrió un error al procesar l respuesta del servidor", e); } return 0; } - //AQUI OBTENGO LOS TICKETS DESDE REDMINE - /*public List getTicketsAuthor(RedmineUser user, boolean includeClosed) { - List tickets = new ArrayList<>(); - HttpClient client = HttpClient.newHttpClient(); - int offset = 0; - - // Si includeClose es true, incluira todos los tikets si no, incluira solo los que estan abiertos - String statusFilter = includeClosed ? "&status_id=*" : "&status_id=open"; - - - while (true) { - HttpRequest request = HttpRequest.newBuilder() - .uri(URI.create(REDMINE_URL + "/issues.json?key=" + user.getKey() + "&author_id=" + user.getId() + statusFilter + "&offset=" + offset)) - .header("Content-Type", "application/json") - .build(); - - try { - HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); - if (response.statusCode() == 200) { - String responseBody = response.body(); - List pageTickets = parseTickets(responseBody); - tickets.addAll(pageTickets); - if (pageTickets.size() < PAGE_SIZE) { - break; - } - offset += PAGE_SIZE; - } else { - System.err.println("Error en la respuesta: " + response.statusCode()); - break; - } - } catch (Exception e) { - e.printStackTrace(); - break; - } - } - System.out.println("Total tickets obtenidos: " + tickets.size()); - return tickets; - }*/ - - // Aquí se parsean todos los tickets que existen y se les da un formato con los campos a mostrarse private List parseTickets(String json) { List tickets = new ArrayList<>(); @@ -254,11 +215,10 @@ public class RedmineClient { tickets.add(ticketObj); } } else { - System.out.println("La respuesta JSON no contiene la clave 'issues'"); + log.info("La respuesta JSON no contiene la clave 'issues'. Respuesta completa: {}", json); } } catch (Exception e) { - e.printStackTrace(); - System.out.println("Ocurrió un error al parsear los tickets: " + e.getMessage()); + log.error("Ocurrió un error al parsear los tickets: ", e); } return tickets; } @@ -290,7 +250,7 @@ public class RedmineClient { //return response.body(); } catch (IOException | InterruptedException e) { - e.printStackTrace(); + log.error("Error al obtener la cuenta del usuario: {}", e); return null; } } @@ -331,7 +291,7 @@ public class RedmineClient { return newUser; } catch (Exception e) { - e.printStackTrace(); + log.error("Error al crear el usuario: {}", e); return null; } } @@ -350,13 +310,13 @@ public class RedmineClient { HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); if (response.statusCode() == 200) { String responseBody = response.body(); - System.out.println("Datos del usuario " + responseBody); + log.info("Datos del usuario " + responseBody); return parseUser(responseBody); } else { - System.err.println("Error en la respuesta: " + response.statusCode()); + log.error("Error en la respuesta {}", response.statusCode()); } } catch (Exception e) { - e.printStackTrace(); + log.error("Error al obtener el usuario por nombre de usuario: {}", e); } return null; } @@ -398,10 +358,10 @@ public class RedmineClient { HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); if (response.statusCode() == 204) { String responseBody = response.body(); - System.out.println("Ticket " + ticketId + " cerrado correctamente."); + log.info("Ticket " + ticketId + " cerrado correctamente."); } else { - System.err.println("Error al cerrar el ticket: " + response.statusCode()); - System.err.println(response.body()); + log.error("Error al cerrar el ticket: {}", response.statusCode()); + log.error(response.body()); } } @@ -433,7 +393,7 @@ public class RedmineClient { return LocalDateTime.parse(dateStr); } } catch (DateTimeParseException ex) { - System.err.println("Error al parsear fecha '" + fieldName + "': " + dateStr); + log.error("Error al parsear fecha '" + fieldName + "': " + dateStr); return null; } } diff --git a/src/main/java/mx/gob/jumapacelaya/controller/SecurityConfiguration.java b/src/main/java/mx/gob/jumapacelaya/controller/SecurityConfiguration.java index b5653b1..297a7fa 100644 --- a/src/main/java/mx/gob/jumapacelaya/controller/SecurityConfiguration.java +++ b/src/main/java/mx/gob/jumapacelaya/controller/SecurityConfiguration.java @@ -19,6 +19,21 @@ import org.springframework.ldap.core.support.LdapContextSource; public class SecurityConfiguration extends VaadinWebSecurity { + @Value("${spring.ldap.domain}") + private String ldapDomain; + + @Value("${spring.ldap.urls}") + private String ldapUrls; + + @Value("${spring.ldap.url}") + private String ldapUrl; + + @Value("${spring.ldap.base}") + private String ldapBase; + + @Value("${spring.ldap.password}") + private String ldapPassword; + @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeHttpRequests(auth -> auth @@ -40,23 +55,13 @@ public class SecurityConfiguration extends VaadinWebSecurity { // !Esta es la real autenticacion con ldap @Autowired public void configure(AuthenticationManagerBuilder auth) throws Exception { - ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider("JUMAPACELAYA.GOB.MX", "ldap://172.16.0.1"); + ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider(ldapDomain, ldapUrl); provider.setConvertSubErrorCodesToExceptions(true); provider.setUseAuthenticationRequestCredentials(true); auth.authenticationProvider(provider); } - @Value("${spring.ldap.urls}") - private String ldapUrls; - - @Value("${spring.ldap.base}") - private String ldapBase; - - @Value("${spring.ldap.password}") - private String ldapPassword; - - @Bean public LdapContextSource ldapContextSource() { LdapContextSource contextSource = new LdapContextSource(); diff --git a/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java index ff57138..1369815 100644 --- a/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java +++ b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java @@ -4,18 +4,18 @@ import mx.gob.jumapacelaya.models.*; import mx.gob.jumapacelaya.models.encuestas.MantenimientosSinEncuesta; import mx.gob.jumapacelaya.models.encuestas.Pregunta; import mx.gob.jumapacelaya.models.encuestas.Respuesta; -import oracle.jdbc.OracleConnection; -import oracle.jdbc.OraclePreparedStatement; -import oracle.sql.CLOB; -import org.apache.poi.ss.usermodel.*; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.IOException; import java.io.InputStream; -import java.io.StringReader; -import java.security.interfaces.RSAKey; import java.sql.*; import java.time.LocalDate; import java.util.ArrayList; @@ -25,6 +25,7 @@ import java.util.UUID; @Service public class DatabaseService { + private static final Logger logger = LoggerFactory.getLogger(DatabaseService.class); @Value("${db.url}") private String dbUrl; @@ -63,7 +64,7 @@ public class DatabaseService { tiposDeMantenimientos.add(tipo); } } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al obtener tipos de mantenimientos: ", e); } return tiposDeMantenimientos; } @@ -84,8 +85,7 @@ public class DatabaseService { } } catch (SQLException e) { - e.printStackTrace(); - System.err.println("Error al obtener nomenclatura: " + e.getMessage()); + logger.error("Error al obtener nomenclatura: ", e); } return nomenclatura; } @@ -109,7 +109,7 @@ public class DatabaseService { usuarios.add(usuario); } } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al obtener usuarios: ", e); } return usuarios; } @@ -131,7 +131,7 @@ public class DatabaseService { departamentos.add(departamentosModel); } } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al obtener departamentos: ", e); } return departamentos; } @@ -153,7 +153,7 @@ public class DatabaseService { tiposHardware.add(tiposHardwareModel); } } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al obtener tipos de hardware: ", e); } return tiposHardware; } @@ -206,7 +206,7 @@ public class DatabaseService { } System.out.println("Registros obtenidos: " + planAnualList.size()); } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al obtener plan anual: ", e); } return planAnualList; } @@ -257,7 +257,7 @@ public class DatabaseService { } } } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al obtener plan anual por id: ", e); } return null; } @@ -312,7 +312,7 @@ public class DatabaseService { } } } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al obtener detalles del mantenimiento por plan anual id: ", e); } return null; @@ -372,7 +372,7 @@ public class DatabaseService { )); } } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al obtener mantenimientos sin encuesta respondida por periodo: ", e); } return lista; @@ -405,7 +405,7 @@ public class DatabaseService { } } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al obtener detalles del hardaware por ID: ", e); } return detalles; } @@ -434,7 +434,7 @@ public class DatabaseService { } } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al obtener las actualizaciones de seguridad: ", e); } return actualizaciones; } @@ -480,7 +480,7 @@ public class DatabaseService { } } } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al obtener los mantenimientos correctivos: ", e); } return mantCorrectivos; } @@ -565,14 +565,13 @@ public class DatabaseService { connection.commit(); } catch (SQLException e) { - System.err.println("Error al insertar mantenimiento: " + e.getMessage()); - e.printStackTrace(); + logger.error("Error al insertar mantenimiento: ", e); // En caso de error, se hace rollback if (connection != null) { try { connection.rollback(); } catch (SQLException rollbackEx) { - System.err.println("Error al hacer rollback: " + rollbackEx.getMessage()); + logger.error("Error al hacer rollback: ", rollbackEx); } } } finally { @@ -608,7 +607,7 @@ public class DatabaseService { int rowsAffected = preparedStatement.executeUpdate(); isInserted = rowsAffected > 0; } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al insertar hardware: ", e); } return isInserted; } @@ -624,7 +623,7 @@ public class DatabaseService { } } } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al obtener el ultimo id de mantenimiento: ", e); } return ultimoId; } @@ -832,7 +831,7 @@ public class DatabaseService { stmt.setInt(2, planAnualId); return stmt.executeUpdate() > 0; } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al actualizar el plan anual: ", e); return false; } } @@ -859,7 +858,7 @@ public class DatabaseService { stmt.setInt(8, mantenimientoId); return stmt.executeUpdate() > 0; } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al actualizar el mantenimiento: ", e); return false; } } @@ -875,7 +874,7 @@ public class DatabaseService { stmt.setInt(4, detalle.getHardwareDetId()); return stmt.executeUpdate() > 0; } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al actualizar el detalle del hardware: ", e); return false; } } @@ -889,7 +888,7 @@ public class DatabaseService { stmt.setInt(2, actualizacion.getActualizacionsegId()); return stmt.executeUpdate() > 0; } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al actualizar la actualización de seguridad: ", e); return false; } } @@ -905,7 +904,7 @@ public class DatabaseService { stmt.setString(4, motivo); return stmt.executeUpdate() > 0; } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al insertar en bitacora: ", e); return false; } } @@ -921,7 +920,7 @@ public class DatabaseService { stmt.setString(4, motivo); return stmt.executeUpdate() > 0; } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al insertar en bitacora de eliminacion de equipos: ", e); return false; } } @@ -940,8 +939,7 @@ public class DatabaseService { System.out.println("No se encontró el equipo con ID: " + planAnualId); } } catch (SQLException e) { - System.err.println("Error al eliminar el equipo de PLANANUAL: " + e.getMessage()); - e.printStackTrace(); + logger.error("Error al eliminar el equipo de PLANANUAL: ", e); } } @@ -971,7 +969,7 @@ public class DatabaseService { preguntas.add(pregunta); } } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al obtener las preguntas de la encuesta: ", e); } return preguntas; } @@ -1053,7 +1051,7 @@ public class DatabaseService { stmt.executeUpdate(); } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al crear el token de encuesta: ", e); } return token; } @@ -1070,7 +1068,7 @@ public class DatabaseService { return rs.getInt("MANTENIMIENTOID"); } } catch (SQLException e) { - e.printStackTrace(); + logger.error("Error al validar el token de encuesta: ", e); } return null; } diff --git a/src/main/java/mx/gob/jumapacelaya/services/EmailService.java b/src/main/java/mx/gob/jumapacelaya/services/EmailService.java index cd26e89..f766422 100644 --- a/src/main/java/mx/gob/jumapacelaya/services/EmailService.java +++ b/src/main/java/mx/gob/jumapacelaya/services/EmailService.java @@ -36,7 +36,7 @@ public class EmailService { } catch (Exception e) { - e.printStackTrace(); + log.error("Error al enviar el correo: ", e); throw new RuntimeException("Error al enviar el correo: " + e.getMessage()); } } diff --git a/src/main/java/mx/gob/jumapacelaya/services/LdapService.java b/src/main/java/mx/gob/jumapacelaya/services/LdapService.java index 53b5a71..c36fd10 100644 --- a/src/main/java/mx/gob/jumapacelaya/services/LdapService.java +++ b/src/main/java/mx/gob/jumapacelaya/services/LdapService.java @@ -25,7 +25,7 @@ public class LdapService { SearchControls searchControls = new SearchControls(); searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE); searchControls.setReturningAttributes(new String[]{"givenName", "sn", "mail"}); - searchControls.setReturningObjFlag(true); + searchControls.setReturningObjFlag(false); List result = ldapTemplate.search("", filter.encode(), searchControls, (Attributes attrs) -> { String firstName = getAttribute(attrs, "givenName"); diff --git a/src/main/java/mx/gob/jumapacelaya/ui/ActDiariaView.java b/src/main/java/mx/gob/jumapacelaya/ui/ActDiariaView.java index e68bc12..ef5e384 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/ActDiariaView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/ActDiariaView.java @@ -11,9 +11,7 @@ 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.html.Anchor; import com.vaadin.flow.component.html.Div; -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; @@ -22,13 +20,11 @@ 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; -import com.vaadin.flow.component.page.Push; import com.vaadin.flow.component.popover.Popover; import com.vaadin.flow.component.popover.PopoverPosition; import com.vaadin.flow.component.progressbar.ProgressBar; import com.vaadin.flow.component.richtexteditor.RichTextEditor; import com.vaadin.flow.data.renderer.ComponentRenderer; -import com.vaadin.flow.function.SerializableBiConsumer; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; import com.vaadin.flow.server.StreamRegistration; @@ -36,10 +32,8 @@ import com.vaadin.flow.server.StreamResource; import jakarta.annotation.security.PermitAll; import mx.gob.jumapacelaya.api.RedmineClient; import mx.gob.jumapacelaya.api.ServerProperties; -import mx.gob.jumapacelaya.models.ActividadDiaria; import mx.gob.jumapacelaya.models.RedmineUser; import mx.gob.jumapacelaya.models.Ticket; -import mx.gob.jumapacelaya.services.LdapService; import mx.gob.jumapacelaya.services.UserService; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.*; @@ -50,17 +44,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.vaadin.lineawesome.LineAwesomeIcon; - import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; -import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; -import java.util.*; +import java.util.List; +import java.util.Locale; +import java.util.Set; import java.util.stream.Stream; @@ -394,7 +388,7 @@ public class ActDiariaView extends VerticalLayout { UI.getCurrent().getPage().executeJs("setTimeout(() => { window.location.reload(); }, 3000);"); } catch (IOException | InterruptedException e) { - e.printStackTrace(); + log.error("Error al cerrar el ticket " + ticket.getId(), e); Notification.show("Error al cerrar el ticket " + ticket.getId()); } } diff --git a/src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java b/src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java index 5042246..6fd826b 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/DetallesMantView.java @@ -14,6 +14,8 @@ import com.vaadin.flow.server.StreamRegistration; import com.vaadin.flow.server.StreamResource; import mx.gob.jumapacelaya.services.EmailService; import mx.gob.jumapacelaya.services.ReportService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; @@ -53,6 +55,8 @@ import mx.gob.jumapacelaya.services.SecurityService; @CssImport("./themes/sistema-mantenimiento/styles.css") public class DetallesMantView extends VerticalLayout implements BeforeEnterObserver { + private static final Logger logger = LoggerFactory.getLogger(DetallesMantView.class); + @Value("${app.base-url}") private String baseUrl; @@ -296,7 +300,7 @@ public class DetallesMantView extends VerticalLayout implements BeforeEnterObser } catch (Exception ex) { Notification.show("Error al generar el reporte: " + ex.getMessage(), 4000, Notification.Position.MIDDLE) .addThemeVariants(NotificationVariant.LUMO_ERROR); - ex.printStackTrace(); + logger.error("Error al generar el reporte: ", ex); } }); diff --git a/src/main/java/mx/gob/jumapacelaya/ui/MantCorrectivoView.java b/src/main/java/mx/gob/jumapacelaya/ui/MantCorrectivoView.java index ec6ad2f..6d4c087 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/MantCorrectivoView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/MantCorrectivoView.java @@ -1,6 +1,5 @@ package mx.gob.jumapacelaya.ui; -import com.vaadin.flow.component.Text; import com.vaadin.flow.component.UI; import com.vaadin.flow.component.button.Button; import com.vaadin.flow.component.button.ButtonVariant; @@ -24,9 +23,6 @@ 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.data.renderer.ComponentRenderer; -import com.vaadin.flow.function.ValueProvider; -import com.vaadin.flow.router.BeforeEnterEvent; -import com.vaadin.flow.router.BeforeEnterObserver; import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; import de.f0rce.signaturepad.SignaturePad; @@ -36,6 +32,8 @@ import mx.gob.jumapacelaya.services.DatabaseService; import mx.gob.jumapacelaya.services.EmailService; import mx.gob.jumapacelaya.services.SecurityService; import mx.gob.jumapacelaya.services.UserService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.vaadin.lineawesome.LineAwesomeIcon; import java.time.LocalDate; @@ -48,6 +46,8 @@ import java.util.*; @CssImport("./themes/sistema-mantenimiento/styles.css") public class MantCorrectivoView extends VerticalLayout { + private static final Logger logger = LoggerFactory.getLogger(MantCorrectivoView.class); + private VerticalLayout mainLayout; private final SecurityService securityService; private final VerticalLayout controlsLayout; @@ -592,7 +592,7 @@ public class MantCorrectivoView extends VerticalLayout { } catch (Exception e) { Notification.show("Error al enviar el correo", 4000, Notification.Position.MIDDLE) .addThemeVariants(NotificationVariant.LUMO_ERROR); - e.printStackTrace(); + logger.error("Error al enviar correo: ", e); } // Limpiar campos @@ -622,7 +622,7 @@ public class MantCorrectivoView extends VerticalLayout { } catch (Exception ex) { Notification.show("Ocurrio un error inesperado: " + ex.getMessage(), 5000, Notification.Position.MIDDLE) .addThemeVariants(NotificationVariant.LUMO_ERROR); - ex.printStackTrace(); + logger.error("Error al insertar mantenimiento: ", ex); } } diff --git a/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java b/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java index 1f1b5fb..a11916b 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java @@ -1,29 +1,24 @@ package mx.gob.jumapacelaya.ui; -import com.vaadin.flow.component.Component; import com.vaadin.flow.component.UI; +import com.vaadin.flow.component.button.Button; 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.dialog.Dialog; -import com.vaadin.flow.component.html.H1; -import com.vaadin.flow.component.html.H2; import com.vaadin.flow.component.html.Image; 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; import com.vaadin.flow.component.radiobutton.RadioButtonGroup; -import com.vaadin.flow.component.textfield.NumberField; 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.BeforeEnterEvent; import com.vaadin.flow.router.BeforeEnterObserver; import com.vaadin.flow.router.PageTitle; @@ -35,9 +30,8 @@ import mx.gob.jumapacelaya.services.DatabaseService; import mx.gob.jumapacelaya.services.EmailService; import mx.gob.jumapacelaya.services.SecurityService; import mx.gob.jumapacelaya.services.UserService; -import oracle.net.aso.h; - -import org.springframework.beans.factory.annotation.Autowired; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.vaadin.lineawesome.LineAwesomeIcon; import java.time.LocalDate; @@ -50,6 +44,8 @@ import java.util.*; @CssImport("./themes/sistema-mantenimiento/styles.css") public class MantenimientoView extends VerticalLayout implements BeforeEnterObserver { + private static final Logger logger = LoggerFactory.getLogger(MantenimientoView.class); + private final SecurityService securityService; private final VerticalLayout controlsLayout; private final DatabaseService databaseService; @@ -717,7 +713,7 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse } catch (Exception e) { Notification.show("Error al enviar el correo", 4000, Notification.Position.MIDDLE) .addThemeVariants(NotificationVariant.LUMO_ERROR); - e.printStackTrace(); + logger.error("Error al enviar el correo", e); } // Limpiar campos @@ -747,7 +743,7 @@ public class MantenimientoView extends VerticalLayout implements BeforeEnterObse } catch (Exception ex) { Notification.show("Ocurrio un error inesperado: " + ex.getMessage(), 5000, Notification.Position.MIDDLE) .addThemeVariants(NotificationVariant.LUMO_ERROR); - ex.printStackTrace(); + logger.error("Error al insertar mantenimiento", ex); } } diff --git a/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java b/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java index b929f38..0667bec 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/PlanAnualView.java @@ -1,19 +1,15 @@ package mx.gob.jumapacelaya.ui; -import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator; import com.vaadin.flow.component.Component; import com.vaadin.flow.component.UI; import com.vaadin.flow.component.button.Button; import com.vaadin.flow.component.button.ButtonVariant; -import com.vaadin.flow.component.checkbox.Checkbox; import com.vaadin.flow.component.checkbox.CheckboxGroup; import com.vaadin.flow.component.checkbox.CheckboxGroupVariant; import com.vaadin.flow.component.combobox.ComboBox; -import com.vaadin.flow.component.confirmdialog.ConfirmDialog; import com.vaadin.flow.component.datepicker.DatePicker; import com.vaadin.flow.component.dependency.CssImport; import com.vaadin.flow.component.dialog.Dialog; -import com.vaadin.flow.component.formlayout.FormLayout; import com.vaadin.flow.component.grid.Grid; import com.vaadin.flow.component.grid.GridVariant; import com.vaadin.flow.component.grid.HeaderRow; @@ -29,12 +25,10 @@ import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.orderedlayout.VerticalLayout; import com.vaadin.flow.component.popover.Popover; import com.vaadin.flow.component.popover.PopoverPosition; -import com.vaadin.flow.component.radiobutton.RadioButtonGroup; import com.vaadin.flow.component.textfield.NumberField; import com.vaadin.flow.component.textfield.TextField; import com.vaadin.flow.component.upload.Upload; import com.vaadin.flow.component.upload.receivers.MemoryBuffer; -import com.vaadin.flow.data.provider.ListDataProvider; import com.vaadin.flow.data.renderer.ComponentRenderer; import com.vaadin.flow.data.value.ValueChangeMode; import com.vaadin.flow.function.ValueProvider; @@ -48,19 +42,20 @@ import mx.gob.jumapacelaya.models.encuestas.MantenimientosSinEncuesta; import mx.gob.jumapacelaya.services.DatabaseService; import mx.gob.jumapacelaya.services.EmailService; import mx.gob.jumapacelaya.services.ReportService; -import net.sf.jasperreports.engine.JasperFillManager; -import net.sf.jasperreports.engine.JasperPrint; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.vaadin.lineawesome.LineAwesomeIcon; -import java.io.*; -import java.lang.reflect.Array; -import java.sql.Date; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; import java.time.LocalDate; import java.time.Year; import java.time.format.DateTimeFormatter; @@ -75,6 +70,8 @@ import java.util.stream.IntStream; @CssImport("./themes/sistema-mantenimiento/styles.css") public class PlanAnualView extends VerticalLayout { + private static final Logger logger = LoggerFactory.getLogger(PlanAnualView.class); + private final EmailService emailService; @Value("${app.base-url}") private String baseUrl; @@ -712,7 +709,7 @@ public class PlanAnualView extends VerticalLayout { } catch (Exception ex) { Notification.show("Error al genrar el reporte: " + ex.getMessage(), 5000, Notification.Position.MIDDLE) .addThemeVariants(NotificationVariant.LUMO_ERROR); - ex.printStackTrace(); + logger.error("Error al generar el reporte", ex); } }); @@ -926,7 +923,7 @@ public class PlanAnualView extends VerticalLayout { } catch (Exception ex) { Notification.show("Error al generar el reporte: " + ex.getMessage(), 5000, Notification.Position.MIDDLE) .addThemeVariants(NotificationVariant.LUMO_ERROR); - ex.printStackTrace(); + logger.error("Error al generar el reporte", ex); } }); diff --git a/src/main/java/mx/gob/jumapacelaya/ui/login/LoginView.java b/src/main/java/mx/gob/jumapacelaya/ui/login/LoginView.java index 13bb9ad..eb705b4 100644 --- a/src/main/java/mx/gob/jumapacelaya/ui/login/LoginView.java +++ b/src/main/java/mx/gob/jumapacelaya/ui/login/LoginView.java @@ -22,9 +22,6 @@ public class LoginView extends VerticalLayout implements BeforeEnterObserver { private static final Logger log = LoggerFactory.getLogger(LoginView.class); private final LoginForm login = new LoginForm(); - // Usuario local para demostracion - private final String localUser = "admin"; - private final String localPassword = "admin"; public LoginView(){ diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 07e7500..0e7d86a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -13,7 +13,9 @@ spring.jpa.defer-datasource-initialization = true #Configuracion LDAP -spring.ldap.urls=ldap://172.1.0.1:389 +spring.ldap.urls=ldap://172.16.0.1:389 +spring.ldap.url=ldap://172.16.0.1 +spring.ldap.domain=JUMAPACELAYA.GOB.MX spring.ldap.base=DC=JUMAPACELAYA,DC=GOB,DC=MX spring.ldap.username=administrator spring.ldap.password=Dr3na$134%4guA