Adaptación para el procesamiento de ficheros/URLs/CSV
This commit is contained in:
parent
2725ebf0ea
commit
3c45a7e1a9
17
.classpath
17
.classpath
@ -37,5 +37,22 @@
|
|||||||
<attribute name="maven.pomderived" value="true"/>
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" path="target/generated-sources/annotations">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="ignore_optional_problems" value="true"/>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
<attribute name="m2e-apt" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="ignore_optional_problems" value="true"/>
|
||||||
|
<attribute name="test" value="true"/>
|
||||||
|
<attribute name="optional" value="true"/>
|
||||||
|
<attribute name="maven.pomderived" value="true"/>
|
||||||
|
<attribute name="m2e-apt" value="true"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
<classpathentry kind="output" path="target/classes"/>
|
<classpathentry kind="output" path="target/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|||||||
11
.project
11
.project
@ -20,4 +20,15 @@
|
|||||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||||
</natures>
|
</natures>
|
||||||
|
<filteredResources>
|
||||||
|
<filter>
|
||||||
|
<id>1771843084632</id>
|
||||||
|
<name></name>
|
||||||
|
<type>30</type>
|
||||||
|
<matcher>
|
||||||
|
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
||||||
|
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
||||||
|
</matcher>
|
||||||
|
</filter>
|
||||||
|
</filteredResources>
|
||||||
</projectDescription>
|
</projectDescription>
|
||||||
|
|||||||
@ -1,2 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding/<project>=UTF-8
|
|
||||||
2
.settings/org.eclipse.jdt.apt.core.prefs
Normal file
2
.settings/org.eclipse.jdt.apt.core.prefs
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.apt.aptEnabled=false
|
||||||
@ -9,5 +9,6 @@ org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
|||||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
||||||
|
org.eclipse.jdt.core.compiler.processAnnotations=disabled
|
||||||
org.eclipse.jdt.core.compiler.release=disabled
|
org.eclipse.jdt.core.compiler.release=disabled
|
||||||
org.eclipse.jdt.core.compiler.source=24
|
org.eclipse.jdt.core.compiler.source=24
|
||||||
|
|||||||
@ -1,9 +1,12 @@
|
|||||||
a_tratar,cod_formacion, cod_instituto, anyo
|
a_tratar,id_formacion, id_instituto, anyo
|
||||||
S, 1, 1, 2021
|
S, 1, 1, 2021
|
||||||
S, 1, 2, 2022
|
S, 1, 2, 2022
|
||||||
S, 2, 1, 2022
|
S, 2, 1, 2022
|
||||||
|
N, 3, 2, 2022
|
||||||
|
S, 8, 5, 2020
|
||||||
S, 2, 2, 2021
|
S, 2, 2, 2021
|
||||||
N, 2, 3, 2023
|
N, 2, 3, 2023
|
||||||
S, 3, 1, 2024
|
S, 3, 1, 2024
|
||||||
|
S, 5, 9, 2020
|
||||||
S, 3, 3, 2024
|
S, 3, 3, 2024
|
||||||
S, 4, 3, 2020
|
S, 4, 3, 2020
|
||||||
|
@ -8,27 +8,24 @@ import java.util.List;
|
|||||||
import org.comunidadmadrid.fp.dam2.dao.ICicloFormativoDAO;
|
import org.comunidadmadrid.fp.dam2.dao.ICicloFormativoDAO;
|
||||||
import org.comunidadmadrid.fp.dam2.dao.IFormacionDAO;
|
import org.comunidadmadrid.fp.dam2.dao.IFormacionDAO;
|
||||||
import org.comunidadmadrid.fp.dam2.dao.IInstitutoDAO;
|
import org.comunidadmadrid.fp.dam2.dao.IInstitutoDAO;
|
||||||
import org.comunidadmadrid.fp.dam2.dao.IInstitutoFormacionDAO;
|
|
||||||
import org.comunidadmadrid.fp.dam2.dao.hibernate.CicloFormativoDaoHibernate;
|
import org.comunidadmadrid.fp.dam2.dao.hibernate.CicloFormativoDaoHibernate;
|
||||||
import org.comunidadmadrid.fp.dam2.dao.hibernate.FormacionDaoHibernate;
|
import org.comunidadmadrid.fp.dam2.dao.hibernate.FormacionDaoHibernate;
|
||||||
import org.comunidadmadrid.fp.dam2.dao.hibernate.InstitutoFormacionDaoHibernate;
|
|
||||||
import org.comunidadmadrid.fp.dam2.dao.jdbc.CicloFormativoDaoJDBC;
|
import org.comunidadmadrid.fp.dam2.dao.jdbc.CicloFormativoDaoJDBC;
|
||||||
import org.comunidadmadrid.fp.dam2.dao.jpa.InstitutoDaoJPA;
|
import org.comunidadmadrid.fp.dam2.dao.jpa.InstitutoDaoJPA;
|
||||||
import org.comunidadmadrid.fp.dam2.dao.mongodb.InstitutoDaoMongoDB;
|
import org.comunidadmadrid.fp.dam2.dao.mongodb.InstitutoDaoMongoDB;
|
||||||
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
|
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
|
||||||
import org.comunidadmadrid.fp.dam2.gestores.GestorFicheroConfiguracion;
|
import org.comunidadmadrid.fp.dam2.gestores.GestorFicheroConfiguracion;
|
||||||
|
import org.comunidadmadrid.fp.dam2.gestores.GestorSesionHibernate;
|
||||||
import org.comunidadmadrid.fp.dam2.procesamiento.ProcesadorDatos;
|
import org.comunidadmadrid.fp.dam2.procesamiento.ProcesadorDatos;
|
||||||
import org.comunidadmadrid.fp.dam2.utilidades.GestorURLs;
|
import org.comunidadmadrid.fp.dam2.utilidades.GestorURLs;
|
||||||
import org.comunidadmadrid.fp.dam2.vo.CicloFormativo;
|
import org.comunidadmadrid.fp.dam2.vo.CicloFormativo;
|
||||||
import org.comunidadmadrid.fp.dam2.vo.Formacion;
|
import org.comunidadmadrid.fp.dam2.vo.Formacion;
|
||||||
import org.comunidadmadrid.fp.dam2.vo.Instituto;
|
import org.comunidadmadrid.fp.dam2.vo.Instituto;
|
||||||
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion;
|
|
||||||
|
|
||||||
/*
|
/**
|
||||||
Organización: Virgen de la Paloma
|
* Organización: Virgen de la Paloma Programador: Isidoro Nevares Martín Fecha:
|
||||||
Programador: Isidoro Nevares Martín
|
* 26 febrero 2026
|
||||||
Fecha: 1 mar 2025
|
*/
|
||||||
*/
|
|
||||||
public class ClasePrincipal {
|
public class ClasePrincipal {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -36,7 +33,8 @@ public class ClasePrincipal {
|
|||||||
*/
|
*/
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
ClasePrincipal appPrincipal = new ClasePrincipal();
|
ClasePrincipal appPrincipal = new ClasePrincipal();
|
||||||
// GestorSesionHibernate.getSession();
|
|
||||||
|
GestorSesionHibernate.getSession();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
appPrincipal.tratarCiclosFormativos();
|
appPrincipal.tratarCiclosFormativos();
|
||||||
@ -168,23 +166,8 @@ public class ClasePrincipal {
|
|||||||
*/
|
*/
|
||||||
private void tratarInstitutoFormacion() throws FormacionException {
|
private void tratarInstitutoFormacion() throws FormacionException {
|
||||||
|
|
||||||
// Se obtiene la lista de Instituto Formación a partir de un fichero en CSV
|
|
||||||
String rutaCSVInstitutoFormacion = GestorFicheroConfiguracion.obtenerValor("ruta.csv");
|
|
||||||
ProcesadorDatos procesador = new ProcesadorDatos();
|
ProcesadorDatos procesador = new ProcesadorDatos();
|
||||||
List<InstitutoFormacion> listaInstitutosFormaciones = procesador
|
procesador.crearFormacionesInstitutoCSV();
|
||||||
.obtenerInstitutoFormacionDeFicheroCSV(rutaCSVInstitutoFormacion);
|
|
||||||
|
|
||||||
if (listaInstitutosFormaciones != null && listaInstitutosFormaciones.size() > 0) {
|
|
||||||
// Se prepara el AADD de InstitutoFormacion para que se realice mediante
|
|
||||||
// Hibernate
|
|
||||||
IInstitutoFormacionDAO iInstitutoFormacionDAO = new InstitutoFormacionDaoHibernate();
|
|
||||||
|
|
||||||
for (InstitutoFormacion institutoFormacion : listaInstitutosFormaciones) {
|
|
||||||
|
|
||||||
System.out.println(institutoFormacion);
|
|
||||||
iInstitutoFormacionDAO.insertarInstitutoFormacion(institutoFormacion);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ package org.comunidadmadrid.fp.dam2.dao;
|
|||||||
|
|
||||||
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
|
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
|
||||||
import org.comunidadmadrid.fp.dam2.vo.Formacion;
|
import org.comunidadmadrid.fp.dam2.vo.Formacion;
|
||||||
|
import org.comunidadmadrid.fp.dam2.vo.Instituto;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Organización: Virgen de la Paloma
|
Organización: Virgen de la Paloma
|
||||||
@ -12,6 +13,13 @@ Programador: Isidoro Nevares Martín
|
|||||||
Fecha: 1 mar 2025
|
Fecha: 1 mar 2025
|
||||||
*/
|
*/
|
||||||
public interface IFormacionDAO {
|
public interface IFormacionDAO {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param identificador
|
||||||
|
* @return
|
||||||
|
* @throws FormacionException
|
||||||
|
*/
|
||||||
|
Formacion obtenerFormacionPorID(int identificador) throws FormacionException;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param formacion
|
* @param formacion
|
||||||
|
|||||||
@ -5,6 +5,7 @@ package org.comunidadmadrid.fp.dam2.dao;
|
|||||||
|
|
||||||
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
|
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
|
||||||
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion;
|
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion;
|
||||||
|
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion.InstitutoFormacionID;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Organización: Virgen de la Paloma
|
Organización: Virgen de la Paloma
|
||||||
@ -18,4 +19,11 @@ public interface IInstitutoFormacionDAO {
|
|||||||
* @throws FormacionException
|
* @throws FormacionException
|
||||||
*/
|
*/
|
||||||
void insertarInstitutoFormacion(InstitutoFormacion institutoFormacion) throws FormacionException;
|
void insertarInstitutoFormacion(InstitutoFormacion institutoFormacion) throws FormacionException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param institutoFormacion
|
||||||
|
* @throws FormacionException
|
||||||
|
*/
|
||||||
|
InstitutoFormacion obtenerInstitutoFormacionPorID(InstitutoFormacionID identificador) throws FormacionException;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import org.comunidadmadrid.fp.dam2.dao.IFormacionDAO;
|
|||||||
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
|
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
|
||||||
import org.comunidadmadrid.fp.dam2.gestores.GestorSesionHibernate;
|
import org.comunidadmadrid.fp.dam2.gestores.GestorSesionHibernate;
|
||||||
import org.comunidadmadrid.fp.dam2.vo.Formacion;
|
import org.comunidadmadrid.fp.dam2.vo.Formacion;
|
||||||
|
import org.hibernate.HibernateException;
|
||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
import org.hibernate.Transaction;
|
import org.hibernate.Transaction;
|
||||||
|
|
||||||
@ -42,4 +43,16 @@ public class FormacionDaoHibernate implements IFormacionDAO{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Formacion obtenerFormacionPorID(int identificador) throws FormacionException {
|
||||||
|
Formacion formacion = null;
|
||||||
|
// try con recursos "cerrables": Session
|
||||||
|
try (Session sesion = GestorSesionHibernate.getSession();) {
|
||||||
|
formacion = sesion.find(Formacion.class, identificador);
|
||||||
|
} catch (HibernateException e) {
|
||||||
|
throw new FormacionException(e, FormacionException.ERROR_CONSULTA, getClass());
|
||||||
|
}
|
||||||
|
return formacion;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,8 @@ import org.comunidadmadrid.fp.dam2.dao.IInstitutoFormacionDAO;
|
|||||||
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
|
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
|
||||||
import org.comunidadmadrid.fp.dam2.gestores.GestorSesionHibernate;
|
import org.comunidadmadrid.fp.dam2.gestores.GestorSesionHibernate;
|
||||||
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion;
|
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion;
|
||||||
|
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion.InstitutoFormacionID;
|
||||||
|
import org.hibernate.HibernateException;
|
||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
import org.hibernate.Transaction;
|
import org.hibernate.Transaction;
|
||||||
|
|
||||||
@ -40,4 +42,19 @@ public class InstitutoFormacionDaoHibernate implements IInstitutoFormacionDAO{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InstitutoFormacion obtenerInstitutoFormacionPorID(InstitutoFormacionID identificador)
|
||||||
|
throws FormacionException {
|
||||||
|
InstitutoFormacion institutoFormacion =null;
|
||||||
|
|
||||||
|
// try con recursos "cerrables": Session
|
||||||
|
try (Session sesion = GestorSesionHibernate.getSession();) {
|
||||||
|
institutoFormacion = sesion.find(InstitutoFormacion.class, identificador);
|
||||||
|
} catch (HibernateException e) {
|
||||||
|
throw new FormacionException(e, FormacionException.ERROR_CONSULTA, getClass());
|
||||||
|
}
|
||||||
|
|
||||||
|
return institutoFormacion;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,23 +21,17 @@ Fecha: 1 mar 2025
|
|||||||
public class InstitutoDaoJPA implements IInstitutoDAO {
|
public class InstitutoDaoJPA implements IInstitutoDAO {
|
||||||
@Override
|
@Override
|
||||||
public Instituto obtenerInstitutoPorID(int identificador) throws FormacionException {
|
public Instituto obtenerInstitutoPorID(int identificador) throws FormacionException {
|
||||||
Instituto instituto =null;
|
Instituto instituto = null;
|
||||||
|
|
||||||
EntityManager gestorEntidades = null;
|
try (EntityManager gestorEntidades = GestorEntityManagerJPA.getEntityManager()) {
|
||||||
try {
|
|
||||||
gestorEntidades= GestorEntityManagerJPA.getEntityManager();
|
|
||||||
|
|
||||||
instituto=gestorEntidades.find(Instituto.class, identificador);
|
instituto = gestorEntidades.find(Instituto.class, identificador);
|
||||||
} catch (Exception e) {
|
|
||||||
|
} catch (Exception e) {
|
||||||
throw new FormacionException(e, FormacionException.ERROR_CONSULTA, getClass());
|
throw new FormacionException(e, FormacionException.ERROR_CONSULTA, getClass());
|
||||||
}
|
}
|
||||||
finally {
|
|
||||||
if(gestorEntidades!=null) {
|
|
||||||
gestorEntidades.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return instituto;
|
return instituto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -65,15 +59,14 @@ public class InstitutoDaoJPA implements IInstitutoDAO {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actualizarInstituto(Instituto instituto) throws FormacionException {
|
public void actualizarInstituto(Instituto instituto) throws FormacionException {
|
||||||
EntityManager gestorEntidades = null;
|
EntityManager gestorEntidades = null;
|
||||||
EntityTransaction transaccion = null;
|
EntityTransaction transaccion = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
gestorEntidades= GestorEntityManagerJPA.getEntityManager();
|
gestorEntidades = GestorEntityManagerJPA.getEntityManager();
|
||||||
transaccion=gestorEntidades.getTransaction();
|
transaccion = gestorEntidades.getTransaction();
|
||||||
|
|
||||||
// Inicia transacción
|
// Inicia transacción
|
||||||
transaccion.begin();
|
transaccion.begin();
|
||||||
@ -83,15 +76,15 @@ public class InstitutoDaoJPA implements IInstitutoDAO {
|
|||||||
gestorEntidades.merge(instituto);
|
gestorEntidades.merge(instituto);
|
||||||
|
|
||||||
// Confirma transacción
|
// Confirma transacción
|
||||||
transaccion.commit();
|
transaccion.commit();
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new FormacionException(e, FormacionException.ERROR_ACTUALIZACION, getClass());
|
throw new FormacionException(e, FormacionException.ERROR_ACTUALIZACION, getClass());
|
||||||
} finally {
|
} finally {
|
||||||
if(gestorEntidades!=null) {
|
if (gestorEntidades != null) {
|
||||||
gestorEntidades.close();
|
gestorEntidades.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,82 +0,0 @@
|
|||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
package org.comunidadmadrid.fp.dam2.procesamiento;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
||||||
|
|
||||||
import tools.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
|
||||||
|
|
||||||
/*
|
|
||||||
Organización: Virgen de la Paloma
|
|
||||||
Programador: Isidoro Nevares Martín
|
|
||||||
Fecha: 1 mar 2025
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class FormacionXML {
|
|
||||||
@JacksonXmlProperty(isAttribute = true, localName = "id_formacion")
|
|
||||||
private int identificador;
|
|
||||||
|
|
||||||
@JacksonXmlProperty(isAttribute = true, localName = "formacion_distancia")
|
|
||||||
private String formacionDistantica;
|
|
||||||
|
|
||||||
@JsonProperty(value = "nombre_corto")
|
|
||||||
private String nombreCorto;
|
|
||||||
|
|
||||||
@JsonProperty(value = "cod_ciclo_formativo")
|
|
||||||
private int codigoCicloFormativo;
|
|
||||||
|
|
||||||
@JsonProperty(value = "es_formacion_stem")
|
|
||||||
private int esFormacionSTEM;
|
|
||||||
|
|
||||||
@JsonProperty(value = "informacion_adicional")
|
|
||||||
private Object informacionAdicional;
|
|
||||||
|
|
||||||
public int getIdentificador() {
|
|
||||||
return identificador;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIdentificador(int identificador) {
|
|
||||||
this.identificador = identificador;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFormacionDistantica() {
|
|
||||||
return formacionDistantica;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFormacionDistantica(String formacionDistantica) {
|
|
||||||
this.formacionDistantica = formacionDistantica;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getNombreCorto() {
|
|
||||||
return nombreCorto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNombreCorto(String nombreCorto) {
|
|
||||||
this.nombreCorto = nombreCorto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getCodigoCicloFormativo() {
|
|
||||||
return codigoCicloFormativo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCodigoCicloFormativo(int codigoCicloFormativo) {
|
|
||||||
this.codigoCicloFormativo = codigoCicloFormativo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getEsFormacionSTEM() {
|
|
||||||
return esFormacionSTEM;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEsFormacionSTEM(int esFormacionSTEM) {
|
|
||||||
this.esFormacionSTEM = esFormacionSTEM;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Object getInformacionAdicional() {
|
|
||||||
return informacionAdicional;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setInformacionAdicional(Object informacionAdicional) {
|
|
||||||
this.informacionAdicional = informacionAdicional;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,64 +0,0 @@
|
|||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
package org.comunidadmadrid.fp.dam2.procesamiento;
|
|
||||||
|
|
||||||
import com.opencsv.bean.CsvBindByName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Organización: Virgen de la Paloma
|
|
||||||
* Programador: Isidoro Nevares Martín
|
|
||||||
* Fecha: 26 marzo 2026
|
|
||||||
*/
|
|
||||||
public class InstitutoFormacionCSV {
|
|
||||||
@CsvBindByName(column = "a_tratar")
|
|
||||||
private String filaTratar;
|
|
||||||
|
|
||||||
@CsvBindByName(column = "cod_instituto")
|
|
||||||
private int codigoInstituto;
|
|
||||||
|
|
||||||
@CsvBindByName(column = "cod_formacion")
|
|
||||||
private int codigoFormacio;
|
|
||||||
|
|
||||||
@CsvBindByName(column = "anyo")
|
|
||||||
private int anyoAcademico;
|
|
||||||
|
|
||||||
public String getFilaTratar() {
|
|
||||||
return filaTratar;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFilaTratar(String filaTratar) {
|
|
||||||
this.filaTratar = filaTratar;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getCodigoInstituto() {
|
|
||||||
return codigoInstituto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCodigoInstituto(int codigoInstituto) {
|
|
||||||
this.codigoInstituto = codigoInstituto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getCodigoFormacio() {
|
|
||||||
return codigoFormacio;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCodigoFormacio(int codigoFormacio) {
|
|
||||||
this.codigoFormacio = codigoFormacio;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getAnyoAcademico() {
|
|
||||||
return anyoAcademico;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAnyoAcademico(int anyoAcademico) {
|
|
||||||
this.anyoAcademico = anyoAcademico;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "InstitutoFormacionCSV [filaTratar=" + filaTratar + ", codigoInstituto=" + codigoInstituto
|
|
||||||
+ ", codigoFormacio=" + codigoFormacio + ", anyoAcademico=" + anyoAcademico + "]";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -3,19 +3,28 @@
|
|||||||
*/
|
*/
|
||||||
package org.comunidadmadrid.fp.dam2.procesamiento;
|
package org.comunidadmadrid.fp.dam2.procesamiento;
|
||||||
|
|
||||||
import java.io.FileNotFoundException;
|
import java.io.BufferedReader;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.comunidadmadrid.fp.dam2.dao.IFormacionDAO;
|
||||||
|
import org.comunidadmadrid.fp.dam2.dao.IInstitutoDAO;
|
||||||
|
import org.comunidadmadrid.fp.dam2.dao.IInstitutoFormacionDAO;
|
||||||
|
import org.comunidadmadrid.fp.dam2.dao.hibernate.FormacionDaoHibernate;
|
||||||
|
import org.comunidadmadrid.fp.dam2.dao.hibernate.InstitutoFormacionDaoHibernate;
|
||||||
|
import org.comunidadmadrid.fp.dam2.dao.jpa.InstitutoDaoJPA;
|
||||||
|
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
|
||||||
|
import org.comunidadmadrid.fp.dam2.gestores.GestorFicheroConfiguracion;
|
||||||
import org.comunidadmadrid.fp.dam2.utilidades.GestorURLs;
|
import org.comunidadmadrid.fp.dam2.utilidades.GestorURLs;
|
||||||
import org.comunidadmadrid.fp.dam2.vo.CicloFormativo;
|
import org.comunidadmadrid.fp.dam2.vo.CicloFormativo;
|
||||||
import org.comunidadmadrid.fp.dam2.vo.Formacion;
|
import org.comunidadmadrid.fp.dam2.vo.Formacion;
|
||||||
|
import org.comunidadmadrid.fp.dam2.vo.Instituto;
|
||||||
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion;
|
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion;
|
||||||
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion.InstitutoFormacionID;
|
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion.InstitutoFormacionID;
|
||||||
|
|
||||||
import com.opencsv.bean.CsvToBeanBuilder;
|
import tools.jackson.databind.JsonNode;
|
||||||
|
|
||||||
import tools.jackson.databind.ObjectMapper;
|
import tools.jackson.databind.ObjectMapper;
|
||||||
import tools.jackson.dataformat.xml.XmlMapper;
|
import tools.jackson.dataformat.xml.XmlMapper;
|
||||||
|
|
||||||
@ -25,110 +34,132 @@ Programador: Isidoro Nevares Martín
|
|||||||
Fecha: 1 mar 2025
|
Fecha: 1 mar 2025
|
||||||
*/
|
*/
|
||||||
public class ProcesadorDatos {
|
public class ProcesadorDatos {
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param urlFormaciones
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public List<Formacion> obtenerFormacionesDeURL(String urlFormaciones) {
|
public List<Formacion> obtenerFormacionesDeURL(String urlFormaciones) {
|
||||||
List<Formacion> listaFormaciones = null;
|
List<Formacion> listaFormaciones = null;
|
||||||
|
|
||||||
String informacionFormacionesXML = GestorURLs.getTextoFromURL(urlFormaciones);
|
String informacionFormacionesXML = GestorURLs.getTextoFromURL(urlFormaciones);
|
||||||
ObjectMapper mapeadorXML = new XmlMapper();
|
ObjectMapper mapeadorXML = new XmlMapper();
|
||||||
|
|
||||||
// obtener Formaciones XMl a partir de la URL
|
try {
|
||||||
FormacionXML[] arrayFormaciones = mapeadorXML.readValue(informacionFormacionesXML, FormacionXML[].class);
|
// obtener Formaciones XMl a partir de la URL
|
||||||
if (arrayFormaciones != null && arrayFormaciones.length > 0) {
|
JsonNode nodoRaiz = mapeadorXML.readTree(informacionFormacionesXML);
|
||||||
listaFormaciones = new ArrayList<Formacion>();
|
|
||||||
for (FormacionXML formacionXML : arrayFormaciones) {
|
if (nodoRaiz != null) {
|
||||||
// Se convierte un onjeto de tipo Fomarciones XMl en otro de tipo Formacion
|
listaFormaciones = new ArrayList<Formacion>();
|
||||||
Formacion formacion = obtenerFormacionDeFormacionXML(formacionXML);
|
|
||||||
if (formacion != null)
|
JsonNode elementos = nodoRaiz.has("formacion") ? nodoRaiz.get("formacion") : nodoRaiz;
|
||||||
listaFormaciones.add(formacion);
|
|
||||||
|
if (elementos.isArray()) {
|
||||||
|
for (JsonNode nodo : elementos) {
|
||||||
|
Formacion formacion = obtenerFormacionDeJsonNode(nodo);
|
||||||
|
if (formacion != null)
|
||||||
|
listaFormaciones.add(formacion);
|
||||||
|
}
|
||||||
|
} else if (!elementos.isMissingNode() && !elementos.isNull()) {
|
||||||
|
Formacion formacion = obtenerFormacionDeJsonNode(elementos);
|
||||||
|
if (formacion != null)
|
||||||
|
listaFormaciones.add(formacion);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.err.println("Error procesando XML con JsonNode: " + e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
return listaFormaciones;
|
return listaFormaciones;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Procesar las formaciones que se encuentran en el fichero CSV y almacenarlas
|
||||||
|
* en la Base de datos.
|
||||||
*
|
*
|
||||||
* @param rutaCSVInstitutoFormacion
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public List<InstitutoFormacion> obtenerInstitutoFormacionDeFicheroCSV(String rutaCSVInstitutoFormacion) {
|
|
||||||
List<InstitutoFormacion> listaInstitutosFormaciones = null;
|
|
||||||
|
|
||||||
try {
|
public void crearFormacionesInstitutoCSV() throws FormacionException {
|
||||||
@SuppressWarnings({ "rawtypes" })
|
String rutaFicheroCSV = GestorFicheroConfiguracion.obtenerValor("ruta.csv");
|
||||||
// obtener InstitutoFormacion CSV a partir de la ruta del fichero CSV
|
|
||||||
List<InstitutoFormacionCSV> listaInstitutosFormacionesCSV = new CsvToBeanBuilder(
|
try (BufferedReader br = new BufferedReader(new FileReader(rutaFicheroCSV))) {
|
||||||
new FileReader(rutaCSVInstitutoFormacion)).withType(InstitutoFormacionCSV.class).withSeparator(',')
|
String linea;
|
||||||
.build().parse();
|
|
||||||
if (listaInstitutosFormacionesCSV != null && listaInstitutosFormacionesCSV.size() > 0) {
|
// Saltar cabecera
|
||||||
listaInstitutosFormaciones = new ArrayList<InstitutoFormacion>();
|
br.readLine();
|
||||||
for (InstitutoFormacionCSV institutoFormacionCSV : listaInstitutosFormacionesCSV) {
|
|
||||||
// Se convierte un onjeto de tipo InstitutoFormacion CSV en otro de tipo
|
IInstitutoFormacionDAO institutoFormacionDAO = new InstitutoFormacionDaoHibernate();
|
||||||
// InstitutoFormacion
|
IFormacionDAO iFormacionDAO = new FormacionDaoHibernate();
|
||||||
InstitutoFormacion institutoFormacion = obtenerInstituoFormacionDeInstituoFormacionCSV(
|
IInstitutoDAO iInstitutoDAO = new InstitutoDaoJPA();
|
||||||
institutoFormacionCSV);
|
while ((linea = br.readLine()) != null) {
|
||||||
if (institutoFormacion != null)
|
|
||||||
listaInstitutosFormaciones.add(institutoFormacion);
|
String[] partes = linea.split(",");
|
||||||
|
String registroATratar = partes[0];
|
||||||
|
int idFormacion = Integer.parseInt(partes[1].trim());
|
||||||
|
int idInstituto = Integer.parseInt(partes[2].trim());
|
||||||
|
int anyo = Integer.parseInt(partes[3].trim());
|
||||||
|
|
||||||
|
// Si el registro es de tipo "S" se tratará para insertarse en la Base de datos.
|
||||||
|
if (registroATratar.equals("S")) {
|
||||||
|
InstitutoFormacionID institutoFormacionID = new InstitutoFormacionID(idInstituto, idFormacion);
|
||||||
|
InstitutoFormacion institutoFormacionBBDD = institutoFormacionDAO
|
||||||
|
.obtenerInstitutoFormacionPorID(institutoFormacionID);
|
||||||
|
// Si no existe información en la Base de datos.
|
||||||
|
if (institutoFormacionBBDD == null) {
|
||||||
|
InstitutoFormacion institutoFormacion = new InstitutoFormacion();
|
||||||
|
|
||||||
|
// Sólo se insertará el InstitutoFormacion si existen tanto el Instituto como la
|
||||||
|
// Formación en la Base de datos.
|
||||||
|
Instituto instituto = iInstitutoDAO.obtenerInstitutoPorID(idInstituto);
|
||||||
|
Formacion formacion = iFormacionDAO.obtenerFormacionPorID(idFormacion);
|
||||||
|
if (instituto != null && formacion != null) {
|
||||||
|
institutoFormacion.setIdInstitutoFormacion(institutoFormacionID);
|
||||||
|
institutoFormacion.setInstituto(instituto);
|
||||||
|
institutoFormacion.setFormacion(formacion);
|
||||||
|
institutoFormacion.setAnyoAcademico(anyo);
|
||||||
|
|
||||||
|
institutoFormacionDAO.insertarInstitutoFormacion(institutoFormacion);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
} catch (IllegalStateException | FileNotFoundException e) {
|
|
||||||
// TODO Auto-generated catch block
|
// TODO Auto-generated catch block
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
return listaInstitutosFormaciones;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Convierte un JsonNode que representa una formación en el objeto Formacion
|
||||||
|
* correspondiente.
|
||||||
*
|
*
|
||||||
* @param formacionXML
|
* @param nodoJson
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private Formacion obtenerFormacionDeFormacionXML(FormacionXML formacionXML) {
|
private Formacion obtenerFormacionDeJsonNode(JsonNode nodoJson) {
|
||||||
Formacion formacion = null;
|
Formacion formacion = null;
|
||||||
if (formacionXML != null) {
|
if (nodoJson != null && !nodoJson.isNull()) {
|
||||||
formacion = new Formacion();
|
formacion = new Formacion();
|
||||||
formacion.setIdentificador(formacionXML.getIdentificador());
|
|
||||||
int formacionSTEM = formacionXML.getEsFormacionSTEM();
|
// Atributos mapeados como nodos en Jackson
|
||||||
if (formacionSTEM == 1)
|
if (nodoJson.has("id_formacion")) {
|
||||||
formacion.setIndicadorSTEM(true);
|
formacion.setIdentificador(nodoJson.get("id_formacion").asInt());
|
||||||
else
|
}
|
||||||
formacion.setIndicadorSTEM(false);
|
|
||||||
formacion.setNombreCorto(formacionXML.getNombreCorto());
|
int formacionSTEM = 0;
|
||||||
|
if (nodoJson.has("es_formacion_stem")) {
|
||||||
|
formacionSTEM = nodoJson.get("es_formacion_stem").asInt();
|
||||||
|
}
|
||||||
|
formacion.setIndicadorSTEM(formacionSTEM == 1);
|
||||||
|
|
||||||
|
if (nodoJson.has("nombre_corto")) {
|
||||||
|
formacion.setNombreCorto(nodoJson.get("nombre_corto").asString());
|
||||||
|
}
|
||||||
|
|
||||||
CicloFormativo ciclo = new CicloFormativo();
|
CicloFormativo ciclo = new CicloFormativo();
|
||||||
ciclo.setIdentificador(formacionXML.getCodigoCicloFormativo());
|
if (nodoJson.has("cod_ciclo_formativo")) {
|
||||||
|
ciclo.setIdentificador(nodoJson.get("cod_ciclo_formativo").asInt());
|
||||||
|
}
|
||||||
formacion.setCicloFormativo(ciclo);
|
formacion.setCicloFormativo(ciclo);
|
||||||
}
|
}
|
||||||
return formacion;
|
return formacion;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param institutoFormacionCSV
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private InstitutoFormacion obtenerInstituoFormacionDeInstituoFormacionCSV(
|
|
||||||
InstitutoFormacionCSV institutoFormacionCSV) {
|
|
||||||
InstitutoFormacion institutoFormacion = null;
|
|
||||||
if (institutoFormacionCSV != null) {
|
|
||||||
if (institutoFormacionCSV.getFilaTratar().equals("S")) {
|
|
||||||
institutoFormacion = new InstitutoFormacion();
|
|
||||||
|
|
||||||
InstitutoFormacionID claveInstitoFormacion = new InstitutoFormacionID(
|
|
||||||
institutoFormacionCSV.getCodigoInstituto(), institutoFormacionCSV.getCodigoFormacio());
|
|
||||||
institutoFormacion.setIdInstitutoFormacion(claveInstitoFormacion);
|
|
||||||
|
|
||||||
institutoFormacion.setAnyoAcademico(institutoFormacionCSV.getAnyoAcademico());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return institutoFormacion;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
<!-- Configuración para la conexión a la Base de Datos -->
|
<!-- Configuración para la conexión a la Base de Datos -->
|
||||||
<properties>
|
<properties>
|
||||||
<property name="jakarta.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver" />
|
<property name="jakarta.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver" />
|
||||||
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://10.11.218.147:3306/formacionfp_dam2" />
|
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://192.168.1.36:3306/formacionfp_dam2" />
|
||||||
<property name="jakarta.persistence.jdbc.user" value="root" />
|
<property name="jakarta.persistence.jdbc.user" value="root" />
|
||||||
<property name="jakarta.persistence.jdbc.password" value="mysql_123" />
|
<property name="jakarta.persistence.jdbc.password" value="mysql_123" />
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
# Información sobre la Base de datos PostgreSQL
|
# Información sobre la Base de datos PostgreSQL
|
||||||
jdbc.driver=org.postgresql.Driver
|
jdbc.driver=org.postgresql.Driver
|
||||||
jdbc.url=jdbc:postgresql://10.11.218.147:5432/formacionfp_postgresql
|
jdbc.url=jdbc:postgresql://192.168.1.36:5432/formacionfp_postgresql
|
||||||
jdbc.usuario=vdlp
|
jdbc.usuario=vdlp
|
||||||
jdbc.password=postgresql_123
|
jdbc.password=postgresql_123
|
||||||
|
|
||||||
# Información sobre la Base de datos MongoDB
|
# Información sobre la Base de datos MongoDB
|
||||||
mongodb.url=mongodb://localhost:27017/
|
mongodb.url=mongodb://admin:mongodb_123@192.168.1.36:27017
|
||||||
mongodb.bbdd=formacionfp_dam2
|
mongodb.bbdd=formacionfp_dam2
|
||||||
|
|
||||||
#ruta URL formaciones
|
#ruta URL formaciones
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||||
<hibernate-configuration>
|
<hibernate-configuration>
|
||||||
<session-factory>
|
<session-factory>
|
||||||
<property name="connection.url">jdbc:mysql://10.11.218.147:3306/formacionfp_dam2</property>
|
<property name="connection.url">jdbc:mysql://192.168.1.36:3306/formacionfp_dam2</property>
|
||||||
<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
|
<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
|
||||||
|
|
||||||
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
|
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user