diff --git a/pom.xml b/pom.xml index 0fe2887..3ce8ff4 100644 --- a/pom.xml +++ b/pom.xml @@ -40,6 +40,11 @@ + + oracle-public + https://maven.oracle.com/public + + @@ -76,6 +81,11 @@ runtime + + org.springframework.boot + spring-boot-starter-jdbc + + mysql mysql-connector-java @@ -83,8 +93,8 @@ - org.springframework.boot - spring-boot-starter-jdbc + com.oracle.database.jdbc + ojdbc8 @@ -96,43 +106,52 @@ org.springframework.boot spring-boot-starter-validation + org.springframework.boot spring-boot-devtools true + org.springframework.security spring-security-ldap + org.springframework.boot spring-boot-starter-test test + org.springframework.boot spring-boot-starter-data-ldap + org.springframework.ldap spring-ldap-core + com.vaadin vaadin-testbench-junit5 test + de.f0rce.signaturepad signature-widget 3.1.0 + org.apache.poi poi-ooxml 5.2.0 + commons-io commons-io diff --git a/src/main/bundles/dev.bundle b/src/main/bundles/dev.bundle index b5fa23b..6a60ca5 100644 Binary files a/src/main/bundles/dev.bundle and b/src/main/bundles/dev.bundle differ diff --git a/src/main/frontend/themes/sistema-mantenimiento/styles.css b/src/main/frontend/themes/sistema-mantenimiento/styles.css index 12a52b2..57bd6a1 100644 --- a/src/main/frontend/themes/sistema-mantenimiento/styles.css +++ b/src/main/frontend/themes/sistema-mantenimiento/styles.css @@ -210,13 +210,19 @@ vaadin-button[theme~="primary"] { } vaadin-button:not([theme]) { - color: #bc955b; + color: #a02142; } vaadin-button:hover::before { color: blue; } +/* Estilos para el theme personalizado 'subir-archivo' */ +vaadin-button[theme~="subir-archivo"] { + background-color: #691b31; + color: #ffffff; +} + /* (*)(*) (*)(*) (*)(*) (*)(*) (*)(*) (*)(*) (*)(*) (*)(*) (*)(*) (*)(*) (*)(*) (*)(*) */ /* (*)(*) (*)(*) (*)(*) (*)(*) (*)(*) (*)(*) */ /*Estilos especificos para los CheckBox y RadioButtons */ diff --git a/src/main/java/mx/gob/jumapacelaya/Application.java b/src/main/java/mx/gob/jumapacelaya/Application.java index a800726..a3906b6 100644 --- a/src/main/java/mx/gob/jumapacelaya/Application.java +++ b/src/main/java/mx/gob/jumapacelaya/Application.java @@ -6,6 +6,8 @@ import com.vaadin.flow.theme.Theme; import mx.gob.jumapacelaya.services.DatabaseService; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration; /** * The entry point of the Spring Boot application. diff --git a/src/main/java/mx/gob/jumapacelaya/datasource/MysqlDataSource.java b/src/main/java/mx/gob/jumapacelaya/datasource/MysqlDataSource.java new file mode 100644 index 0000000..d22777f --- /dev/null +++ b/src/main/java/mx/gob/jumapacelaya/datasource/MysqlDataSource.java @@ -0,0 +1,31 @@ +package mx.gob.jumapacelaya.datasource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.jdbc.DataSourceBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import javax.sql.DataSource; + +@Configuration +public class MysqlDataSource { + + @Bean(name= "mysqlDB") + @Primary + @ConfigurationProperties(prefix = "spring.datasource") + public DataSource mysqlDataSource() { + return DataSourceBuilder.create().build(); + } + + + @Bean(name = "mysqlJdbcTemplate") + @Autowired + public JdbcTemplate mysqlTemplate(@Qualifier("mysqlDB") DataSource mysqlDB) { + return new JdbcTemplate(mysqlDB); + } +} diff --git a/src/main/java/mx/gob/jumapacelaya/datasource/OracleDataSource.java b/src/main/java/mx/gob/jumapacelaya/datasource/OracleDataSource.java new file mode 100644 index 0000000..8cda230 --- /dev/null +++ b/src/main/java/mx/gob/jumapacelaya/datasource/OracleDataSource.java @@ -0,0 +1,27 @@ +package mx.gob.jumapacelaya.datasource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.jdbc.DataSourceBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.jdbc.core.JdbcTemplate; + +import javax.sql.DataSource; + +@Configuration +public class OracleDataSource { + + @Bean(name = "oracleDB") + @ConfigurationProperties(prefix = "spring.datasource.secondary") + public DataSource oracleDataSource() { + return DataSourceBuilder.create().build(); + } + + @Bean(name = "oracleTemplate") + @Autowired + public JdbcTemplate oracleJdbcTemplate(@Qualifier("oracleDB") DataSource oracleDB) { + return new JdbcTemplate(oracleDB); + } +} diff --git a/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java index eeadf17..d512264 100644 --- a/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java +++ b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java @@ -5,8 +5,6 @@ import mx.gob.jumapacelaya.models.*; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import javax.swing.plaf.PanelUI; -import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.sql.*; @@ -17,7 +15,7 @@ import java.util.List; public class DatabaseService { - private Connection getConnection() throws SQLException { + private Connection getMysqlConnection() throws SQLException { String url = "jdbc:mysql://mhdb.jumapacelaya.gob.mx:33006/Mantenimientos"; String user = "root"; String pass = "mantenimientos"; @@ -26,12 +24,21 @@ public class DatabaseService { } + private Connection getOracleConnection() throws SQLException { + String url = "jdbc:oracle:thin:@//svradminfinan:1521/admfinpdb.JUMAPACELAYA.GOB.MX"; + String user = "Finanzas"; + String pass = "finanzas"; + + return DriverManager.getConnection(url, user, pass); + + } + // Método para obtener los tipos de mantenimientos public List getTiposDeMantenimientos() { List tiposDeMantenimientos = new ArrayList<>(); String query = "SELECT tipomantid, nombre FROM TIPOMANT"; - try (Connection connection = getConnection(); + try (Connection connection = getMysqlConnection(); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery(query)) { @@ -53,7 +60,7 @@ public class DatabaseService { String nomenclatura = ""; String query = "SELECT nomenclatura FROM TIPOMANT where TIPOMANTID = ?"; - try (Connection connection = getConnection(); + try (Connection connection = getMysqlConnection(); PreparedStatement preparedStatement = connection.prepareStatement(query)) { preparedStatement.setString(1, tipoMantenimiento); @@ -74,9 +81,12 @@ public class DatabaseService { /* -------------- Metodo para obtener a los usuarios ---------------- */ public List getUsuarios() { List usuarios = new ArrayList<>(); - String query = "select EMPLEADOID, NOMBRE from USUARIOSFINAN"; + String query = "SELECT u.*, e.EMAIL \n" + + "FROM ADMON.USUARIOS u\n" + + "INNER JOIN ADMON.EMPLEADOS e ON\n" + + "u.EMPLEADOID = e.EMPLEADOID"; - try (Connection connection = getConnection(); + try (Connection connection = getOracleConnection(); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery(query)) { @@ -97,9 +107,9 @@ public class DatabaseService { /* -------------- Metodo para obtener los departamentos ---------------- */ public List getDepartamentos() { List departamentos = new ArrayList<>(); - String query = "select DEPARTAMENTOID, DESCRIPCION from DEPARTAMENTOSFINAN"; + String query = "select DEPARTAMENTOID, DESCRIPCION from DEPARTAMENTO"; - try (Connection connection = getConnection(); + try (Connection connection = getOracleConnection(); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery(query)) { @@ -122,7 +132,7 @@ public class DatabaseService { List tiposHardware = new ArrayList<>(); String query = "select TIPOHARDWAREID, NOMBRETIPO from TIPOSHARDWARE"; - try (Connection connection = getConnection(); + try (Connection connection = getMysqlConnection(); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery(query)) { @@ -140,25 +150,6 @@ public class DatabaseService { } - /* -------------- Obtener los nombres completos de los usuarios ------------- */ - public String getNombreUsuario(String usuarioId) { - String nombreUsuario = ""; - String query = "SELECT nombre FROM USUARIOSFINAN WHERE usuarioid = ?"; - - try (Connection connection = getConnection(); - PreparedStatement preparedStatement = connection.prepareStatement(query)) { - - preparedStatement.setString(1, usuarioId); - ResultSet resultSet = preparedStatement.executeQuery(); - - if (resultSet.next()) { - nombreUsuario = resultSet.getString("NOMBRE"); - } - } catch (SQLException e) { - e.printStackTrace(); - } - return nombreUsuario; - } /* ----------------Obtener el Plan Anual de Mantenimiento ---------------- */ public List getPlanAnual() { @@ -170,7 +161,7 @@ public class DatabaseService { "FROM MTTOPROGRAMADOS p " + "LEFT JOIN MANTENIMIENTOS m ON p.mttoprogramadoid = m.mttoprogramadoid"; - try (Connection connection = getConnection(); + try (Connection connection = getMysqlConnection(); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery(query)) { @@ -223,7 +214,7 @@ public class DatabaseService { Connection connection = null; try { - connection = getConnection(); + connection = getMysqlConnection(); if (connection == null) { throw new SQLException("No se pudo establecer la conexion con la base de datos."); @@ -299,7 +290,7 @@ public class DatabaseService { String query = "INSERT INTO HARDWAREDET (tipoHardwareId, numSerie, modelo, placa, mantenimientoId) VALUES (?, ?, ?, ?, ?)"; boolean isInserted = false; - try (Connection connection = getConnection(); + try (Connection connection = getMysqlConnection(); PreparedStatement preparedStatement = connection.prepareStatement(query)) { preparedStatement.setString(1, tipoHardwareId); @@ -319,7 +310,7 @@ public class DatabaseService { public int getUltimoMantenimientoId() { int ultimoId = -1; - try (Connection connection = getConnection()) { + try (Connection connection = getMysqlConnection()) { String query = "SELECT MAX(mantenimientoid) FROM MANTENIMIENTOS"; try (PreparedStatement preparedStatement = connection.prepareStatement(query)) { ResultSet resultSet = preparedStatement.executeQuery(); @@ -338,7 +329,7 @@ public class DatabaseService { public boolean insertActualizacionSeg(String descripcion, String otras, int mantenimientoId) { String query = "INSERT INTO ACTUALIZACIONESSEG (actualizacion, otrasactualizaciones, mantenimientoid) VALUES (?, ?, ?)"; - try (Connection connection = getConnection(); + try (Connection connection = getMysqlConnection(); PreparedStatement preparedStatement = connection.prepareStatement(query)) { preparedStatement.setString(1, descripcion); @@ -359,7 +350,7 @@ public class DatabaseService { "REGULADOR, CPU, IMPRESORA, MINIPRINT, LAPTOP, ESCANER, FECHAPROG, TECNICOSMT, ESTADO) " + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; - try (Connection connection = getConnection(); + try (Connection connection = getMysqlConnection(); //FileInputStream file = new FileInputStream(rutaArchivoExcel); Workbook workbook = new XSSFWorkbook(inputStream)) { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index ecfd8e5..e0bc924 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -9,6 +9,7 @@ vaadin.allowed-packages = com.vaadin,org.vaadin,mx.gob.jumapacelaya, de.f0rce.si spring.jpa.defer-datasource-initialization = true + #Configuracion LDAP spring.ldap.urls=ldap://172.1.0.1:389 spring.ldap.base=DC=JUMAPACELAYA,DC=GOB,DC=MX @@ -25,11 +26,16 @@ redmine.api_key=ce4dc8b6b531c818017e6831a5732ccc15b8faf6 #redmine.api_key=bada7949fd4d879cbd98eb645ae4b88603bf77d0 -#Conexion a la base de datos Mantenimientos -#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 +#Conexion a la base de datos principal (escritura) MySQL +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 + + +#Conexion a la base de datos secundaria (lectura) Oracle +spring.datasource.secondary.url=jdbc:oracle:thin:@//svradminfinan:1521/admfinpdb.JUMAPACELAYA.GOB.MX +spring.datasource.secondary.username=Finanzas +spring.datasource.secondary.password=finanzas +spring.datasource.secondary.driver-class-name=oracle.jdbc.OracleDriver