|
|
@ -1,20 +1,19 @@ |
|
|
package mx.gob.jumapacelaya.services; |
|
|
package mx.gob.jumapacelaya.services; |
|
|
|
|
|
|
|
|
import mx.gob.jumapacelaya.models.*; |
|
|
import mx.gob.jumapacelaya.models.*; |
|
|
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 mx.gob.jumapacelaya.models.encuestas.*; |
|
|
|
|
|
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.apache.poi.xssf.usermodel.XSSFWorkbook; |
|
|
|
|
|
import org.slf4j.Logger; |
|
|
|
|
|
import org.slf4j.LoggerFactory; |
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
import java.io.IOException; |
|
|
import java.io.InputStream; |
|
|
import java.io.InputStream; |
|
|
import java.io.StringReader; |
|
|
|
|
|
import java.security.interfaces.RSAKey; |
|
|
|
|
|
import java.sql.*; |
|
|
import java.sql.*; |
|
|
import java.time.LocalDate; |
|
|
import java.time.LocalDate; |
|
|
import java.util.ArrayList; |
|
|
import java.util.ArrayList; |
|
|
@ -24,6 +23,7 @@ import java.util.UUID; |
|
|
@Service |
|
|
@Service |
|
|
public class DatabaseService { |
|
|
public class DatabaseService { |
|
|
|
|
|
|
|
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(DatabaseService.class); |
|
|
|
|
|
|
|
|
@Value("${db.url}") |
|
|
@Value("${db.url}") |
|
|
private String dbUrl; |
|
|
private String dbUrl; |
|
|
@ -62,7 +62,7 @@ public class DatabaseService { |
|
|
tiposDeMantenimientos.add(tipo); |
|
|
tiposDeMantenimientos.add(tipo); |
|
|
} |
|
|
} |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al obtener tipos de mantenimientos: ", e); |
|
|
} |
|
|
} |
|
|
return tiposDeMantenimientos; |
|
|
return tiposDeMantenimientos; |
|
|
} |
|
|
} |
|
|
@ -83,13 +83,11 @@ public class DatabaseService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
System.err.println("Error al obtener nomenclatura: " + e.getMessage()); |
|
|
|
|
|
|
|
|
logger.error("Error al obtener nomenclatura: ", e); |
|
|
} |
|
|
} |
|
|
return nomenclatura; |
|
|
return nomenclatura; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* -------------- Metodo para obtener a los usuarios ---------------- */ |
|
|
/* -------------- Metodo para obtener a los usuarios ---------------- */ |
|
|
public List<Usuario> getUsuarios() { |
|
|
public List<Usuario> getUsuarios() { |
|
|
List<Usuario> usuarios = new ArrayList<>(); |
|
|
List<Usuario> usuarios = new ArrayList<>(); |
|
|
@ -109,12 +107,11 @@ public class DatabaseService { |
|
|
usuarios.add(usuario); |
|
|
usuarios.add(usuario); |
|
|
} |
|
|
} |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al obtener usuarios: ", e); |
|
|
} |
|
|
} |
|
|
return usuarios; |
|
|
return usuarios; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* -------------- Metodo para obtener los departamentos ---------------- */ |
|
|
/* -------------- Metodo para obtener los departamentos ---------------- */ |
|
|
public List<DepartamentosModel> getDepartamentos() { |
|
|
public List<DepartamentosModel> getDepartamentos() { |
|
|
List<DepartamentosModel> departamentos = new ArrayList<>(); |
|
|
List<DepartamentosModel> departamentos = new ArrayList<>(); |
|
|
@ -132,12 +129,11 @@ public class DatabaseService { |
|
|
departamentos.add(departamentosModel); |
|
|
departamentos.add(departamentosModel); |
|
|
} |
|
|
} |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al obtener departamentos: ", e); |
|
|
} |
|
|
} |
|
|
return departamentos; |
|
|
return departamentos; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* -------------- Metodo para obtener los tipos de hardware ---------------- */ |
|
|
/* -------------- Metodo para obtener los tipos de hardware ---------------- */ |
|
|
public List<TiposHardware> getTiposHardware() { |
|
|
public List<TiposHardware> getTiposHardware() { |
|
|
List<TiposHardware> tiposHardware = new ArrayList<>(); |
|
|
List<TiposHardware> tiposHardware = new ArrayList<>(); |
|
|
@ -155,13 +151,11 @@ public class DatabaseService { |
|
|
tiposHardware.add(tiposHardwareModel); |
|
|
tiposHardware.add(tiposHardwareModel); |
|
|
} |
|
|
} |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al obtener tipos de hardware: ", e); |
|
|
} |
|
|
} |
|
|
return tiposHardware; |
|
|
return tiposHardware; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ----------------Obtener el Plan Anual de Mantenimiento ---------------- */ |
|
|
/* ----------------Obtener el Plan Anual de Mantenimiento ---------------- */ |
|
|
public List<PlanAnual> getPlanAnual() { |
|
|
public List<PlanAnual> getPlanAnual() { |
|
|
List<PlanAnual> planAnualList = new ArrayList<>(); |
|
|
List<PlanAnual> planAnualList = new ArrayList<>(); |
|
|
@ -208,14 +202,12 @@ public class DatabaseService { |
|
|
); |
|
|
); |
|
|
planAnualList.add(planAnual); |
|
|
planAnualList.add(planAnual); |
|
|
} |
|
|
} |
|
|
System.out.println("Registros obtenidos: " + planAnualList.size()); |
|
|
|
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al obtener plan anual: ", e); |
|
|
} |
|
|
} |
|
|
return planAnualList; |
|
|
return planAnualList; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ----------------Obtener el Plan Anual de Mantenimiento por ID ---------------- */ |
|
|
/* ----------------Obtener el Plan Anual de Mantenimiento por ID ---------------- */ |
|
|
public PlanAnual getPlanAnualPorId(int id) { |
|
|
public PlanAnual getPlanAnualPorId(int id) { |
|
|
String query = """ |
|
|
String query = """ |
|
|
@ -262,13 +254,11 @@ public class DatabaseService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al obtener plan anual por id: ", e); |
|
|
} |
|
|
} |
|
|
return null; |
|
|
return null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ----------------Obtener detalles del mantenimiento ---------------- */ |
|
|
/* ----------------Obtener detalles del mantenimiento ---------------- */ |
|
|
public DetalleMantenimientoModel getDetalleMantenimientoPorPlanAnualId(int planAnualId) { |
|
|
public DetalleMantenimientoModel getDetalleMantenimientoPorPlanAnualId(int planAnualId) { |
|
|
String query = "SELECT\n" + |
|
|
String query = "SELECT\n" + |
|
|
@ -296,7 +286,7 @@ public class DatabaseService { |
|
|
|
|
|
|
|
|
try (Connection connection = getMysqlConnection(); |
|
|
try (Connection connection = getMysqlConnection(); |
|
|
PreparedStatement statement = connection.prepareStatement(query)) { |
|
|
PreparedStatement statement = connection.prepareStatement(query)) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
statement.setInt(1, planAnualId); |
|
|
statement.setInt(1, planAnualId); |
|
|
|
|
|
|
|
|
try (ResultSet rs = statement.executeQuery()) { |
|
|
try (ResultSet rs = statement.executeQuery()) { |
|
|
@ -319,12 +309,71 @@ public class DatabaseService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al obtener detalles del mantenimiento por plan anual id: ", e); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return null; |
|
|
return null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* ----------------Obtener mantenimientos sin encuesta respondida por periodo ---------------- */ |
|
|
|
|
|
public List<MantenimientosSinEncuesta> getEncuestPendientes(String mes, int anio) { |
|
|
|
|
|
List<MantenimientosSinEncuesta> lista = new ArrayList<>(); |
|
|
|
|
|
String query = """ |
|
|
|
|
|
SELECT |
|
|
|
|
|
m.MANTENIMIENTOID MANTID, |
|
|
|
|
|
m.PLANANUALID PLANID, |
|
|
|
|
|
m.FECHA, |
|
|
|
|
|
ms.NOMBRE PERIODO, |
|
|
|
|
|
t.NOMBRE TIPOMANT, |
|
|
|
|
|
d.DESCRIPCION DEPTO, |
|
|
|
|
|
u.NOMBRE NOMUSUARIO, |
|
|
|
|
|
u.EMAIL, |
|
|
|
|
|
m.ENCUESTA |
|
|
|
|
|
FROM MANTENIMIENTOS m |
|
|
|
|
|
JOIN TIPOMANT t |
|
|
|
|
|
ON t.TIPOMANTID = m.TIPOMANTID |
|
|
|
|
|
JOIN DEPARTAMENTOS d |
|
|
|
|
|
on d.DEPARTAMENTOID = m.DEPARTAMENTOID |
|
|
|
|
|
JOIN USUARIOS u |
|
|
|
|
|
on u.EMPLEADOID = m.EMPLEADOID |
|
|
|
|
|
JOIN PLANANUAL p |
|
|
|
|
|
ON p.PLANANUALID = m.PLANANUALID |
|
|
|
|
|
JOIN MESES ms |
|
|
|
|
|
ON ms.MESID = p.MESID |
|
|
|
|
|
WHERE m.ENCUESTA = 'N' |
|
|
|
|
|
AND m.TIPOMANTID = 1 |
|
|
|
|
|
AND m.PLANANUALID IS NOT NULL |
|
|
|
|
|
AND UPPER(ms.NOMBRE) = UPPER(?) |
|
|
|
|
|
AND EXTRACT(YEAR FROM m.FECHA) = ? |
|
|
|
|
|
"""; |
|
|
|
|
|
|
|
|
|
|
|
try(Connection connection = getMysqlConnection(); |
|
|
|
|
|
PreparedStatement stmt = connection.prepareStatement(query)) { |
|
|
|
|
|
|
|
|
|
|
|
stmt.setString(1, mes.toUpperCase()); |
|
|
|
|
|
stmt.setInt(2, anio); |
|
|
|
|
|
|
|
|
|
|
|
ResultSet rs = stmt.executeQuery(); |
|
|
|
|
|
|
|
|
|
|
|
while (rs.next()) { |
|
|
|
|
|
lista.add(new MantenimientosSinEncuesta( |
|
|
|
|
|
rs.getInt("MANTID"), |
|
|
|
|
|
rs.getInt("PLANID"), |
|
|
|
|
|
rs.getDate("FECHA").toLocalDate(), |
|
|
|
|
|
rs.getString("PERIODO"), |
|
|
|
|
|
rs.getString("TIPOMANT"), |
|
|
|
|
|
rs.getString("DEPTO"), |
|
|
|
|
|
rs.getString("NOMUSUARIO"), |
|
|
|
|
|
rs.getString("EMAIL"), |
|
|
|
|
|
rs.getString("ENCUESTA") |
|
|
|
|
|
)); |
|
|
|
|
|
} |
|
|
|
|
|
} catch (SQLException e) { |
|
|
|
|
|
logger.error("Error al obtener mantenimientos sin encuesta respondida por periodo: ", e); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return lista; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/* ----------------Obtener detalles del hardaware por ID ---------------- */ |
|
|
/* ----------------Obtener detalles del hardaware por ID ---------------- */ |
|
|
public List<HardwareDetalle> getHardwaredetallePorMantId(int mantenimientoId) { |
|
|
public List<HardwareDetalle> getHardwaredetallePorMantId(int mantenimientoId) { |
|
|
@ -333,10 +382,10 @@ public class DatabaseService { |
|
|
"FROM HARDWAREDET h\r\n" + // |
|
|
"FROM HARDWAREDET h\r\n" + // |
|
|
"INNER JOIN TIPOSHARDWARE t ON h.TIPOHARDWAREID = t.TIPOHARDWAREID \r\n" + // |
|
|
"INNER JOIN TIPOSHARDWARE t ON h.TIPOHARDWAREID = t.TIPOHARDWAREID \r\n" + // |
|
|
"WHERE h.MANTENIMIENTOID = ?"; |
|
|
"WHERE h.MANTENIMIENTOID = ?"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try (Connection conn = getMysqlConnection(); |
|
|
try (Connection conn = getMysqlConnection(); |
|
|
PreparedStatement stmt = conn.prepareStatement(query)) { |
|
|
PreparedStatement stmt = conn.prepareStatement(query)) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
stmt.setInt(1, mantenimientoId); |
|
|
stmt.setInt(1, mantenimientoId); |
|
|
ResultSet rs = stmt.executeQuery(); |
|
|
ResultSet rs = stmt.executeQuery(); |
|
|
|
|
|
|
|
|
@ -353,19 +402,18 @@ public class DatabaseService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al obtener detalles del hardaware por ID: ", e); |
|
|
} |
|
|
} |
|
|
return detalles; |
|
|
return detalles; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ---------------- Obtener las actualizaciones de seguridad ---------------- */ |
|
|
/* ---------------- Obtener las actualizaciones de seguridad ---------------- */ |
|
|
public List<ActualizacioneSeguridadModel> getActualizacionesSeg(int mantenimientoId) { |
|
|
public List<ActualizacioneSeguridadModel> getActualizacionesSeg(int mantenimientoId) { |
|
|
List<ActualizacioneSeguridadModel> actualizaciones = new ArrayList<>(); |
|
|
List<ActualizacioneSeguridadModel> actualizaciones = new ArrayList<>(); |
|
|
String query = "SELECT *\r\n" + // |
|
|
String query = "SELECT *\r\n" + // |
|
|
"FROM ACTUALIZACIONESSEG a\r\n" + // |
|
|
"FROM ACTUALIZACIONESSEG a\r\n" + // |
|
|
"WHERE a.MANTENIMIENTOID = ?"; |
|
|
"WHERE a.MANTENIMIENTOID = ?"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try (Connection conn = getMysqlConnection(); |
|
|
try (Connection conn = getMysqlConnection(); |
|
|
PreparedStatement stmt = conn.prepareStatement(query)) { |
|
|
PreparedStatement stmt = conn.prepareStatement(query)) { |
|
|
|
|
|
|
|
|
@ -383,12 +431,11 @@ public class DatabaseService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al obtener las actualizaciones de seguridad: ", e); |
|
|
} |
|
|
} |
|
|
return actualizaciones; |
|
|
return actualizaciones; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ---------------- Obtener los mantenimientos correctivos ---------------- */ |
|
|
/* ---------------- Obtener los mantenimientos correctivos ---------------- */ |
|
|
public List<MantCorrectivosModel> getMantenimientosCorrectivos(int tipomantId) { |
|
|
public List<MantCorrectivosModel> getMantenimientosCorrectivos(int tipomantId) { |
|
|
List<MantCorrectivosModel> mantCorrectivos = new ArrayList<>(); |
|
|
List<MantCorrectivosModel> mantCorrectivos = new ArrayList<>(); |
|
|
@ -430,13 +477,11 @@ public class DatabaseService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al obtener los mantenimientos correctivos: ", e); |
|
|
} |
|
|
} |
|
|
return mantCorrectivos; |
|
|
return mantCorrectivos; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<()*/ |
|
|
/*-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<()*/ |
|
|
/*-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<()*/ |
|
|
/*-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<()*/ |
|
|
/*-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<()*/ |
|
|
/*-=iii=<() *-=iii=<() *-=iii=<() *-=iii=<()*/ |
|
|
@ -517,14 +562,13 @@ public class DatabaseService { |
|
|
connection.commit(); |
|
|
connection.commit(); |
|
|
|
|
|
|
|
|
} catch (SQLException e) { |
|
|
} 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 |
|
|
// En caso de error, se hace rollback |
|
|
if (connection != null) { |
|
|
if (connection != null) { |
|
|
try { |
|
|
try { |
|
|
connection.rollback(); |
|
|
connection.rollback(); |
|
|
} catch (SQLException rollbackEx) { |
|
|
} catch (SQLException rollbackEx) { |
|
|
System.err.println("Error al hacer rollback: " + rollbackEx.getMessage()); |
|
|
|
|
|
|
|
|
logger.error("Error al hacer rollback: ", rollbackEx); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} finally { |
|
|
} finally { |
|
|
@ -560,12 +604,11 @@ public class DatabaseService { |
|
|
int rowsAffected = preparedStatement.executeUpdate(); |
|
|
int rowsAffected = preparedStatement.executeUpdate(); |
|
|
isInserted = rowsAffected > 0; |
|
|
isInserted = rowsAffected > 0; |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al insertar hardware: ", e); |
|
|
} |
|
|
} |
|
|
return isInserted; |
|
|
return isInserted; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public int getUltimoMantenimientoId() { |
|
|
public int getUltimoMantenimientoId() { |
|
|
int ultimoId = -1; |
|
|
int ultimoId = -1; |
|
|
try (Connection connection = getMysqlConnection()) { |
|
|
try (Connection connection = getMysqlConnection()) { |
|
|
@ -577,12 +620,11 @@ public class DatabaseService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al obtener el ultimo id de mantenimiento: ", e); |
|
|
} |
|
|
} |
|
|
return ultimoId; |
|
|
return ultimoId; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// INSERTAR EN LA TABLA: ACTUALIZACIONESSEG |
|
|
// INSERTAR EN LA TABLA: ACTUALIZACIONESSEG |
|
|
public boolean insertActualizacionSeg(String descripcion, String otras, int mantenimientoId) { |
|
|
public boolean insertActualizacionSeg(String descripcion, String otras, int mantenimientoId) { |
|
|
String query = "INSERT INTO ACTUALIZACIONESSEG (descripcion, otrasactualizaciones, mantenimientoid) VALUES (?, ?, ?)"; |
|
|
String query = "INSERT INTO ACTUALIZACIONESSEG (descripcion, otrasactualizaciones, mantenimientoid) VALUES (?, ?, ?)"; |
|
|
@ -602,7 +644,6 @@ public class DatabaseService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// INSERTAR ARCHIVO EXCEL EN LA TABLA: PLANANUAL |
|
|
// INSERTAR ARCHIVO EXCEL EN LA TABLA: PLANANUAL |
|
|
public void insertarDesdeExcel(InputStream inputStream) { |
|
|
public void insertarDesdeExcel(InputStream inputStream) { |
|
|
String query = "INSERT INTO PLANANUAL (NOMEQUIPO, AREA, MONITOR, TECLADO, MOUSE, " + |
|
|
String query = "INSERT INTO PLANANUAL (NOMEQUIPO, AREA, MONITOR, TECLADO, MOUSE, " + |
|
|
@ -677,7 +718,6 @@ public class DatabaseService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// INSERTAR NUEVO EQUIPO INDIVIDUAL EN PLANANUAL |
|
|
// INSERTAR NUEVO EQUIPO INDIVIDUAL EN PLANANUAL |
|
|
public void insertarNuevoEquipo(String nomequipo, String area, boolean monitor, boolean teclado, |
|
|
public void insertarNuevoEquipo(String nomequipo, String area, boolean monitor, boolean teclado, |
|
|
boolean mouse, boolean regulador, boolean cpu, boolean impresora, |
|
|
boolean mouse, boolean regulador, boolean cpu, boolean impresora, |
|
|
@ -724,7 +764,6 @@ public class DatabaseService { |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Método auxiliar para obtener un valor de tipo Date de una celda |
|
|
// Método auxiliar para obtener un valor de tipo Date de una celda |
|
|
private Date getDateCellValue(Cell cell) { |
|
|
private Date getDateCellValue(Cell cell) { |
|
|
if (cell != null) { |
|
|
if (cell != null) { |
|
|
@ -780,7 +819,6 @@ public class DatabaseService { |
|
|
return false; // Valor por defecto si la celda es nula |
|
|
return false; // Valor por defecto si la celda es nula |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ----------------Actualizar los detalles del del mantenimiento por ID ---------------- */ |
|
|
/* ----------------Actualizar los detalles del del mantenimiento por ID ---------------- */ |
|
|
public boolean actualizarPlanAnual(int planAnualId, String nombreEquipo) { |
|
|
public boolean actualizarPlanAnual(int planAnualId, String nombreEquipo) { |
|
|
String sql = "UPDATE PLANANUAL SET NOMEQUIPO=? WHERE PLANANUALID=?"; |
|
|
String sql = "UPDATE PLANANUAL SET NOMEQUIPO=? WHERE PLANANUALID=?"; |
|
|
@ -790,7 +828,7 @@ public class DatabaseService { |
|
|
stmt.setInt(2, planAnualId); |
|
|
stmt.setInt(2, planAnualId); |
|
|
return stmt.executeUpdate() > 0; |
|
|
return stmt.executeUpdate() > 0; |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al actualizar el plan anual: ", e); |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -817,12 +855,11 @@ public class DatabaseService { |
|
|
stmt.setInt(8, mantenimientoId); |
|
|
stmt.setInt(8, mantenimientoId); |
|
|
return stmt.executeUpdate() > 0; |
|
|
return stmt.executeUpdate() > 0; |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al actualizar el mantenimiento: ", e); |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ----------------Actualizar los detalles del hardaware por ID ---------------- */ |
|
|
/* ----------------Actualizar los detalles del hardaware por ID ---------------- */ |
|
|
public boolean actualizarHardwareDetalle(HardwareDetalle detalle) { |
|
|
public boolean actualizarHardwareDetalle(HardwareDetalle detalle) { |
|
|
String sql = "UPDATE HARDWAREDET SET MODELO=?, NUMSERIE=?, PLACA=? WHERE HARDWAREDETID=?"; |
|
|
String sql = "UPDATE HARDWAREDET SET MODELO=?, NUMSERIE=?, PLACA=? WHERE HARDWAREDETID=?"; |
|
|
@ -834,12 +871,11 @@ public class DatabaseService { |
|
|
stmt.setInt(4, detalle.getHardwareDetId()); |
|
|
stmt.setInt(4, detalle.getHardwareDetId()); |
|
|
return stmt.executeUpdate() > 0; |
|
|
return stmt.executeUpdate() > 0; |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al actualizar el detalle del hardware: ", e); |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ----------------Actualizar las actualizaciones de seguridad por ID ---------------- */ |
|
|
/* ----------------Actualizar las actualizaciones de seguridad por ID ---------------- */ |
|
|
public boolean actualizarActualizacionSeg(ActualizacioneSeguridadModel actualizacion) { |
|
|
public boolean actualizarActualizacionSeg(ActualizacioneSeguridadModel actualizacion) { |
|
|
String sql = "UPDATE ACTUALIZACIONESSEG SET OTRASACTUALIZACIONES=? WHERE ACTUALIZACIONSEGID=?"; |
|
|
String sql = "UPDATE ACTUALIZACIONESSEG SET OTRASACTUALIZACIONES=? WHERE ACTUALIZACIONSEGID=?"; |
|
|
@ -849,12 +885,11 @@ public class DatabaseService { |
|
|
stmt.setInt(2, actualizacion.getActualizacionsegId()); |
|
|
stmt.setInt(2, actualizacion.getActualizacionsegId()); |
|
|
return stmt.executeUpdate() > 0; |
|
|
return stmt.executeUpdate() > 0; |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al actualizar la actualización de seguridad: ", e); |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ---------------- Insertar en bitacora ---------------- */ |
|
|
/* ---------------- Insertar en bitacora ---------------- */ |
|
|
public boolean insertarBitacora(int mantenimientoid, String usuarioid, LocalDate fechora, String motivo) { |
|
|
public boolean insertarBitacora(int mantenimientoid, String usuarioid, LocalDate fechora, String motivo) { |
|
|
String query = "INSERT INTO BITACORACTUALIZACIONES (MANTENIMIENTOID, USUARIOID, FECHORA, MOTIVO) VALUES (?, ?, ?, ?)"; |
|
|
String query = "INSERT INTO BITACORACTUALIZACIONES (MANTENIMIENTOID, USUARIOID, FECHORA, MOTIVO) VALUES (?, ?, ?, ?)"; |
|
|
@ -866,12 +901,11 @@ public class DatabaseService { |
|
|
stmt.setString(4, motivo); |
|
|
stmt.setString(4, motivo); |
|
|
return stmt.executeUpdate() > 0; |
|
|
return stmt.executeUpdate() > 0; |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al insertar en bitacora: ", e); |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ---------------- Insertar en bitacora de eliminacion de equipos ---------------- */ |
|
|
/* ---------------- Insertar en bitacora de eliminacion de equipos ---------------- */ |
|
|
public boolean insertarBitacoraEliminacion(int plananualid, String usuarioid, LocalDate fechora, String motivo) { |
|
|
public boolean insertarBitacoraEliminacion(int plananualid, String usuarioid, LocalDate fechora, String motivo) { |
|
|
String query = "INSERT INTO BITACORAELIMINACIONES (PLANANUALID, USUARIOID, FECHAHORA, MOTIVO) VALUES (?, ?, ?, ?)"; |
|
|
String query = "INSERT INTO BITACORAELIMINACIONES (PLANANUALID, USUARIOID, FECHAHORA, MOTIVO) VALUES (?, ?, ?, ?)"; |
|
|
@ -883,12 +917,11 @@ public class DatabaseService { |
|
|
stmt.setString(4, motivo); |
|
|
stmt.setString(4, motivo); |
|
|
return stmt.executeUpdate() > 0; |
|
|
return stmt.executeUpdate() > 0; |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al insertar en bitacora de eliminacion de equipos: ", e); |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ---------------- Eliminar equipo de PLAN ANUAL ---------------- */ |
|
|
/* ---------------- Eliminar equipo de PLAN ANUAL ---------------- */ |
|
|
public void eliminarEquipoPlanAnual(int planAnualId) { |
|
|
public void eliminarEquipoPlanAnual(int planAnualId) { |
|
|
String sql = "DELETE FROM PLANANUAL WHERE PLANANUALID = ?"; |
|
|
String sql = "DELETE FROM PLANANUAL WHERE PLANANUALID = ?"; |
|
|
@ -903,8 +936,7 @@ public class DatabaseService { |
|
|
System.out.println("No se encontró el equipo con ID: " + planAnualId); |
|
|
System.out.println("No se encontró el equipo con ID: " + planAnualId); |
|
|
} |
|
|
} |
|
|
} catch (SQLException e) { |
|
|
} 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); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -935,19 +967,18 @@ public class DatabaseService { |
|
|
preguntas.add(pregunta); |
|
|
preguntas.add(pregunta); |
|
|
} |
|
|
} |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al obtener las preguntas de la encuesta: ", e); |
|
|
} |
|
|
} |
|
|
return preguntas; |
|
|
return preguntas; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void insertRespuestas(int manteniminetoId, List<Respuesta> respuestas, int empleadoid, String token) { |
|
|
|
|
|
|
|
|
public void insertRespuestas(int manteniminetoId, List<Respuesta> respuestas, int empleadoid, String comentarios, String token) { |
|
|
|
|
|
|
|
|
String insertQuery = """ |
|
|
String insertQuery = """ |
|
|
insert into RESPUESTAS |
|
|
insert into RESPUESTAS |
|
|
(MANTENIMIENTOID,PREGUNTAID,FECHARESPUESTA,RESPUESTA,EMPLEADOID) |
|
|
|
|
|
|
|
|
(MANTENIMIENTOID,PREGUNTAID,FECHARESPUESTA,RESPUESTA,EMPLEADOID,COMENTARIOS) |
|
|
values |
|
|
values |
|
|
(?,?,?,?,?) |
|
|
|
|
|
|
|
|
(?,?,?,?,?,?) |
|
|
"""; |
|
|
"""; |
|
|
|
|
|
|
|
|
String updateQuery = """ |
|
|
String updateQuery = """ |
|
|
@ -978,6 +1009,7 @@ public class DatabaseService { |
|
|
insertStmt.setTimestamp(3, ahora); |
|
|
insertStmt.setTimestamp(3, ahora); |
|
|
insertStmt.setBoolean(4, r.getRespuesta()); |
|
|
insertStmt.setBoolean(4, r.getRespuesta()); |
|
|
insertStmt.setInt(5, empleadoid); |
|
|
insertStmt.setInt(5, empleadoid); |
|
|
|
|
|
insertStmt.setString(6, comentarios); |
|
|
insertStmt.addBatch(); |
|
|
insertStmt.addBatch(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -1003,7 +1035,6 @@ public class DatabaseService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String crearTokenEncuesta(int mantenimientoid) { |
|
|
public String crearTokenEncuesta(int mantenimientoid) { |
|
|
String token = UUID.randomUUID().toString(); |
|
|
String token = UUID.randomUUID().toString(); |
|
|
Timestamp expira = new Timestamp(System.currentTimeMillis() + (24 * 60 * 60 * 1000)); |
|
|
Timestamp expira = new Timestamp(System.currentTimeMillis() + (24 * 60 * 60 * 1000)); |
|
|
@ -1018,7 +1049,7 @@ public class DatabaseService { |
|
|
stmt.executeUpdate(); |
|
|
stmt.executeUpdate(); |
|
|
|
|
|
|
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al crear el token de encuesta: ", e); |
|
|
} |
|
|
} |
|
|
return token; |
|
|
return token; |
|
|
} |
|
|
} |
|
|
@ -1035,9 +1066,56 @@ public class DatabaseService { |
|
|
return rs.getInt("MANTENIMIENTOID"); |
|
|
return rs.getInt("MANTENIMIENTOID"); |
|
|
} |
|
|
} |
|
|
} catch (SQLException e) { |
|
|
} catch (SQLException e) { |
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
|
logger.error("Error al validar el token de encuesta: ", e); |
|
|
} |
|
|
} |
|
|
return null; |
|
|
return null; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public List<ConteoEncuestas> getTotalEncuestas() { |
|
|
|
|
|
List<ConteoEncuestas> totalEncuestas = new ArrayList<>(); |
|
|
|
|
|
String query = "SELECT * FROM VW_CONTEO_ENCUESTAS"; |
|
|
|
|
|
|
|
|
|
|
|
try (Connection conn = getMysqlConnection(); |
|
|
|
|
|
Statement stmt = conn.createStatement(); |
|
|
|
|
|
ResultSet rs = stmt.executeQuery(query)) { |
|
|
|
|
|
|
|
|
|
|
|
while (rs.next()) { |
|
|
|
|
|
ConteoEncuestas conteo = new ConteoEncuestas( |
|
|
|
|
|
rs.getInt("TOTAL_ENVIADAS"), |
|
|
|
|
|
rs.getInt("TOTAL_RESPONDIDAS"), |
|
|
|
|
|
rs.getDouble("PORCENTAJE_TOTAL") |
|
|
|
|
|
); |
|
|
|
|
|
totalEncuestas.add(conteo); |
|
|
|
|
|
} |
|
|
|
|
|
} catch (SQLException e) { |
|
|
|
|
|
logger.error("Error al obtener el total de encuestas: ", e); |
|
|
|
|
|
} |
|
|
|
|
|
return totalEncuestas; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public List<ConteoRespuestas> getTotalRespuestas() { |
|
|
|
|
|
List<ConteoRespuestas> totalRespuestas = new ArrayList<>(); |
|
|
|
|
|
String query = "SELECT * FROM VW_CONTEO_RESPUESTAS"; |
|
|
|
|
|
|
|
|
|
|
|
try (Connection conn = getMysqlConnection(); |
|
|
|
|
|
Statement stmt = conn.createStatement(); |
|
|
|
|
|
ResultSet rs = stmt.executeQuery(query)) { |
|
|
|
|
|
|
|
|
|
|
|
while (rs.next()) { |
|
|
|
|
|
ConteoRespuestas conteo = new ConteoRespuestas( |
|
|
|
|
|
rs.getInt("PREGUNTAID"), |
|
|
|
|
|
rs.getString("PREGUNTA"), |
|
|
|
|
|
rs.getInt("TOTALREGISTROS"), |
|
|
|
|
|
rs.getInt("TOTALSI"), |
|
|
|
|
|
rs.getInt("TOTALNO"), |
|
|
|
|
|
rs.getDouble("PORCENTAJE") |
|
|
|
|
|
); |
|
|
|
|
|
totalRespuestas.add(conteo); |
|
|
|
|
|
} |
|
|
|
|
|
} catch (SQLException e) { |
|
|
|
|
|
logger.error("Error al obtener el total de respuestas: ", e); |
|
|
|
|
|
} |
|
|
|
|
|
return totalRespuestas; |
|
|
|
|
|
} |
|
|
/***************************************************************************************************************************************/ |
|
|
/***************************************************************************************************************************************/ |
|
|
} |
|
|
} |