diff --git a/pom.xml b/pom.xml
index 42afd72..98528a2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,13 +87,6 @@
spring-boot-starter-jdbc
-
-
- mysql
- mysql-connector-java
- 8.0.33
-
-
com.oracle.database.jdbc
diff --git a/src/main/bundles/prod.bundle b/src/main/bundles/prod.bundle
index 73b7fa8..cdfcc0e 100644
Binary files a/src/main/bundles/prod.bundle and b/src/main/bundles/prod.bundle differ
diff --git a/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java b/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java
index 14a5328..6d57e34 100644
--- a/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java
+++ b/src/main/java/mx/gob/jumapacelaya/api/RedmineClient.java
@@ -1,6 +1,5 @@
package mx.gob.jumapacelaya.api;
-import com.mysql.cj.protocol.x.Notice;
import com.nimbusds.jose.shaded.gson.*;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.notification.Notification;
diff --git a/src/main/java/mx/gob/jumapacelaya/models/Ticket.java b/src/main/java/mx/gob/jumapacelaya/models/Ticket.java
index 52cc913..3fbadfa 100644
--- a/src/main/java/mx/gob/jumapacelaya/models/Ticket.java
+++ b/src/main/java/mx/gob/jumapacelaya/models/Ticket.java
@@ -132,21 +132,21 @@ public class Ticket {
return "Desconocido";
}
return switch (trackerId) {
- case 1 -> "Acceso/Permiso/Bajas";
- case 2 -> "Soporte de Software";
- case 3 -> "Capacitacion de Software";
- case 4 -> "Configuracion de Software";
- case 5 -> "Desarrollo de Software";
- case 6 -> "Digitalizacion GIS";
- case 7 -> "Documento";
- case 8 -> "Reporte";
- case 9 -> "Mantenimiento Correctivo";
- case 10 -> "Actividad";
- case 11 -> "Entrega de Consumibles";
- case 12 -> "Instalacion/Configuracion GIS";
- case 13 -> "DDL";
- case 14 -> "DCL";
- case 15 -> "DML";
+ case 5 -> "Acceso/Permiso/Bajas";
+ case 6 -> "Soporte de Software";
+ case 7 -> "Capacitacion de Software";
+ case 8 -> "Configuracion de Software";
+ case 9 -> "Desarrollo de Software";
+ case 10 -> "Digitalizacion GIS";
+ case 11 -> "Documento";
+ case 12 -> "Reporte";
+ case 13 -> "Mantenimiento Correctivo";
+ case 14 -> "Actividad";
+ case 15 -> "Entrega de Consumibles";
+ case 16 -> "Instalacion/Configuracion GIS";
+ //case 17 -> "DDL";
+ //case 18 -> "DCL";
+ //case 19 -> "DML";
default -> "N/A";
};
}
diff --git a/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java
index 0db8916..d38951d 100644
--- a/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java
+++ b/src/main/java/mx/gob/jumapacelaya/services/DatabaseService.java
@@ -1,11 +1,15 @@
package mx.gob.jumapacelaya.services;
import mx.gob.jumapacelaya.models.*;
+import oracle.jdbc.OracleConnection;
+import oracle.jdbc.OraclePreparedStatement;
+import oracle.sql.CLOB;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.IOException;
import java.io.InputStream;
+import java.io.StringReader;
import java.sql.*;
import java.time.LocalDate;
import java.util.ArrayList;
@@ -15,8 +19,8 @@ public class DatabaseService {
private Connection getMysqlConnection() throws SQLException {
- String url = "jdbc:mysql://185.196.20.240:33006/Mantenimientos";
- String user = "root";
+ String url = "jdbc:oracle:thin:@//svrapps:1521/XEPDB1";
+ String user = "MANTENIMIENTOS";
String pass = "mantenimientos";
return DriverManager.getConnection(url, user, pass);
@@ -35,7 +39,7 @@ public class DatabaseService {
// Método para obtener los tipos de mantenimientos
public List getTiposDeMantenimientos() {
List tiposDeMantenimientos = new ArrayList<>();
- String query = "SELECT tipomantid, nombre FROM TIPOMANT";
+ String query = "SELECT tipomantid, nombre FROM MANTENIMIENTOS.TIPOMANT";
try (Connection connection = getMysqlConnection();
Statement statement = connection.createStatement();
@@ -81,7 +85,7 @@ public class DatabaseService {
public List getUsuarios() {
List usuarios = new ArrayList<>();
String query = "SELECT u.* \n" +
- "FROM Mantenimientos.USUARIOS u;";
+ "FROM MANTENIMIENTOS.USUARIOS u";
try (Connection connection = getMysqlConnection();
Statement statement = connection.createStatement();
@@ -91,7 +95,7 @@ public class DatabaseService {
Usuario usuario = new Usuario(
resultSet.getString("empleadoid"),
resultSet.getString("nombre"),
- resultSet.getString("correo")
+ resultSet.getString("email")
);
usuarios.add(usuario);
}
@@ -105,7 +109,7 @@ public class DatabaseService {
/* -------------- Metodo para obtener los departamentos ---------------- */
public List getDepartamentos() {
List departamentos = new ArrayList<>();
- String query = "select DEPARTAMENTOID, DESCRIPCION from DEPARTAMENTOS";
+ String query = "select DEPARTAMENTOID, DESCRIPCION from MANTENIMIENTOS.DEPARTAMENTOS";
try (Connection connection = getMysqlConnection();
Statement statement = connection.createStatement();
@@ -128,7 +132,7 @@ public class DatabaseService {
/* -------------- Metodo para obtener los tipos de hardware ---------------- */
public List getTiposHardware() {
List tiposHardware = new ArrayList<>();
- String query = "select TIPOHARDWAREID, NOMBRETIPO from TIPOSHARDWARE";
+ String query = "select TIPOHARDWAREID, DESCRIPCION from MANTENIMIENTOS.TIPOSHARDWARE";
try (Connection connection = getMysqlConnection();
Statement statement = connection.createStatement();
@@ -137,7 +141,7 @@ public class DatabaseService {
while (resultSet.next()) {
TiposHardware tiposHardwareModel = new TiposHardware(
resultSet.getString("tipohardwareid"),
- resultSet.getString("nombretipo")
+ resultSet.getString("descripcion")
);
tiposHardware.add(tiposHardwareModel);
}
@@ -152,12 +156,12 @@ public class DatabaseService {
/* ----------------Obtener el Plan Anual de Mantenimiento ---------------- */
public List getPlanAnual() {
List planAnualList = new ArrayList<>();
- String query = "SELECT p.mttoprogramadoid, p.nomEquipo, p.departamento, " +
+ String query = "SELECT p.plananualid, p.nomEquipo, p.area, " +
"p.monitor, p.teclado, p.mouse, p.regulador, " +
"p.cpu, p.impresora, p.miniPrint, p.laptop, p.escaner, " +
"p.fechaprog, m.fecha AS fechaMantenimiento, p.tecnicosmt, p.estado " +
- "FROM MTTOPROGRAMADOS p " +
- "LEFT JOIN MANTENIMIENTOS m ON p.mttoprogramadoid = m.mttoprogramadoid";
+ "FROM MANTENIMIENTOS.PLANANUAL p " +
+ "LEFT JOIN MANTENIMIENTOS.MANTENIMIENTOS m ON p.plananualid = m.plananualid";
try (Connection connection = getMysqlConnection();
Statement statement = connection.createStatement();
@@ -165,9 +169,9 @@ public class DatabaseService {
while (resultSet.next()) {
PlanAnual planAnual = new PlanAnual(
- resultSet.getInt("mttoprogramadoid"),
+ resultSet.getInt("plananualid"),
resultSet.getString("nomEquipo"),
- resultSet.getString("departamento"),
+ resultSet.getString("area"),
resultSet.getBoolean("monitor"),
resultSet.getBoolean("teclado"),
resultSet.getBoolean("mouse"),
@@ -203,13 +207,12 @@ public class DatabaseService {
String formaMant, String equipoId, String userSignatureBase64,
String smtSignatureBase64, String gciaSignatureBase64, String planAnualId) {
- String query = "INSERT INTO MANTENIMIENTOS (fecha, tipoMantId, departamentoId, empleadoId, formaMant, nombreequipo," +
- " firmaUsuario, firmaSmt, firmaGcia, mttoprogramadoid) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+ String query = "INSERT INTO MANTENIMIENTOS.MANTENIMIENTOS (fecha, tipoMantId, departamentoId, empleadoId, formaMant, nombreequipo," +
+ " firmaUsuario, firmaSmt, firmaGcia, planAnualId) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING MANTENIMIENTOID INTO ?";
- String updateStatusQuery = "UPDATE MTTOPROGRAMADOS SET estado = 'REALIZADO' WHERE mttoprogramadoid = ?";
+ String updateStatusQuery = "UPDATE MANTENIMIENTOS.PLANANUAL SET estado = 'REALIZADO' WHERE planAnualId = ?";
int nuevoId = -1;
-
Connection connection = null;
try {
@@ -219,29 +222,46 @@ public class DatabaseService {
throw new SQLException("No se pudo establecer la conexion con la base de datos.");
}
+
connection.setAutoCommit(false);
// Paso 1: primero inserta el mantenimiento
- try (PreparedStatement preparedStatement = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS)) {
+ try (OraclePreparedStatement preparedStatement = (OraclePreparedStatement) connection.prepareStatement(query)) {
preparedStatement.setDate(1, Date.valueOf(fecha));
- preparedStatement.setString(2, tipoMantId);
+ preparedStatement.setLong(2, Long.parseLong(tipoMantId));
preparedStatement.setString(3, departamentoId);
- preparedStatement.setString(4, empleadoId);
+ preparedStatement.setLong(4, Long.parseLong(empleadoId));
preparedStatement.setString(5, formaMant);
preparedStatement.setString(6, equipoId);
- preparedStatement.setString(7, userSignatureBase64);
- preparedStatement.setString(8, smtSignatureBase64);
- preparedStatement.setString(9, gciaSignatureBase64);
- preparedStatement.setString(10, planAnualId);
-
- int rowsAffected = preparedStatement.executeUpdate();
- if (rowsAffected > 0) {
- try (ResultSet generatedKeys = preparedStatement.getGeneratedKeys()) {
- if (generatedKeys.next()) {
- nuevoId = generatedKeys.getInt(1);
- }
- }
+
+ if (userSignatureBase64 != null) {
+ preparedStatement.setString(7, userSignatureBase64);
+ } else {
+ preparedStatement.setNull(7, Types.VARCHAR);
+ }
+
+ if (smtSignatureBase64 != null) {
+ preparedStatement.setString(8, smtSignatureBase64);
+ } else {
+ preparedStatement.setNull(8, Types.VARCHAR);
+ }
+
+ if (gciaSignatureBase64 != null) {
+ preparedStatement.setString(9, gciaSignatureBase64);
+ } else {
+ preparedStatement.setNull(9, Types.VARCHAR);
+ }
+
+ preparedStatement.setLong(10, Long.parseLong(planAnualId));
+
+ preparedStatement.registerReturnParameter(11, Types.NUMERIC);
+
+ preparedStatement.executeUpdate();
+
+ ResultSet rs = preparedStatement.getReturnResultSet();
+ if (rs != null && rs.next()) {
+ nuevoId = rs.getInt(1);
}
}
@@ -258,12 +278,11 @@ public class DatabaseService {
} catch (SQLException e) {
System.err.println("Error al insertar mantenimiento: " + e.getMessage());
+ e.printStackTrace();
// En caso de error, se hace rollback
if (connection != null) {
try {
- if (connection != null) {
- connection.rollback();
- }
+ connection.rollback();
} catch (SQLException rollbackEx) {
System.err.println("Error al hacer rollback: " + rollbackEx.getMessage());
}
@@ -286,13 +305,13 @@ public class DatabaseService {
// INSERTAR EN LA TABLA: HARDWAREDET
public boolean insertarHardware(String tipoHardwareId, String numSerie, String modelo, String placa, int mantenimientoId) {
- String query = "INSERT INTO HARDWAREDET (tipoHardwareId, numSerie, modelo, placa, mantenimientoId) VALUES (?, ?, ?, ?, ?)";
+ String query = "INSERT INTO MANTENIMIENTOS.HARDWAREDET (tipoHardwareId, numSerie, modelo, placa, mantenimientoId) VALUES (?, ?, ?, ?, ?)";
boolean isInserted = false;
try (Connection connection = getMysqlConnection();
PreparedStatement preparedStatement = connection.prepareStatement(query)) {
- preparedStatement.setString(1, tipoHardwareId);
+ preparedStatement.setInt(1, Integer.parseInt(tipoHardwareId));
preparedStatement.setString(2, numSerie);
preparedStatement.setString(3, modelo);
preparedStatement.setString(4, placa);
@@ -310,7 +329,7 @@ public class DatabaseService {
public int getUltimoMantenimientoId() {
int ultimoId = -1;
try (Connection connection = getMysqlConnection()) {
- String query = "SELECT MAX(mantenimientoid) FROM MANTENIMIENTOS";
+ String query = "SELECT MAX(mantenimientoid) FROM MANTENIMIENTOS.MANTENIMIENTOS";
try (PreparedStatement preparedStatement = connection.prepareStatement(query)) {
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
@@ -326,7 +345,7 @@ public class DatabaseService {
// INSERTAR EN LA TABLA: ACTUALIZACIONESSEG
public boolean insertActualizacionSeg(String descripcion, String otras, int mantenimientoId) {
- String query = "INSERT INTO ACTUALIZACIONESSEG (descripcion, otrasactualizaciones, mantenimientoid) VALUES (?, ?, ?)";
+ String query = "INSERT INTO MANTENIMIENTOS.ACTUALIZACIONESSEG (descripcion, otrasactualizaciones, mantenimientoid) VALUES (?, ?, ?)";
try (Connection connection = getMysqlConnection();
PreparedStatement preparedStatement = connection.prepareStatement(query)) {
@@ -345,7 +364,7 @@ public class DatabaseService {
public void insertarDesdeExcel(InputStream inputStream) {
- String query = "INSERT INTO MTTOPROGRAMADOS (NOMEQUIPO, DEPARTAMENTO, MONITOR, TECLADO, MOUSE, " +
+ String query = "INSERT INTO MANTENIMIENTOS.PLANANUAL (NOMEQUIPO, AREA, MONITOR, TECLADO, MOUSE, " +
"REGULADOR, CPU, IMPRESORA, MINIPRINT, LAPTOP, ESCANER, FECHAPROG, TECNICOSMT, ESTADO) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
@@ -361,7 +380,7 @@ public class DatabaseService {
try {
// Leer cada celda de la fila según el índice correcto
String nomequipo = getStringCellValue(row.getCell(0)); // Columna 1
- String departamento = getStringCellValue(row.getCell(1)); // Columna 2
+ String area = getStringCellValue(row.getCell(1)); // Columna 2
boolean monitor = getBooleanCellValue(row.getCell(2)); // Columna 3
boolean teclado = getBooleanCellValue(row.getCell(3)); // Columna 4
boolean mouse = getBooleanCellValue(row.getCell(4)); // Columna 5
@@ -381,7 +400,7 @@ public class DatabaseService {
// Insertar datos en la base de datos
try (PreparedStatement preparedStatement = connection.prepareStatement(query)) {
preparedStatement.setString(1, nomequipo);
- preparedStatement.setString(2, departamento);
+ preparedStatement.setString(2, area);
preparedStatement.setBoolean(3, monitor);
preparedStatement.setBoolean(4, teclado);
preparedStatement.setBoolean(5, mouse);
@@ -409,7 +428,7 @@ public class DatabaseService {
}
}
- System.out.println("Datos insertados desde Excel con éxito en MTTOPROGRAMADOS.");
+ System.out.println("Datos insertados desde Excel con éxito en PLANANUAL.");
} catch (IOException e) {
System.err.println("Error al leer el archivo Excel: " + e.getMessage());
} catch (SQLException e) {
diff --git a/src/main/java/mx/gob/jumapacelaya/ui/ActDiariaView.java b/src/main/java/mx/gob/jumapacelaya/ui/ActDiariaView.java
index bfc8396..6404a70 100644
--- a/src/main/java/mx/gob/jumapacelaya/ui/ActDiariaView.java
+++ b/src/main/java/mx/gob/jumapacelaya/ui/ActDiariaView.java
@@ -118,7 +118,7 @@ public class ActDiariaView extends VerticalLayout {
try {
List tickets = redmineClient.getTickets(userService.getRedmineUser(), true);
List filteredTickets = tickets.stream()
- .filter(ticket -> ticket.getTrackerId() == 10 || ticket.getTrackerId() == 9)
+ .filter(ticket -> ticket.getTrackerId() == 13 || ticket.getTrackerId() == 14)
.toList();
grid.setItems(filteredTickets);
} catch (Exception e) {
@@ -149,6 +149,9 @@ public class ActDiariaView extends VerticalLayout {
case "solicitado":
span.getElement().getStyle().set("color","purple");
break;
+ case "qa":
+ span.getElement().getStyle().set("color","#C21DF2");
+ break;
default:
span.getElement().getStyle().set("color","green");
break;
@@ -165,9 +168,9 @@ public class ActDiariaView extends VerticalLayout {
button.addClickListener(e -> {
RedmineUser currentUser = userService.getRedmineUser();
- if (ticket.getTrackerId() == 9) {
+ if (ticket.getTrackerId() == 13) {
UI.getCurrent().navigate("mantenimiento");
- } else if (ticket.getTrackerId() == 10) {
+ } else if (ticket.getTrackerId() == 14) {
cerrarTicket(ticket, currentUser);
} else {
Notification.show("El ticket no es de tipo Mantenimiento o Actividad.");
diff --git a/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java b/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java
index 02f1908..db9fd48 100644
--- a/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java
+++ b/src/main/java/mx/gob/jumapacelaya/ui/MantenimientoView.java
@@ -1,6 +1,5 @@
package mx.gob.jumapacelaya.ui;
-import com.mysql.cj.log.Log;
import com.vaadin.flow.component.Component;
import com.vaadin.flow.component.UI;
import com.vaadin.flow.component.button.ButtonVariant;
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 4f20e8e..166944f 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -18,7 +18,7 @@ spring.ldap.password=Dr3na$134%4guA
###################PRODUCTIVO####################
redmine.url=https://proyman.jumapacelaya.gob.mx/
-redmine.api_key=98158784609a110b3f9e837ac961d73b9ec58271
+redmine.api_key=69be2a5df9bacce02722f566fdf0731d728a1b86
######################PRUEBAS####################
@@ -29,10 +29,10 @@ redmine.api_key=98158784609a110b3f9e837ac961d73b9ec58271
#Conexion a la base de datos principal (escritura) MySQL
-spring.datasource.url=jdbc:mysql://185.196.20.240:33006/Mantenimientos
-spring.datasource.username=root
-spring.datasource.password=mantenimientos
-spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+#spring.datasource.url=jdbc:mysql://185.196.20.240:33006/NVMantenimientos
+#spring.datasource.username=root
+#spring.datasource.password=mantenimientos
+#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver