amap-dir3

Versión 1.1.3

Fecha: 21 mayo 2018.
Nuevo servicio de consulta de unidades orgánicas sin RPT

Versión 1.1.2

Fecha: 12 abril 2018.
Se pasa la dependencia del modelo con versión por rango y el modelo con jdk 1.7

Versión 1.1.1

Fecha: 4 abril 2018.
Correcciones interfaz

Versión 1.1.0

Fecha: 29 marzo 2018.
Cliente con implementacion httpclient

Versión 1.0.2

Fecha: 04 Abril 2017.
Se añaden dos campos nuevos a la importacion con el numero de registros de oficinas y unidades organicas actualizados en cada importacion

Versión 1.0.1

Fecha: 20 Febrero 2017.
Se añaden los filtros por UOSuperior, UORaiz, AmbitoTerritorial y NivelJerarquico al servicio getUnidadesOrganicas.
Se añade un servicio getAmbitosTerritoriales.
Se elimina la creacion del servicio mediante host

Versión 1.0.0

Fecha: 30 Mayo 2016.
Versión inicial

<dependency>
<groupId>es.gobcantabria.amap.integracion</groupId>
<artifactId>amap-dir3</artifactId>
<version>1.1.3</version>
</dependency>

Es necesario de disponer de los siguientes datos:

  • Servidor: nombre o ip del servidor donde se aloja el servidor de amap-dir3

Sin recursos disponibles.

Configuración

Configuración de la factoría de servicios

Para la utilización del componente AMAPDir3 basta con añadir el jar y sus correspondientes dependencias al classpath de la aplicación y crear un servicio del siguiente modo:

Dir3Cliente servicio = Dir3Cliente.getService(url, usuarioProxy, implementación, aplicacion);

El servicio concreto a usar se definirá a partir de un fichero de properties junto con el resto de los parámetros:

KeyDescripciónEjemplo
sistemas.global.amap.dir3.url.restfulEndpoint del servicio web http://<host>/amap-dir3-servidor/services/Dir3RestfulWS
sistemas.global.amap.dir3.url.webserviceEndpoint del servicio web http://<host>/amap-dir3-servidor/services/Dir3WS
Los valores de las propieades aquí mostrados son meramente ilustrativos. En los entornos de desarrollo / preproducción y producción los valores de las variables han de ser externalizados tal y como se especifica en el documento Definición de acceso a propiedades de sistema

Ejemplo de contenido del fichero de propiedades:

sistemas.global.amap.dir3.url.restful=http://<host>/amap-dir3-servidor/services/Dir3RestfulWS
sistemas.global.amap.dir3.url.webservice=http://<host>/amap-dir3-servidor/services/Dir3WS

La configuración del componente se realiza a la hora de obtener la instancia del servicio. Los parámetros soportados son:

  • URL:  URL donde está desplegado el servicio (instancia de java.net.URL).
  • Implementacion (Opcional): existen 3 implementaciones:
    • Mock: cliente de prueba para la integración con el servicio sin necesidad de conectarse a ningún servidor (los parámetros serán ignorados)
    • WS: el cliente se conectará sobre los webservices de amap dir3 (opción por defecto).
    • RS: el cliente se conectará sobre los webservices SOAP de amap dir3.

Por lo que la forma convencional de generar un cliente, en el entorno de desarrollo, sería: 


Dir3ClienteInterface dir3Cliente = Dir3Cliente.getService(URL,USUARIOPROXYWS, IMPLEMENTACION, APLICACION);

Este cliente sería de tipo WS, mientras que si queremos crear un cliente de tipo RESTful
la forma convencional de generar un cliente sería:


Dir3ClienteInterface dir3Cliente = Dir3Cliente.getService(
   new URL("http://******/amap-dir3/services/Dir3RestfulWS"),
   USUARIOPROXYWS,
   Dir3ClienteTipoImplementacion.DIR3_CLIENTE_RS, aplicacion);

Una vez obtenido el servicio podemos invocar cualquiera de sus métodos.

Para el servicio web deberemos considerar el siguiente modelo de dominio:

UML DIR3 Oficina

UML DIR3 Unidad Organica

UML DIR3 General

Nombreamap-dir3
Identificadoramap-dir3
Grupoes.gobcantabria.amap.integracion
Versión1.1.3
Licencia
DesarrolladorGobierno de Cantabria
Descripción

Componente de Acceso a la información de las unidades organicas y oficinas del Gobierno de Cantabria

Documentaciónamap-dir3 (JavaDoc)
Binarioamap-dir3 (Jar)
Dependenciasamap-dir3 (Librerías)

Sin particularidades. Seguir las recomendaciones del fabricante.

Introducción

Una vez creado el servicio, tal y como se indica en el apartado de configuración, se pueden acceder a los métodos disponibles.

Aquellas operaciones del servicio que soliciten un filtro de unidad orgánica u oficina deben invocarse en formato de consulta con los %.

Servicio Web

Consultar Unidades Organicas

Devuelve la información de las unidades orgánicas que cumplen un determinado filtro (código, detallado o no, descripción, ccaa, provincia, nivelAdmon, estado, numero de registros, estado SIR, estado ORGZ, UO SIR, codigoExterno, UO Superior, UO Raiz, Ambito territorial, nivelJerarquico)

Consulta detallada

FiltroUnidad filtro = new FiltroUnidad();
filtro.setFiltroCodigo("E04921801");
filtro.setNumMaxRegistros(1L);
filtro.setDetallado(true);
filtro.setFiltroSIR(false);
ResponseUnidad unidades = getDir3Cliente().getUnidadesOrganicas(filtro, USUARIO);
El RPT esta asociado al campo codigoExterno de las UO

Consultar Unidades Organicas sin RPT

Devuelve la información de las unidades orgánicas sin rpt que cumplen un determinado filtro (ccaa, estado)
Por defecto la consulta es de las Unidades Organicas del gobierno de Cantabria

FiltroRPT filtro = new FiltroRPT();
filtro.setCcaa(6L);
filtro.setEstados(new ArrayList<String>{"V"});
ResponseUnidad unidades = getDir3Cliente().getUnidadesOrganicasSinRPT(filtro, USUARIO);

Consultar Oficinas

Devuelve la información de oficinas que cumplen un determinado filtro

Consulta detallada

FiltroOficina filtro = new FiltroOficina();
filtro.setNumMaxRegistros(400L);
filtro.setDetallado(true);
filtro.setFiltroCcaa(6L);
ResponseOficina oficinas = getDir3Cliente().getOficinas(filtro, USUARIO);

Consultar Comunidades Autonomas

Devuelve la información de las comunidades autónomas

Consulta por codigo

FiltroCcaa filtro = new FiltroCcaa();
filtro.setCodigo(6L);
List<Ccaa> ccaaCodigo = getDir3Cliente().getCcaas(filtro, USUARIO);

Consultar Estados Entidad

Devuelve la información de los estados de entidad

Consulta por codigo

List<EstadoEntidad> estados = getDir3Cliente().getEstadosEntidad(new FiltroEstado("V"), USUARIO);

Consultar Municipios

Devuelve la información de los municipios

Consulta por codigo

List<Localidad> municipiosCodigo = getDir3Cliente().getMunicipios(new FiltroLocalidad(112L, null, null), USUARIO);

Consultar Localidades

Devuelve la información de las localidades

Consulta por descripcion

List<Localidad> localidadesDes = getDir3Cliente().getLocalidades(new FiltroLocalidad(10L, null, null), USUARIO);

Consultar Ambito Territorial

Devuelve la información de los ambitos territoriales

Consulta todos los ambitos territoriales

FiltroAmbTerritoriales filtro = new FiltroAmbTerritoriales("14", null, null);
List<AmbitoTerritorial> ambTerrito= getDir3Cliente().getAmbitosTerritoriales(filtro, USUARIO);

Consultar Islas

Devuelve la información de las islas

Consulta por codigo

List<Isla> islasCodigo = getDir3Cliente().getIslas(new FiltroIsla("01", null), USUARIO);

Consultar Paises

Devuelve la información de los paises

Consulta por codigo

FiltroPais filtro = new FiltroPais();
  filtro.setCodigo(50L);
List<Pais> pais = getDir3Cliente().getPaises(filtro, USUARIO);

Consultar Provincias

Devuelve la información de las provincias

Consulta todas las provincias

FiltroProvincia filtro = new FiltroProvincia();
filtro.setCodigo(16L);
List<Provincia> provincias = getDir3Cliente().getProvincias(filtro, USUARIO);

Consultar Niveles Administracion

Devuelve la información de los niveles de administración

Consulta todos los niveles de administración

FiltroNivelAdmon filtro = new FiltroNivelAdmon();
filtro.setCodigo(7L);
List<NivelesAdmon> niveles = getDir3Cliente().getNivelesAdmon(filtro, USUARIO);

Consultar Servicios Oficina

Devuelve la información de los servicios de oficina

Consulta todos los servicios de Oficina

FiltroServicios filtro = new FiltroServicios(10L);
List<OficinaServicio> servicios = getDir3Cliente().getServiciosOficina(filtro, USUARIO);

Consultar Historicos Oficina

Devuelve la información de los historicos de oficina

Consulta todos los historicos

FiltroHistoricos filtro = new FiltroHistoricos();
filtro.setCodigoAntiguo("O00023391");
List<OficinaHistoricos> historicos = getDir3Cliente().getHistoricosOficina(filtro, USUARIO);

Ejecutar una importacion

Importar todas las tablas de la BBDD

Dir3Cliente servicioDir3 = getDir3Cliente();
Long result = servicioDir3.importarTodo(USUARIO);

Consultar estado importacion

Devuelve el estado de una importacion

Dir3Cliente servicioDir3 = getDir3Cliente();
List<EstadoImportacion> result = servicioDir3.importarTodoEstado(1, USUARIO););

Consultar Importaciones

Devuelve la informacion de la importaciones

Consulta todas las importaciones

Dir3Cliente servicioDir3 = getDir3Cliente();
List<Importacion> importaciones = servicioDir3.getImportaciones
     (new FiltroImportaciones(1L, null, null), USUARIO);

Crear/Modificar datos de Oficinas

Añade o actualiza los datos de las oficinas

Alta nueva Oficina

List<OficinaRequest> oficinas = new ArrayList<OficinaRequest>();
OficinaRequest oficina = new OficinaRequest("1","Oficina Generica Cantabria - prueba",
 null,null,1,null,"A03007109","De 09:00 a 14:00 horas de lunes a viernes",null,"V",null,
 null,null,null,2,null,null,null,null,null);
oficinas.add(oficina);
List<DireccionRequest> direcciones = new ArrayList<DireccionRequest>();
DireccionRequest direccion = new DireccionRequest("1", "2", "Peña Herbosa", "S/N", null,
 "39003", "724", "06", "39", "0759", "01", null, null, null);
direcciones.add(direccion);
List<ContactoRequest> contactos = new ArrayList<ContactoRequest>();
ContactoRequest contacto = new ContactoRequest("1", "T", "999999999", null);
ContactoRequest contacto2 = new ContactoRequest("1", "F", "999999998", null);
ContactoRequest contacto3 = new ContactoRequest("1", "E", 
 "oficina_generica_cantabria@cantabria.es", null);
contactos.add(contacto);
contactos.add(contacto2);
contactos.add(contacto3);
List<ServicioRequest> servicios = new ArrayList<ServicioRequest>();
ServicioRequest servicio = new ServicioRequest("1","1",null);
ServicioRequest servicio2 = new ServicioRequest("1","3",null);
servicios.add(servicio);
servicios.add(servicio2);
DatosResponse oficinasResponse =getDir3Cliente().provisionOficinas(oficinas, contactos,
 direcciones, servicios, null, null, USUARIO);

Modificar Oficina

List<OficinaRequest> oficinas = new ArrayList<OficinaRequest>();
OficinaRequest oficina = new OficinaRequest("O00021786","Oficina de Prueba",null,null,
 null, null, "A03007109",null,null,null,null,null,null,"Fuente Prueba",2,null,null,null,
 null,null);
oficinas.add(oficina);
DatosResponse oficinasResponse =getDir3Cliente().provisionOficinas(oficinas, null, null,
 null, null, null, USUARIO);
  • Para borrar un registro indicar 'S' o 'N' en el campo borrar.
  • Para borrar una oficina se debe indicar la fecha de extincion, el estado a 'E' y se puede indicar la oficina encargada de sus competencias y el motivo de extincion.
  • Las direcciones no se pueden borrar.
  • Para dar de alta una oficina es obligatorio indicar su direccion.
  • Si un campo no se indica en una modificación este no sera alterado, para vaciar un campo se debe especificar como "null".
  • Las relaciones de intercambio solo podran ser añadidas o modificadas por usuario administrador.
  • El codigo que se indique en la oficina al realizar un alta es el codigo de referencia para direcciones, contactos, etc.. 
  • No se puede modificar la denominacion ni el nivelAdministracion de una oficina.
  • Campos Obligatorios: codigo, codUOResponsable, nivelAdministracion.

Crear/Modificar datos de Unidades

Añade o actualiza los datos de las unidades organicas

Alta nueva Unidad Organica

List<UnidadRequest> unidades = new ArrayList<UnidadRequest>();
UnidadRequest unidad = new UnidadRequest("1", null, "Unidad Organica Prueba", null, null,
 null, "2", null, null, "A03007109","N", null, "12", null, null, "06", null, null, null, 
 null, null, null, null, "V", null, null, null, null, null, null, null, null, null);
unidades.add(unidad);
List<DireccionRequest> direcciones = new ArrayList<DireccionRequest>();
DireccionRequest direccion = new DireccionRequest("1", "2", "Peña Herbosa", "S/N", null,
 "39003", "724", "06", "39", "0759", "01", null, null, null);
direcciones.add(direccion);
List<ContactoRequest> contactos = new ArrayList<ContactoRequest>();
ContactoRequest contacto = new ContactoRequest("1", "T", "999999999", null);
ContactoRequest contacto2 = new ContactoRequest("1", "F", "999999998", null);
ContactoRequest contacto3 = new ContactoRequest("1", "E", 
 "oficina_generica_cantabria@cantabria.es", null);
contactos.add(contacto);
contactos.add(contacto2);
contactos.add(contacto3);
DatosResponse unidadesResponse =getDir3Cliente().provisionUnidades(unidades, contactos, 
 direcciones, USUARIO);

Modificar Unidad

List<UnidadRequest> unidades = new ArrayList<UnidadRequest>();
UnidadRequest unidad = new UnidadRequest("A06019162", null, null, null, null, null, "2", 
 null, null, null, null, null, null, null, null, "06", null, null, null, null, null, null, 
 null, null, null, "codExterno Prueba", null, null, null, null, null, null, null);
unidades.add(unidad);
DatosResponse unidadesResponse =getDir3Cliente().provisionUnidades(unidades, null, null, USUARIO);
  • Para borrar un registro indicar 'S' o 'N' en el campo borrar.
  • Para borrar una Unidad organica se debe indicar la fecha de extincion, el estado a 'E' y obligatoriamente se puede indicar la unidad organica encargada de sus competencias y el motivo de extincion.
  • Si un campo no se indica en una modificación este no sera alterado, para vaciar un campo se debe especificar como "null".
  • Las direcciones no se pueden borrar.
  • El codigo que se indique en la unidad organica al realizar un alta es el codigo de referencia para direcciones y contactos .
  • No se puede modificar la denominacion ni el nivelAdministracion de una unidad organica.
  • En administraciones autonomicas no se permite modificar la comunidad autonoma.
  • En administraciones locales no se permite modificar la entidad geografica ni la provincia.
  • Si es un ayuntamiento no se permite modificar el municipio.
  • Para dar de alta una unidad organica es obligatorio indicar su direccion.
  • Campos Obligatorios: codigo, nivelAdmon, codComunidad.

Servicio Restful

El uso es igual que en el WS

getUnidadesOrganicas

Path: /getUnidadesOrganicas
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios ..
Parametros de Cuerpo:
filtro:  filtro de la busqueda
usuario: usuario de la peticion

devuelve la información de unidades orgánicas que cumplen un determinado filtro

getUnidadesOrganicasSinRPT

Path: /getUnidadesOrganicasSinRPT
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios ..
Parametros de Cuerpo:
filtro:  filtro de la busqueda
usuario: usuario de la peticion

devuelve la información de unidades orgánicas que cumplen un determinado filtro

getOficinas

Path:/getOficinas
Parametros de Cabecera: Authorization identificador del la aplicación el proxy de servicios,
Parametros de Cuerpo:
filtro:  filtro de la busqueda
usuario: usuario de la peticion
devuelve la información de oficinas que cumplen un determinado filtro

getCcaas

Path: /getCcaas
Parametros de Cabecera: Authorization: .. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo:
filtro:  filtro de la busqueda
usuario: usuario de la peticion
devuelve la información de las comunidades autónomas

getEstadosEntidad

Path: /getEstadosEntidad
Parametros de Cabecera: Authorization:.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo:
filtro:  filtro de la busqueda
usuario: usuario de la peticion
devuelve la información de los estados de oficina

getMunicipios

Path: /getMunicipios
Parametros de Cabecera: Authorization:.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo:
filtro:  filtro de la busqueda
usuario: usuario de la peticion
devuelve la información de los municipios

getLocalidades

Path: /getLocalidades
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo:
filtro:  filtro de la busqueda
usuario: usuario de la peticion
devuelve la información de las localidades

getIslas

Path: /getIslas
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo:
filtro:  filtro de la busqueda
usuario: usuario de la peticion
devuelve la información de las islas

getNivelesAdmon

Path: /getNivelesAdmon
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo:
filtro:  filtro de la busqueda
usuario: usuario de la peticion
devuelve la información de los niveles de administración

getPaises

Path: /getPaises
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo:
filtro:  filtro de la busqueda
usuario: usuario de la peticion
devuelve la información de los paises

getProvincias

Path: /getProvincias
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo:
filtro:  filtro de la busqueda
usuario: usuario de la peticion
devuelve la información de las provincias

getServiciosOficina

Path: /getServiciosOficina
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo:
filtro:  filtro de la busqueda
usuario: usuario de la peticion
devuelve la información de los servicios de oficina

getHistoricosOficina

Path: /getHistoricosOficina
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo:
filtro:  filtro de la busqueda
usuario: usuario de la peticion
devuelve la información de los historicos de oficina

importarTodo

Path: /importarTodo
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios ..:
Parametros de Cuerpo:
usuario: usuario de la peticion
actualiza todas las tablas de la BBDD

importarTodoEstado

Path: /importarTodoEstado
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo:
idImportacion: filtro por id de la importacion
usuario: usuario de la peticion
devuelve el estado de una actualizacion

getImportaciones

Path: /getImportaciones
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo:
filtro:  filtro de la busqueda
usuario: usuario de la peticion
devuelve la informacion de las importaciones

provisionOficinas

Path: /provisionOficinas
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo: requestOficinas:  datos de las oficinas

provisionUnidades

Path: /provisionUnidades
Parametros de Cabecera: Authorization :.. identificador del la aplicación en el proxy de servicios
Parametros de Cuerpo: requestUnidades:  datos de las unidades

Etiquetas:
Creado por Administrator el 2015/05/14 09:13
© 2014 GOBIERNO DE CANTABRIA - AVISO LEGAL Y PROTECCIÓN DE DATOS