Cambios para notificacion

This commit is contained in:
james 2020-06-23 09:27:09 -05:00
commit 6f669ebb76
29 changed files with 1761 additions and 0 deletions

29
nb-configuration.xml Executable file
View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-shared-configuration>
<!--
This file contains additional configuration written by modules in the NetBeans IDE.
The configuration is intended to be shared among all the users of project and
therefore it is assumed to be part of version control checkout.
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
-->
<libraries xmlns="http://www.netbeans.org/ns/cdnjs-libraries/1"/>
<properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
<!--
Properties that influence various parts of the IDE, especially code formatting and the like.
You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
That way multiple projects can share the same settings (useful for formatting rules for example).
Any value defined here will override the pom.xml file value but is only applicable to the current project.
-->
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>1.8-web</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>
<org-netbeans-modules-maven-jaxws.rest_2e_config_2e_type>ide</org-netbeans-modules-maven-jaxws.rest_2e_config_2e_type>
<org-netbeans-modules-maven-j2ee.netbeans_2e_deploy_2e_on_2e_save>false</org-netbeans-modules-maven-j2ee.netbeans_2e_deploy_2e_on_2e_save>
<org-netbeans-modules-css-prep.less_2e_mappings>/less:/css</org-netbeans-modules-css-prep.less_2e_mappings>
<org-netbeans-modules-css-prep.less_2e_enabled>false</org-netbeans-modules-css-prep.less_2e_enabled>
<org-netbeans-modules-css-prep.sass_2e_enabled>false</org-netbeans-modules-css-prep.sass_2e_enabled>
<org-netbeans-modules-css-prep.sass_2e_compiler_2e_options/>
<org-netbeans-modules-css-prep.less_2e_compiler_2e_options/>
<org-netbeans-modules-css-prep.sass_2e_mappings>/scss:/css</org-netbeans-modules-css-prep.sass_2e_mappings>
<org-netbeans-modules-web-clientproject-api.js_2e_libs_2e_folder>js/libs</org-netbeans-modules-web-clientproject-api.js_2e_libs_2e_folder>
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>pfv5ee8</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>
</properties>
</project-shared-configuration>

50
nbactions.xml Normal file
View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<actions>
<action>
<actionName>run</actionName>
<packagings>
<packaging>war</packaging>
<packaging>ear</packaging>
<packaging>ejb</packaging>
</packagings>
<goals>
<goal>package</goal>
</goals>
<properties>
<netbeans.deploy>true</netbeans.deploy>
<netbeans.deploy.clientUrlPart>werp-services</netbeans.deploy.clientUrlPart>
</properties>
</action>
<action>
<actionName>debug</actionName>
<packagings>
<packaging>war</packaging>
<packaging>ear</packaging>
<packaging>ejb</packaging>
</packagings>
<goals>
<goal>package</goal>
</goals>
<properties>
<netbeans.deploy.debugmode>true</netbeans.deploy.debugmode>
<netbeans.deploy>true</netbeans.deploy>
<netbeans.deploy.clientUrlPart>werp-services</netbeans.deploy.clientUrlPart>
</properties>
</action>
<action>
<actionName>profile</actionName>
<packagings>
<packaging>ejb</packaging>
<packaging>ear</packaging>
<packaging>war</packaging>
</packagings>
<goals>
<goal>package</goal>
</goals>
<properties>
<netbeans.deploy>true</netbeans.deploy>
<netbeans.deploy.profilemode>true</netbeans.deploy.profilemode>
<netbeans.deploy.clientUrlPart>werp-services</netbeans.deploy.clientUrlPart>
</properties>
</action>
</actions>

116
pom.xml Executable file
View File

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.qsoft</groupId>
<artifactId>werp-services</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>werp-services</name>
<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.30</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.0.Final</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.qsoft.util</groupId>
<artifactId>qsoft-util</artifactId>
<version>1.1.1-SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.qsoft</groupId>
<artifactId>werp-domain</artifactId>
<version>1.0-SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>11</source>
<target>11</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>javax</groupId>
<artifactId>javaee-endorsed-api</artifactId>
<version>7.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,68 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.qsoft.wmp.filter;
import java.io.IOException;
import java.util.List;
import javax.annotation.Priority;
import javax.ws.rs.Priorities;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.ext.Provider;
/**
* See http://www.w3.org/TR/cors/
*
* @author airhacks.com
*/
@Provider
@Priority(Priorities.HEADER_DECORATOR)
public class CorsFilter implements ContainerResponseFilter {
public static final String ALLOWED_METHODS = "GET, POST, PUT, DELETE, OPTIONS, HEAD";
public final static int MAX_AGE = 42 * 60 * 60;
public final static String DEFAULT_ALLOWED_HEADERS = "origin,accept,content-type";
public final static String DEFAULT_EXPOSED_HEADERS = "location,info";
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
final MultivaluedMap<String, Object> headers = responseContext.getHeaders();
headers.add("Access-Control-Allow-Origin", "*");
headers.add("Access-Control-Allow-Headers", getRequestedAllowedHeaders(requestContext));
headers.add("Access-Control-Expose-Headers", getRequestedExposedHeaders(requestContext));
headers.add("Access-Control-Allow-Credentials", "true");
headers.add("Access-Control-Allow-Methods", ALLOWED_METHODS);
headers.add("Access-Control-Max-Age", MAX_AGE);
headers.add("x-responded-by", "cors-response-filter");
}
String getRequestedAllowedHeaders(ContainerRequestContext responseContext) {
List<String> headers = responseContext.getHeaders().get("Access-Control-Allow-Headers");
return createHeaderList(headers, DEFAULT_ALLOWED_HEADERS);
}
String getRequestedExposedHeaders(ContainerRequestContext responseContext) {
List<String> headers = responseContext.getHeaders().get("Access-Control-Expose-Headers");
return createHeaderList(headers, DEFAULT_EXPOSED_HEADERS);
}
String createHeaderList(List<String> headers, String defaultHeaders) {
if (headers == null || headers.isEmpty()) {
return defaultHeaders;
}
StringBuilder retVal = new StringBuilder();
for (int i = 0; i < headers.size(); i++) {
String header = (String) headers.get(i);
retVal.append(header);
retVal.append(',');
}
retVal.append(defaultHeaders);
return retVal.toString();
}
}

View File

@ -0,0 +1,130 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.qsoft.wmp.services.rest;
import com.qsoft.util.constantes.CodigoRespuesta;
import com.qsoft.util.constantes.ErrorTipo;
import com.qsoft.util.ms.pojo.HeaderMS;
import com.qsoft.erp.constantes.DominioConstantes;
import com.qsoft.erp.constantes.EntidadEnum;
import com.qsoft.erp.dominio.AccionGenerica;
import com.qsoft.erp.dominio.exception.DominioExcepcion;
import com.qsoft.wmp.services.util.ServiceUtil;
import com.qsoft.wmp.services.xsd.EntradaAccion;
import com.qsoft.wmp.services.xsd.SalidaAccion;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.ws.rs.Consumes;
import javax.ws.rs.Produces;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
/**
* REST Web Service
*
* @author james
*/
@Path("accion")
public class AccionResource {
@Inject
private AccionGenerica accion;
@PostConstruct
public void postConstructor() {
System.out.println("POST CONTRUCTOR " + accion);
}
/**
*
* @return an instance of java.lang.String
*/
@GET
@Produces(MediaType.APPLICATION_JSON)
public SalidaAccion getJson() {
SalidaAccion salida = ServiceUtil.crearSalidaAccionError(CodigoRespuesta.CODIGO_ERROR_GENERICO,
"Acción no soportada por favor ejecute la consulta via POST");
return salida;
}
/**
* PUT method for updating or creating an instance of ConsultaResource
*
* @param entrada
* @return
*/
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public SalidaAccion postJson(EntradaAccion entrada) {
SalidaAccion salida = null;
if (entrada == null) {
salida = ServiceUtil.crearSalidaAccionError(ErrorTipo.WARNING, CodigoRespuesta.CODIGO_IN_NULO, "La entrada no puede ser nula");
} else {
EntidadEnum entidad = Enum.valueOf(EntidadEnum.class, entrada.getBodyIn().getEntidad());
if (entidad == null) {
salida = ServiceUtil.crearSalidaAccionError(ErrorTipo.ERROR, CodigoRespuesta.CODIGO_VALOR_NULO, "No se puede identificar la entidad a la cual se desea acceder");
} else {
try {
salida = ejecutarAccion(entrada, entidad);
} catch (DominioExcepcion ex) {
salida = ServiceUtil.crearSalidaAccionError(ex.getTipo(), ex.getCodigo(), ex.getMensaje());
} catch (Exception ex) {
System.out.println("============ ERROR NO CONTROLADO ==============");
ex.printStackTrace(System.err);
String msg = getCauses(ex, new StringBuilder());
if (msg.contains("Duplicate entry")) {
salida = ServiceUtil.crearSalidaAccionError(ErrorTipo.ERROR, CodigoRespuesta.CODIGO_ERROR_GUARDA_BDD,
"Error el registro " + entrada.getBodyIn().getEntidad() + " ya existe en la Base de datos");
} else {
salida = ServiceUtil.crearSalidaAccionError(ErrorTipo.ERROR, CodigoRespuesta.CODIGO_ERROR_GENERICO, "ERROR NO CONTROLADO: " + msg);
}
}
}
}
return salida;
}
/**
* @param e
* @param build
* @return
*/
private String getCauses(Throwable e, StringBuilder build) {
build.append("\n").append(e.toString());
for (Throwable t : e.getSuppressed()) {
System.out.println("SUPRESS =====> " + t);
build.append("\n").append(t.toString());
getCauses(t, build);
}
System.out.println("CAUSE =====> " + e);
if (e.getCause() != null) {
getCauses(e.getCause(), build);
}
return build.toString();
}
/**
* Ejecuta la accion
*
* @param entrada
* @param entidad
* @return
* @throws DominioExcepcion
*/
public SalidaAccion ejecutarAccion(EntradaAccion entrada, EntidadEnum entidad) throws DominioExcepcion {
List<Object> resultado = accion.accionGenerica(entrada.getHeaderIn(), entidad, entrada.getBodyIn().getEntidades(), entrada.getBodyIn().getTipoAccion());
String msg = "A continuacion se muestra el resultado de la accion.";
HeaderMS header = entrada.getHeaderIn();
header.setFechaHora(DominioConstantes.getDateTime());
SalidaAccion salida = ServiceUtil.crearSalidaAccionOk(header, msg, resultado);
return salida;
}
}

View File

@ -0,0 +1,39 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.qsoft.wmp.services.rest;
import java.util.Set;
import javax.ws.rs.core.Application;
import org.glassfish.jersey.media.multipart.MultiPartFeature;
/**
*
* @author james
*/
@javax.ws.rs.ApplicationPath("servicios")
public class ApplicationConfig extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> resources = new java.util.HashSet<>();
resources.add(MultiPartFeature.class);
addRestResourceClasses(resources);
return resources;
}
/**
* Do not modify addRestResourceClasses() method. It is automatically populated with all resources defined in the project. If required, comment
* out calling this method in getClasses().
*/
private void addRestResourceClasses(Set<Class<?>> resources) {
resources.add(com.qsoft.wmp.filter.CorsFilter.class);
resources.add(com.qsoft.wmp.services.rest.AccionResource.class);
resources.add(com.qsoft.wmp.services.rest.ConsultaResource.class);
resources.add(com.qsoft.wmp.services.rest.MultipartResource.class);
}
}

View File

@ -0,0 +1,88 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.qsoft.wmp.services.rest;
import com.qsoft.util.constantes.CodigoRespuesta;
import com.qsoft.util.constantes.ErrorTipo;
import com.qsoft.util.ms.pojo.HeaderMS;
import com.qsoft.erp.constantes.DominioConstantes;
import com.qsoft.erp.dominio.ConsultaGenerica;
import com.qsoft.erp.dominio.exception.DominioExcepcion;
import com.qsoft.wmp.services.util.ServiceUtil;
import com.qsoft.wmp.services.xsd.EntradaConsulta;
import com.qsoft.wmp.services.xsd.SalidaConsulta;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.ws.rs.Consumes;
import javax.ws.rs.Produces;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
/**
* REST Web Service
*
* @author james
*/
@Path("consulta")
public class ConsultaResource {
@Inject
private ConsultaGenerica consulta;
@PostConstruct
public void postConstructor() {
System.out.println("======> POST CONTRUCTOR " + consulta);
}
/**
*
* @return an instance of java.lang.String
*/
@GET
@Produces(MediaType.APPLICATION_JSON)
public SalidaConsulta getJson() {
SalidaConsulta salida = ServiceUtil.crearSalidaConsultaError(CodigoRespuesta.CODIGO_ERROR_GENERICO,
"Acción no soportada por favor ejecute la consulta via POST");
return salida;
}
/**
* PUT method for updating or creating an instance of ConsultaResource
*
* @param entrada
* @return
*/
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public SalidaConsulta postJson(EntradaConsulta entrada) {
SalidaConsulta salida = null;
if (entrada == null) {
salida = ServiceUtil.crearSalidaConsultaError(ErrorTipo.WARNING, CodigoRespuesta.CODIGO_IN_NULO, "La entrada no puede ser nula");
} else {
try {
List resultado = null;
resultado = consulta.consultaGenerica(entrada.getHeaderIn(), entrada.getBodyIn().getEntidad(),
entrada.getBodyIn().getParametros(), entrada.getBodyIn().getMaximoRegistros(), entrada.getBodyIn().getTipoConsulta());
HeaderMS header = entrada.getHeaderIn();
header.setFechaHora(DominioConstantes.getDateTime());
salida = ServiceUtil.crearSalidaConsultaOk(header, entrada.getBodyIn().getEntidad(), resultado);
} catch (DominioExcepcion ex) {
salida = ServiceUtil.crearSalidaConsultaError(ex.getTipo(), ex.getCodigo(), ex.getMensaje());
}catch (Exception ex) {
salida = ServiceUtil.crearSalidaConsultaError(CodigoRespuesta.CODIGO_ERROR_GENERICO, ex.toString());
ex.printStackTrace();
}
}
return salida;
}
}

View File

@ -0,0 +1,184 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.qsoft.wmp.services.rest;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.qsoft.util.constantes.CodigoRespuesta;
import com.qsoft.util.constantes.ErrorTipo;
import com.qsoft.util.ms.pojo.HeaderMS;
import com.qsoft.erp.constantes.DominioConstantes;
import com.qsoft.erp.constantes.EntidadEnum;
import com.qsoft.erp.dominio.MultipartService;
import com.qsoft.erp.dominio.exception.DominioExcepcion;
import com.qsoft.erp.dto.DocumentoDTO;
import com.qsoft.erp.dto.LiquidacionDTO;
import com.qsoft.wmp.services.util.ServiceUtil;
import com.qsoft.wmp.services.xsd.EntradaLiquidacion;
import com.qsoft.wmp.services.xsd.SalidaConsulta;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.servlet.annotation.MultipartConfig;
import javax.ws.rs.Consumes;
import javax.ws.rs.Produces;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import org.glassfish.jersey.media.multipart.FormDataBodyPart;
import org.glassfish.jersey.media.multipart.FormDataMultiPart;
/**
* REST Web Service
*
* @author james
*/
@Path("multipart")
@MultipartConfig(
maxFileSize = 838860800l, // 100Mb
fileSizeThreshold = 52428800, //512
maxRequestSize = 1024000 // 10Kb
)
public class MultipartResource {
@Inject
private MultipartService multipart;
@PostConstruct
public void postConstructor() {
}
/**
*
* @return an instance of java.lang.String
*/
@GET
@Produces(MediaType.APPLICATION_JSON)
public SalidaConsulta getJson() {
SalidaConsulta salida = ServiceUtil.crearSalidaConsultaError(CodigoRespuesta.CODIGO_ERROR_GENERICO,
"Acción no soportada por favor ejecute la consulta via POST");
return salida;
}
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public SalidaConsulta postFile(FormDataMultiPart input) {
SalidaConsulta salida = null;
EntradaLiquidacion entrada = null;
boolean estado = false;
if (input != null) {
List<Object> data = new ArrayList<>();
Map<String, List<FormDataBodyPart>> parts = input.getFields();
int i = 0;
try {
System.out.println("===========> RECIBE: " + parts);
for (List<FormDataBodyPart> p : parts.values()) {
FormDataBodyPart bp = p.get(0);
if (i == 0) {
entrada = getEntrada(bp);
if(entrada != null && entrada.getBodyIn().getParametros() != null &&
entrada.getBodyIn().getParametros().get("Liquidacion") != null &&
entrada.getBodyIn().getParametros().get("Liquidacion").getPolCodigo() != null &&
entrada.getBodyIn().getParametros().get("Liquidacion").getPolCodigo() == -1){
throw new DominioExcepcion(ErrorTipo.ERROR, CodigoRespuesta.CODIGO_VALOR_NULO,
"No existe una poliza activa no puede ejecutar este proceso");
}
} else {
InputStream in = bp.getValueAs(InputStream.class);
try {
if (in != null && entrada != null && entrada.getBodyIn().getParametros() != null &&
entrada.getBodyIn().getParametros().get("Liquidacion") != null) {
DocumentoDTO doc = (DocumentoDTO) entrada.getBodyIn().getParametros().get("Liquidacion").getDocumentos().get(i - 1);
doc.setData(in.readAllBytes());
}
} catch (IOException ex) {
System.out.println("ERROR CARGANDO ARCHIVO " + ex);
}
}
i++;
}
if (!validarEntrada(entrada)) {
throw new DominioExcepcion(ErrorTipo.ERROR, CodigoRespuesta.CODIGO_VALOR_NULO,
"Uno o mas documentos enviados son nulos por favor verifique la informacion");
}
EntidadEnum entidad = Enum.valueOf(EntidadEnum.class, entrada.getBodyIn().getEntidad());
data = this.multipart.multipartGenerico(entrada.getHeaderIn(), entidad,
entrada.getBodyIn().getParametros(), entrada.getBodyIn().getTipoConsulta());
HeaderMS header = entrada.getHeaderIn();
header.setFechaHora(DominioConstantes.getDateTime());
salida = ServiceUtil.crearSalidaConsultaOk(header, entrada.getBodyIn().getEntidad(), data);
} catch (DominioExcepcion ex) {
salida = ServiceUtil.crearSalidaConsultaError(ex.getCodigo(), ex.getMensaje());
ex.printStackTrace();
} catch (Exception ex) {
salida = ServiceUtil.crearSalidaConsultaError(CodigoRespuesta.CODIGO_ERROR_GENERICO, ex.toString());
ex.printStackTrace();
}
} else {
ServiceUtil.crearSalidaConsultaError(CodigoRespuesta.CODIGO_VALOR_NULO, "ERROR. La entrada no puede ser nula");
}
return salida;
}
/**
*
* @param entrada
* @return
*/
private boolean validarEntrada(EntradaLiquidacion entrada) {
boolean estado = true;
if (entrada == null || entrada.getBodyIn() == null || entrada.getBodyIn().getParametros() == null) {
return false;
}
if (entrada.getBodyIn() != null && entrada.getBodyIn().getParametros() != null) {
for (LiquidacionDTO liq : entrada.getBodyIn().getParametros().values()) {
if (liq.getDocumentos() != null) {
for (DocumentoDTO doc : liq.getDocumentos()) {
if (doc == null || doc.getData() == null) {
estado = false;
break;
}
}
}
}
}
return estado;
}
/**
* Crea la entrada a partir de la consulta del servicio
*
* @param bp
* @return
*/
public EntradaLiquidacion getEntrada(FormDataBodyPart bp) throws DominioExcepcion {
EntradaLiquidacion entrada = null;
InputStream in = bp.getValueAs(InputStream.class);
if (in != null) {
try {
String json = new String(in.readAllBytes());
ObjectMapper maper = new ObjectMapper();
maper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
entrada = maper.readValue(json, EntradaLiquidacion.class);
} catch (IOException ex) {
throw new DominioExcepcion(ErrorTipo.ERROR, CodigoRespuesta.CODIGO_VALOR_NULO, "No es posible convertir el JSON " + ex.toString());
}
}
System.out.println("CREO ENTRADA... " + entrada);
return entrada;
}
}

View File

@ -0,0 +1,124 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.qsoft.wmp.services.util;
import com.qsoft.util.constantes.CodigoRespuesta;
import com.qsoft.util.constantes.ErrorTipo;
import com.qsoft.util.ms.pojo.HeaderMS;
import com.qsoft.wmp.services.xsd.SalidaAccion;
import com.qsoft.wmp.services.xsd.SalidaConsulta;
import java.util.List;
import java.util.Map;
/**
*
* @author james
*/
public class ServiceUtil {
/**
* Crear salida
*
* @param codigo
* @param mensaje
* @return
*/
public static SalidaConsulta crearSalidaConsultaError(CodigoRespuesta codigo, String mensaje) {
SalidaConsulta salida = new SalidaConsulta();
salida.getError().setCodigo(codigo.getCodigo());
salida.getError().setMensaje(mensaje);
salida.getError().setTipo(ErrorTipo.ERROR.name());
return salida;
}
/**
* Crear salida
*
* @param codigo
* @param mensaje
* @return
*/
public static SalidaAccion crearSalidaAccionError(CodigoRespuesta codigo, String mensaje) {
SalidaAccion salida = new SalidaAccion();
salida.getError().setCodigo(codigo.getCodigo());
salida.getError().setMensaje(mensaje);
salida.getError().setTipo(ErrorTipo.ERROR.name());
return salida;
}
/**
* Crear salida
*
* @param error
* @param codigo
* @param mensaje
* @return
*/
public static SalidaConsulta crearSalidaConsultaError(ErrorTipo error, CodigoRespuesta codigo, String mensaje) {
SalidaConsulta salida = new SalidaConsulta();
salida.getError().setCodigo(codigo.getCodigo());
salida.getError().setMensaje(mensaje);
salida.getError().setTipo(error.name());
return salida;
}
/**
* Crear salida
*
* @param error
* @param codigo
* @param mensaje
* @return
*/
public static SalidaAccion crearSalidaAccionError(ErrorTipo error, CodigoRespuesta codigo, String mensaje) {
SalidaAccion salida = new SalidaAccion();
salida.getError().setCodigo(codigo.getCodigo());
salida.getError().setMensaje(mensaje);
salida.getError().setTipo(error.name());
return salida;
}
/**
* Crear salida ok
*
* @param header
* @param tipoSalida
* @param data
* @return
*/
public static SalidaConsulta crearSalidaConsultaOk(HeaderMS header, String tipoSalida, List data) {
SalidaConsulta salida = new SalidaConsulta();
salida.setHeaderOut(header);
salida.getError().setCodigo(CodigoRespuesta.CODIGO_OK.getCodigo());
salida.getError().setMensaje(CodigoRespuesta.CODIGO_OK.name());
salida.getError().setTipo(ErrorTipo.INFO.name());
salida.getBodyOut().setEntidad(tipoSalida);
salida.getBodyOut().setData(data);
return salida;
}
/**
* Crear salida ok
*
* @param header
* @param estado
* @param data
* @return
*/
public static SalidaAccion crearSalidaAccionOk(HeaderMS header, String estado, List<Object> data) {
SalidaAccion salida = new SalidaAccion();
salida.setHeaderOut(header);
salida.getError().setCodigo(CodigoRespuesta.CODIGO_OK.getCodigo());
salida.getError().setMensaje(CodigoRespuesta.CODIGO_OK.name());
salida.getError().setTipo(ErrorTipo.INFO.name());
salida.getBodyOut().setEstado(estado);
salida.getBodyOut().setResultados(data);
return salida;
}
}

View File

@ -0,0 +1,46 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.qsoft.wmp.services.xsd;
import java.util.List;
import java.util.Map;
/**
*
* @author james
* @param <T>
*/
public class BodyEntradaAccion {
private Integer tipoAccion;
private String entidad;
private List<Map<String, Object>> entidades;
public Integer getTipoAccion() {
return tipoAccion;
}
public void setTipoAccion(Integer tipoAccion) {
this.tipoAccion = tipoAccion;
}
public String getEntidad() {
return entidad;
}
public void setEntidad(String entidad) {
this.entidad = entidad;
}
public List<Map<String, Object>> getEntidades() {
return entidades;
}
public void setEntidades(List<Map<String, Object>> entidades) {
this.entidades = entidades;
}
}

View File

@ -0,0 +1,62 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.qsoft.wmp.services.xsd;
import java.util.Map;
/**
*
* @author james
*/
public class BodyEntradaConsulta {
private Integer tipoConsulta;
private Integer maximoRegistros;
private Integer registroInicio;
private String entidad;
private Map<String, Object> parametros;
public Integer getTipoConsulta() {
return tipoConsulta;
}
public void setTipoConsulta(Integer tipoConsulta) {
this.tipoConsulta = tipoConsulta;
}
public Map<String, Object> getParametros() {
return parametros;
}
public void setParametros(Map<String, Object> parametros) {
this.parametros = parametros;
}
public String getEntidad() {
return entidad;
}
public void setEntidad(String entidad) {
this.entidad = entidad;
}
public Integer getMaximoRegistros() {
return maximoRegistros;
}
public void setMaximoRegistros(Integer maximoRegistros) {
this.maximoRegistros = maximoRegistros;
}
public Integer getRegistroInicio() {
return registroInicio;
}
public void setRegistroInicio(Integer registroInicio) {
this.registroInicio = registroInicio;
}
}

View File

@ -0,0 +1,54 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.qsoft.wmp.services.xsd;
import com.qsoft.erp.dto.LiquidacionDTO;
import java.util.Map;
/**
*
* @author james
*/
public class BodyEntradaLiquidacion {
private Integer tipoConsulta;
private Integer maximoRegistros;
private String entidad;
private Map<String, LiquidacionDTO> parametros;
public Integer getTipoConsulta() {
return tipoConsulta;
}
public void setTipoConsulta(Integer tipoConsulta) {
this.tipoConsulta = tipoConsulta;
}
public Map<String, LiquidacionDTO> getParametros() {
return parametros;
}
public void setParametros(Map<String, LiquidacionDTO> parametros) {
this.parametros = parametros;
}
public String getEntidad() {
return entidad;
}
public void setEntidad(String entidad) {
this.entidad = entidad;
}
public Integer getMaximoRegistros() {
return maximoRegistros;
}
public void setMaximoRegistros(Integer maximoRegistros) {
this.maximoRegistros = maximoRegistros;
}
}

View File

@ -0,0 +1,36 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.qsoft.wmp.services.xsd;
import java.util.List;
/**
*
* @author james
*/
public class BodySalidaAccion {
private String estado;
private List<Object> resultados;
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public List<Object> getResultados() {
return resultados;
}
public void setResultados(List<Object> resultados) {
this.resultados = resultados;
}
}

View File

@ -0,0 +1,39 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.qsoft.wmp.services.xsd;
import java.io.Serializable;
import java.util.List;
/**
*
* @author james
* @param <T>
*/
public class BodySalidaConsulta<T extends Serializable> {
private String entidad;
private List<T> data;
public String getEntidad() {
return entidad;
}
public void setEntidad(String entidad) {
this.entidad = entidad;
}
public List<T> getData() {
return data;
}
public void setData(List<T> data) {
this.data = data;
}
}

View File

@ -0,0 +1,79 @@
/*
* EntradaConsulta.java
* 15 de feb. de 2017
* Copyright 2017 TCS.
* Todos los derechos reservados.
*/
package com.qsoft.wmp.services.xsd;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.qsoft.util.ms.pojo.HeaderMS;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSeeAlso;
/**
* <b> Entrada del servicio web. </b>
*
* @author jaime Ruales
* @version $1.0$
*/
@XmlSeeAlso({HeaderMS.class})
@XmlAccessorType(XmlAccessType.FIELD)
public class EntradaAccion implements Serializable {
private static final long serialVersionUID = 8142263336233087792L;
@XmlElement(name = "headerIn")
@JsonAlias("headerIn")
private HeaderMS headerIn;
@XmlElement(name = "bodyIn")
@JsonAlias("bodyIn")
private BodyEntradaAccion bodyIn;
public EntradaAccion() {
this.headerIn = new HeaderMS();
this.bodyIn = new BodyEntradaAccion();
}
/**
* Accesor del campo headerIn
*
* @return
*/
public HeaderMS getHeaderIn() {
return headerIn;
}
/**
* Modificador del campo headerIn
*
* @param headerIn
*/
public void setHeaderIn(final HeaderMS headerIn) {
this.headerIn = headerIn;
}
/**
* Accesor del campo bodyIn
*
* @return
*/
public BodyEntradaAccion getBodyIn() {
return bodyIn;
}
/**
* Modificador del campo bodyIn
*
* @param bodyIn
*/
public void setBodyIn(final BodyEntradaAccion bodyIn) {
this.bodyIn = bodyIn;
}
}

View File

@ -0,0 +1,80 @@
/*
* EntradaConsulta.java
* 15 de feb. de 2017
* Copyright 2017 TCS.
* Todos los derechos reservados.
*/
package com.qsoft.wmp.services.xsd;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.qsoft.util.ms.pojo.HeaderMS;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSeeAlso;
/**
* <b> Entrada del servicio web. </b>
*
* @author jaime Ruales
* @version $1.0$
*/
@XmlSeeAlso({HeaderMS.class})
@XmlAccessorType(XmlAccessType.FIELD)
public class EntradaConsulta implements Serializable {
private static final long serialVersionUID = 8142263336233087792L;
@XmlElement(name = "headerIn")
@JsonAlias("headerIn")
private HeaderMS headerIn;
@XmlElement(name = "bodyIn")
@JsonAlias("bodyIn")
private BodyEntradaConsulta bodyIn;
public EntradaConsulta() {
this.headerIn = new HeaderMS();
this.bodyIn = new BodyEntradaConsulta();
}
/**
* Accesor del campo headerIn
*
* @return
*/
public HeaderMS getHeaderIn() {
return headerIn;
}
/**
* Modificador del campo headerIn
*
* @param headerIn
*/
public void setHeaderIn(final HeaderMS headerIn) {
this.headerIn = headerIn;
}
/**
* Accesor del campo bodyIn
*
* @return
*/
public BodyEntradaConsulta getBodyIn() {
return bodyIn;
}
/**
* Modificador del campo bodyIn
*
* @param bodyIn
*/
public void setBodyIn(final BodyEntradaConsulta bodyIn) {
this.bodyIn = bodyIn;
}
}

View File

@ -0,0 +1,80 @@
/*
* EntradaConsulta.java
* 15 de feb. de 2017
* Copyright 2017 TCS.
* Todos los derechos reservados.
*/
package com.qsoft.wmp.services.xsd;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.qsoft.util.ms.pojo.HeaderMS;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSeeAlso;
/**
* <b> Entrada del servicio web. </b>
*
* @author jaime Ruales
* @version $1.0$
*/
@XmlSeeAlso({HeaderMS.class})
@XmlAccessorType(XmlAccessType.FIELD)
public class EntradaLiquidacion implements Serializable {
private static final long serialVersionUID = 8142263336233087792L;
@XmlElement(name = "headerIn")
@JsonAlias("headerIn")
private HeaderMS headerIn;
@XmlElement(name = "bodyIn")
@JsonAlias("bodyIn")
private BodyEntradaLiquidacion bodyIn;
public EntradaLiquidacion() {
this.headerIn = new HeaderMS();
this.bodyIn = new BodyEntradaLiquidacion();
}
/**
* Accesor del campo headerIn
*
* @return
*/
public HeaderMS getHeaderIn() {
return headerIn;
}
/**
* Modificador del campo headerIn
*
* @param headerIn
*/
public void setHeaderIn(final HeaderMS headerIn) {
this.headerIn = headerIn;
}
/**
* Accesor del campo bodyIn
*
* @return
*/
public BodyEntradaLiquidacion getBodyIn() {
return bodyIn;
}
/**
* Modificador del campo bodyIn
*
* @param bodyIn
*/
public void setBodyIn(final BodyEntradaLiquidacion bodyIn) {
this.bodyIn = bodyIn;
}
}

View File

@ -0,0 +1,97 @@
package com.qsoft.wmp.services.xsd;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.qsoft.util.ms.pojo.ErrorMS;
import com.qsoft.util.ms.pojo.HeaderMS;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSeeAlso;
/**
* <b> Salida del Servicio Web. </b>
*
* @author Jaime Ruales.
* @version $1.0$
*/
@XmlSeeAlso({HeaderMS.class, ErrorMS.class})
@XmlAccessorType(XmlAccessType.FIELD)
public class SalidaAccion implements Serializable {
private static final long serialVersionUID = 5403227918589158188L;
@XmlElement(name = "headerOut")
@JsonAlias("headerOut")
protected HeaderMS headerOut;
@XmlElement(name = "bodyOut")
@JsonAlias("bodyOut")
protected BodySalidaAccion bodyOut;
@XmlElement(name = "error")
protected ErrorMS error;
public SalidaAccion() {
this.error = new ErrorMS();
this.headerOut = new HeaderMS();
this.bodyOut = new BodySalidaAccion();
}
/**
* Accesor del campo headerOut
*
* @return
*/
public HeaderMS getHeaderOut() {
return headerOut;
}
/**
* Modificador del campo headerOut
*
* @param headerOut
*/
public void setHeaderOut(final HeaderMS headerOut) {
this.headerOut = headerOut;
}
/**
* Accesor del campo error
*
* @return
*/
public ErrorMS getError() {
return error;
}
/**
* Accesor del campo bodyOut
*
* @return
*/
public BodySalidaAccion getBodyOut() {
return bodyOut;
}
/**
* Modificador del campo bodyOut
*
* @param bodyOut
*/
public void setBodyOut(final BodySalidaAccion bodyOut) {
this.bodyOut = bodyOut;
}
/**
* Modificador del campo error
*
* @param error
*/
public void setError(final ErrorMS error) {
this.error = error;
}
}

View File

@ -0,0 +1,97 @@
package com.qsoft.wmp.services.xsd;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.qsoft.util.ms.pojo.ErrorMS;
import com.qsoft.util.ms.pojo.HeaderMS;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSeeAlso;
/**
* <b> Salida del Servicio Web. </b>
*
* @author Jaime Ruales.
* @version $1.0$
*/
@XmlSeeAlso({HeaderMS.class, ErrorMS.class})
@XmlAccessorType(XmlAccessType.FIELD)
public class SalidaConsulta implements Serializable {
private static final long serialVersionUID = 5403227918589158188L;
@XmlElement(name = "headerOut")
@JsonAlias("headerOut")
protected HeaderMS headerOut;
@XmlElement(name = "bodyOut")
@JsonAlias("bodyOut")
protected BodySalidaConsulta bodyOut;
@XmlElement(name = "error")
protected ErrorMS error;
public SalidaConsulta() {
this.error = new ErrorMS();
this.headerOut = new HeaderMS();
this.bodyOut = new BodySalidaConsulta();
}
/**
* Accesor del campo headerOut
*
* @return
*/
public HeaderMS getHeaderOut() {
return headerOut;
}
/**
* Modificador del campo headerOut
*
* @param headerOut
*/
public void setHeaderOut(final HeaderMS headerOut) {
this.headerOut = headerOut;
}
/**
* Accesor del campo error
*
* @return
*/
public ErrorMS getError() {
return error;
}
/**
* Accesor del campo bodyOut
*
* @return
*/
public BodySalidaConsulta getBodyOut() {
return bodyOut;
}
/**
* Modificador del campo bodyOut
*
* @param bodyOut
*/
public void setBodyOut(final BodySalidaConsulta bodyOut) {
this.bodyOut = bodyOut;
}
/**
* Modificador del campo error
*
* @param error
*/
public void setError(final ErrorMS error) {
this.error = error;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/erp-services"/>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="org.jboss.resteasy.resteasy-jackson2-provider" services="import"/>
</dependencies>
</deployment>
</jboss-deployment-structure>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web version="8.0" xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/schema/jbossas/jboss-web_8_0.xsd">
<context-root>/erp-services</context-root>
</jboss-web>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
</web-app>

10
src/main/webapp/index.html Executable file
View File

@ -0,0 +1,10 @@
<!DOCTYPE html>
<html>
<head>
<title>Start Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>

View File

@ -0,0 +1,45 @@
{
"headerIn": {
"dispositivo": "WeLaptop",
"canal": null,
"medio": null,
"aplicacion": "WeMedicalProV1.0",
"tipoTransaccion": "0101102",
"usuario": "james",
"uuid": "a1290bc2516a607bb39a913251fb94cc5dcb7c4f9f6e0038a685758e014a45f1",
"fechaHora": null,
"idioma": null,
"empresa": null,
"geolocalizacion": null
},
"bodyIn": {
"tipoAccion": 2,
"entidad": "DetalleLiquidacion",
"entidades": [
{
"delCodigo": 104,
"delValorRegistrado": 60,
"delValorObjetado": 124.16,
"detalle": [
{
"talCodigo": 1,
"talValorObjetado": 35.25,
"talEstado": 1,
"tarCodigo": 6172
}, {
"talCodigo": 2,
"talValorObjetado": 38.22,
"talEstado": 1,
"tarCodigo": 5
},
{
"talCodigo": 3,
"talValorObjetado": 50.69,
"talEstado": 1,
"tarCodigo": 6663
}
]
}
]
}
}

View File

@ -0,0 +1,62 @@
{
"headerIn": {
"dispositivo": "james-laptop001",
"canal": null,
"medio": null,
"aplicacion": "WeERPV1.0",
"tipoTransaccion": "0101151",
"usuario": "james",
"uuid": "2e25aed60f2d4c63e33864a638b906f2df987a9b37ce3f8dafde7b565b2a6c41",
"fechaHora": "20/05/2020 23:55:36",
"idioma": "ES",
"empresa": "Enigma-Lovers",
"geolocalizacion": null
},
"bodyIn": {
"tipoAccion": 1,
"entidad": "FacturaCompra",
"entidades": [
{
"facEstablecimiento": "001",
"facPtoEmision": "001",
"facSecuencial": "00000001",
"facClaveAcceso": null,
"facAutorizacion": null,
"facTotalDescuentos": null,
"facTotalImpuestos": null,
"facTotalOtros": null,
"facImporte": null,
"facTotal": null,
"facAdelanto": null,
"facPendiente": null,
"facReferencia": null,
"facPropina": null,
"facFechaRegistro": null,
"facFechaAutorizacion": null,
"facDescripcion": null,
"facObservacion": null,
"facDetalle": null,
"facDinamico": "CUANDO SE ADQUIERE SERVICIOS O CONSUMIBLES QUE NO GENERAN ENTRADA SE AGREGA AQUI",
"ejeCodigo": null,
"empCodigo": null,
"proCodigo": 1,
"detEstado": null,
"detTipo": null,
"usuCodigo": null,
"detalle": [
{
"denCantidad": 2.0,
"denPrecioCompra": 89.3,
"denFecProduccion": 1590073789081,
"denFecCaducidad": 1590073789081,
"artCodigo": 1,
"bodCodigo": 1,
"detUnidad": null,
"entCodigo": null
}
]
}
]
}
}

View File

@ -0,0 +1,105 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.qsoft.test;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.qsoft.erp.constantes.DominioConstantes;
import com.qsoft.erp.constantes.EntidadEnum;
import com.qsoft.erp.dominio.AccionGenerica;
import com.qsoft.erp.dto.DocumentoDTO;
import com.qsoft.erp.dto.EstadoLiquidacionDTO;
import com.qsoft.erp.dto.LiquidacionDTO;
import com.qsoft.erp.dto.PolizaDTO;
import com.qsoft.wmp.services.rest.AccionResource;
import com.qsoft.wmp.services.rest.ConsultaResource;
import com.qsoft.wmp.services.xsd.EntradaAccion;
import com.qsoft.wmp.services.xsd.EntradaConsulta;
import com.qsoft.wmp.services.xsd.SalidaConsulta;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* @author james
*/
public class Tester {
public static void main(String[] args) throws IOException {
System.out.println("TEST " + DominioConstantes.getDateTime());
testAccionService();
}
public static void testConsultaService() throws IOException {
ObjectMapper maper = new ObjectMapper();
EntradaConsulta entrada = new EntradaConsulta();
entrada.getBodyIn().setTipoConsulta(1);
entrada.getBodyIn().setEntidad(EntidadEnum.Liquidacion.name());
LiquidacionDTO ld = new LiquidacionDTO();
List<DocumentoDTO> documentos = new ArrayList<>();
List<EstadoLiquidacionDTO> estados = new ArrayList<>();
documentos.add(new DocumentoDTO());
estados.add(new EstadoLiquidacionDTO());
ld.setDocumentos(documentos);
ld.setEstados(estados);
Map<String, Object> parametros = new HashMap<>();
parametros.put(EntidadEnum.Liquidacion.name(), ld);
entrada.getBodyIn().setParametros(parametros);
String s = maper.writeValueAsString(entrada);
System.out.println("JSON=> " + s);
ConsultaResource cr = new ConsultaResource();
System.out.println("POSTING....");
SalidaConsulta salida = cr.postJson(entrada);
System.out.println("Funciono???/ " + salida);
s = maper.writeValueAsString(salida);
System.out.println("JSON=> " + s);
}
public static void testAccionService() throws IOException {
ObjectMapper maper = new ObjectMapper();
EntradaAccion entrada = new EntradaAccion();
entrada.getBodyIn().setTipoAccion(AccionGenerica.GUARDA);
entrada.getBodyIn().setEntidad(EntidadEnum.DetalleLiquidacion.name());
List<Map<String, Object>> entidades = new ArrayList<>();
//TODO: agregar entidades
entrada.getBodyIn().setEntidades(entidades);
String s = maper.writeValueAsString(entrada);
System.out.println("JSON=> " + s);
AccionResource ar = new AccionResource();
System.out.println("POSTING....");
List<PolizaDTO> data = new ArrayList<>();
PolizaDTO pol = new PolizaDTO();
pol.setDetTipoIdentificacion(3);
pol.setPerCedulaTitular("1715060073");
pol.setDetModalidad(25);
pol.setDetPeriodicidad(17200);
pol.setDetFormaPago(23516);
pol.setDetIfi(17205);
pol.setDetSucursalIfi(23484);
pol.setDetPromocion(23584);
pol.setDetTipoCuenta(17187);
pol.setEmpCodigo(2);
pol.setCedulaDebito("1715060012");
pol.setCuentaDebito("123456789");
pol.setPolBroker("Asesor CPN");
data.add(pol);
s = maper.writeValueAsString(data);
System.out.println("JSON=> " + s);
// SalidaAccion salida = ar.postJson(entrada);
// System.out.println("Funciono??? " + salida);
// s = maper.writeValueAsString(salida);
// System.out.println("JSON=> " + s);
}
}

View File

@ -0,0 +1,23 @@
{
"headerIn": {
"dispositivo": "WeLaptop",
"canal": null,
"medio": null,
"aplicacion": "WeMedicalProV1.0",
"tipoTransaccion": "0101000",
"usuario": "james",
"uuid": "7cbec0b8ec642ddbd7b9b24a35e39b70938d",
"fechaHora": null,
"idioma": null,
"empresa": null,
"geolocalizacion": null
},
"bodyIn": {
"maximoRegistros": 10,
"tipoConsulta": 1,
"entidad": "Empresa",
"parametros": {
"tipoNemonico": "COMERC"
}
}
}