diff --git a/src/main/java/es/palomafp/aadd/inm/AppProyectosIES.java b/src/main/java/es/palomafp/aadd/inm/AppProyectosIES.java
index af2f0f5..2dadc07 100644
--- a/src/main/java/es/palomafp/aadd/inm/AppProyectosIES.java
+++ b/src/main/java/es/palomafp/aadd/inm/AppProyectosIES.java
@@ -25,12 +25,12 @@ public class AppProyectosIES {
delete from t_curso_proyecto;
delete from t_concepto ;
delete from t_patrocinador;
+ delete from t_curso_academico ;
delete from t_proyecto ;
- delete from t_proyecto
*/
// Generar la estructura de la base de datos en PostgreSQL
- GestorSesionesHibernate.getSession();
+ // GestorSesionesHibernate.getSession();
try {
app.procesarFicheros();
@@ -65,11 +65,11 @@ public class AppProyectosIES {
private void procesarFicheros() throws ProyectosIESException {
// Procesar datos de catálogos
ProcesadorFicheroXML procesadorFicheroXML = new ProcesadorFicheroXML();
- procesadorFicheroXML.procesarFicheroXMLCatalogos();
+ // procesadorFicheroXML.procesarFicheroXMLCatalogos();
// Procesar datos de Gastos
ProcesadorFicheroJSON procesadorFicheroJSON = new ProcesadorFicheroJSON();
- procesadorFicheroJSON.procesarFicheroJSONGastos();
+ // procesadorFicheroJSON.procesarFicheroJSONGastos();
// Procesar datos de Ingresos
ProcesadorFicheroCSV procesadorFicheroCSV = new ProcesadorFicheroCSV();
diff --git a/src/main/java/es/palomafp/aadd/inm/procesador/ProcesadorFicheroCSV.java b/src/main/java/es/palomafp/aadd/inm/procesador/ProcesadorFicheroCSV.java
index f8023e9..a80882b 100644
--- a/src/main/java/es/palomafp/aadd/inm/procesador/ProcesadorFicheroCSV.java
+++ b/src/main/java/es/palomafp/aadd/inm/procesador/ProcesadorFicheroCSV.java
@@ -4,8 +4,26 @@ import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
+import java.time.LocalDate;
+import es.palomafp.aadd.inm.dao.IConceptoDAO;
+import es.palomafp.aadd.inm.dao.ICursoProyectoDAO;
+import es.palomafp.aadd.inm.dao.IGastoDAO;
+import es.palomafp.aadd.inm.dao.IProyectoDAO;
+import es.palomafp.aadd.inm.dao.hbm.ConceptoDaoHibernate;
+import es.palomafp.aadd.inm.dao.hbm.CursoProyectoDaoHibernate;
+import es.palomafp.aadd.inm.dao.hbm.GastoDaoHibernate;
+import es.palomafp.aadd.inm.dao.hbm.ProyectoDaoHibernate;
+import es.palomafp.aadd.inm.dao.jpa.CursoProyectoDaoJPA;
+import es.palomafp.aadd.inm.dao.jpa.GastoDaoJPA;
import es.palomafp.aadd.inm.gestor.GestorFicheroConfiguracion;
+import es.palomafp.aadd.inm.vo.Concepto;
+import es.palomafp.aadd.inm.vo.CursoAcademico;
+import es.palomafp.aadd.inm.vo.CursoProyecto;
+import es.palomafp.aadd.inm.vo.Gasto;
+import es.palomafp.aadd.inm.vo.Proyecto;
+import tools.jackson.databind.JsonNode;
+import tools.jackson.databind.node.ArrayNode;
public class ProcesadorFicheroCSV {
@@ -24,15 +42,72 @@ public class ProcesadorFicheroCSV {
// Procesar la línea leída
String[] campos = linea.split(",");
// Suponiendo que el CSV tiene dos columnas: id, ingreso
- String id = campos[0];
- String ingreso = campos[1];
+ String codCursoAcademico = campos[0];
+ String nombreProyecto= campos[1];
+ String nombrePatrocinador= campos[2];
+ String ingreso = campos[3];
+ String fecha= campos[4];
// Aquí iría la lógica para procesar cada línea
+ System.out.println(codCursoAcademico+ nombreProyecto + nombrePatrocinador + ingreso + fecha );
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
+
}
+ /*
+ CursoAcademico cursoAcademico = new CursoAcademico();
+ cursoAcademico.setCodigo(codigoCurso);
+ IProyectoDAO proyectoDAO = new ProyectoDaoHibernate();
+ Proyecto proyecto = proyectoDAO.obtenerProyectoPorNombre(nombreProyecto);
+
+ CursoProyecto cursoProyecto = new CursoProyecto();
+ cursoProyecto.setCursoAcademico(cursoAcademico);
+ cursoProyecto.setProyecto(proyecto);
+
+ // Inserción en PostgreSQL con Hibernate
+ ICursoProyectoDAO operacionesDAOCursoProyecto = new CursoProyectoDaoHibernate();
+ operacionesDAOCursoProyecto.crearEntidad(cursoProyecto);
+ // Inserción en ObjectDB con JPA
+ operacionesDAOCursoProyecto = new CursoProyectoDaoJPA();
+ operacionesDAOCursoProyecto.crearEntidad(cursoProyecto);
+
+ // Se obtiene el CursoProyecto ya persistido
+ cursoProyecto = operacionesDAOCursoProyecto.obtenerCursoProyectoPorCursoYProyecto(codigoCurso,
+ proyecto.getIdentificador());
+
+ JsonNode nodoGastos = root.get("gastos");
+ // Se obtienen los nodos Gasto
+ ArrayNode nodosGasto = convertirJsonNodeEnArrayNode(nodoGastos);
+
+ for (JsonNode gastoNode : nodosGasto) {
+ String nombreConcepto = gastoNode.get("concepto").asString();
+ double precioUnitario = gastoNode.get("precio_unitario").asDouble();
+ int unidades = gastoNode.get("unidades").asInt();
+ String sFecha = gastoNode.get("fecha").asString();
+ LocalDate fecha = LocalDate.parse(sFecha);
+
+ Gasto gasto = new Gasto();
+ gasto.setFecha(fecha);
+ gasto.setNumeroUnidades(unidades);
+ gasto.setPrecioUnidad(precioUnitario);
+
+ // Obtener el concepto para asociárselo al gasto
+ IConceptoDAO conceptoDAO = new ConceptoDaoHibernate();
+ Concepto concepto = conceptoDAO.obtenerConceptoPorNombre(nombreConcepto);
+ gasto.setConcepto(concepto);
+ gasto.setCursoProyecto(cursoProyecto);
+
+ // Inserción en PostgreSQL con Hibernate
+ IGastoDAO operacionesDAOGasto = new GastoDaoHibernate();
+ operacionesDAOGasto.crearEntidad(gasto);
+ // Inserción en ObjectDB con JPA
+ operacionesDAOGasto = new GastoDaoJPA();
+ operacionesDAOGasto.crearEntidad(gasto);
+ }
+*/
+
}
diff --git a/src/main/java/es/palomafp/aadd/inm/procesador/ProcesadorFicheroJSON.java b/src/main/java/es/palomafp/aadd/inm/procesador/ProcesadorFicheroJSON.java
index b4f9397..a97fdc8 100644
--- a/src/main/java/es/palomafp/aadd/inm/procesador/ProcesadorFicheroJSON.java
+++ b/src/main/java/es/palomafp/aadd/inm/procesador/ProcesadorFicheroJSON.java
@@ -26,7 +26,6 @@ import tools.jackson.databind.node.ArrayNode;
public class ProcesadorFicheroJSON {
-
public void procesarFicheroJSONGastos() throws ProyectosIESException {
String rutaFichero = GestorFicheroConfiguracion.getValorfromClave("gastos.fichero.json.ruta");
File fichero = new File(rutaFichero);
@@ -34,15 +33,15 @@ public class ProcesadorFicheroJSON {
// Se asume que la información de Paises es correcta y ya existe en la BD
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(fichero);
-
- String codigoCurso= root.get("curso").asString();
+
+ String codigoCurso = root.get("curso").asString();
String nombreProyecto = root.get("proyecto").asString();
-
+
CursoAcademico cursoAcademico = new CursoAcademico();
cursoAcademico.setCodigo(codigoCurso);
IProyectoDAO proyectoDAO = new ProyectoDaoHibernate();
Proyecto proyecto = proyectoDAO.obtenerProyectoPorNombre(nombreProyecto);
-
+
CursoProyecto cursoProyecto = new CursoProyecto();
cursoProyecto.setCursoAcademico(cursoAcademico);
cursoProyecto.setProyecto(proyecto);
@@ -55,14 +54,15 @@ public class ProcesadorFicheroJSON {
operacionesDAOCursoProyecto.crearEntidad(cursoProyecto);
// Se obtiene el CursoProyecto ya persistido
- cursoProyecto = operacionesDAOCursoProyecto.obtenerCursoProyectoPorCursoYProyecto(codigoCurso, proyecto.getIdentificador());
-
- JsonNode nodoGastos= root.get("gastos");
+ cursoProyecto = operacionesDAOCursoProyecto.obtenerCursoProyectoPorCursoYProyecto(codigoCurso,
+ proyecto.getIdentificador());
+
+ JsonNode nodoGastos = root.get("gastos");
// Se obtienen los nodos Gasto
- ArrayNode nodosGasto= convertirJsonNodeEnArrayNode(nodoGastos.get("gasto"));
-
+ ArrayNode nodosGasto = convertirJsonNodeEnArrayNode(nodoGastos);
+
for (JsonNode gastoNode : nodosGasto) {
- String nombreConcepto=gastoNode.get("concepto").asString();
+ String nombreConcepto = gastoNode.get("concepto").asString();
double precioUnitario = gastoNode.get("precio_unitario").asDouble();
int unidades = gastoNode.get("unidades").asInt();
String sFecha = gastoNode.get("fecha").asString();
@@ -72,13 +72,13 @@ public class ProcesadorFicheroJSON {
gasto.setFecha(fecha);
gasto.setNumeroUnidades(unidades);
gasto.setPrecioUnidad(precioUnitario);
-
+
// Obtener el concepto para asociárselo al gasto
IConceptoDAO conceptoDAO = new ConceptoDaoHibernate();
- Concepto concepto=conceptoDAO.obtenerConceptoPorNombre(nombreConcepto);
+ Concepto concepto = conceptoDAO.obtenerConceptoPorNombre(nombreConcepto);
gasto.setConcepto(concepto);
+ gasto.setCursoProyecto(cursoProyecto);
-
// Inserción en PostgreSQL con Hibernate
IGastoDAO operacionesDAOGasto = new GastoDaoHibernate();
operacionesDAOGasto.crearEntidad(gasto);
@@ -87,9 +87,6 @@ public class ProcesadorFicheroJSON {
operacionesDAOGasto.crearEntidad(gasto);
}
-
- System.out.println("nodoGastos:" + nodoGastos);
-
}
private ArrayNode convertirJsonNodeEnArrayNode(JsonNode node) {
diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml
index 45f19fc..80e6f17 100644
--- a/src/main/resources/META-INF/persistence.xml
+++ b/src/main/resources/META-INF/persistence.xml
@@ -21,7 +21,7 @@
-
+
diff --git a/src/main/resources/hibernate.cfg.xml b/src/main/resources/hibernate.cfg.xml
index f25735b..ad540b5 100644
--- a/src/main/resources/hibernate.cfg.xml
+++ b/src/main/resources/hibernate.cfg.xml
@@ -4,7 +4,7 @@
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
- jdbc:postgresql://10.19.0.221:5432/proyectos_ies
+ jdbc:postgresql://10.13.0.130:5432/proyectos_ies
org.postgresql.Driver
org.hibernate.dialect.PostgreSQLDialect