From 328424f2858919db9a9fe21075e846756349a7e7 Mon Sep 17 00:00:00 2001 From: Christian Date: Tue, 28 Jul 2020 14:35:15 -0500 Subject: [PATCH] Algunos temas de farmaEnlace --- .gitignore | 1 + nb-configuration.xml | 2 +- .../wmp/services/rest/AccionResource.java | 3 +- .../wmp/services/rest/ApplicationConfig.java | 1 + .../services/rest/FarmaenlaceResource.java | 190 ++++++++++++++++++ .../qsoft/wmp/services/util/ServiceUtil.java | 18 +- .../qsoft/wmp/services/xsd/BodyRecetas.java | 62 ++++++ .../wmp/services/xsd/EntradaRecetas.java | 92 +++++++++ .../services/xsd/SalidaAccionFarmaEnlace.java | 78 +++++++ 9 files changed, 444 insertions(+), 3 deletions(-) create mode 100644 .gitignore create mode 100644 src/main/java/com/qsoft/wmp/services/rest/FarmaenlaceResource.java create mode 100644 src/main/java/com/qsoft/wmp/services/xsd/BodyRecetas.java create mode 100644 src/main/java/com/qsoft/wmp/services/xsd/EntradaRecetas.java create mode 100644 src/main/java/com/qsoft/wmp/services/xsd/SalidaAccionFarmaEnlace.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a6f89c2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target/ \ No newline at end of file diff --git a/nb-configuration.xml b/nb-configuration.xml index 32b40de..8e8a342 100755 --- a/nb-configuration.xml +++ b/nb-configuration.xml @@ -24,6 +24,6 @@ Any value defined here will override the pom.xml file value but is only applicab /scss:/css js/libs - pfv5ee8 + pfv3ee6 diff --git a/src/main/java/com/qsoft/wmp/services/rest/AccionResource.java b/src/main/java/com/qsoft/wmp/services/rest/AccionResource.java index 8d9158f..95924e4 100644 --- a/src/main/java/com/qsoft/wmp/services/rest/AccionResource.java +++ b/src/main/java/com/qsoft/wmp/services/rest/AccionResource.java @@ -15,6 +15,7 @@ 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.io.IOException; import java.util.List; import javax.annotation.PostConstruct; import javax.inject.Inject; @@ -118,7 +119,7 @@ public class AccionResource { * @return * @throws DominioExcepcion */ - public SalidaAccion ejecutarAccion(EntradaAccion entrada, EntidadEnum entidad) throws DominioExcepcion { + public SalidaAccion ejecutarAccion(EntradaAccion entrada, EntidadEnum entidad) throws DominioExcepcion, IOException { List 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(); diff --git a/src/main/java/com/qsoft/wmp/services/rest/ApplicationConfig.java b/src/main/java/com/qsoft/wmp/services/rest/ApplicationConfig.java index b5523e7..6892342 100644 --- a/src/main/java/com/qsoft/wmp/services/rest/ApplicationConfig.java +++ b/src/main/java/com/qsoft/wmp/services/rest/ApplicationConfig.java @@ -32,6 +32,7 @@ public class ApplicationConfig extends Application { 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.FarmaenlaceResource.class); resources.add(com.qsoft.wmp.services.rest.MultipartResource.class); } diff --git a/src/main/java/com/qsoft/wmp/services/rest/FarmaenlaceResource.java b/src/main/java/com/qsoft/wmp/services/rest/FarmaenlaceResource.java new file mode 100644 index 0000000..39186cc --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/rest/FarmaenlaceResource.java @@ -0,0 +1,190 @@ +/* + * 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.dao.exception.DaoException; +import com.qsoft.erp.constantes.DominioConstantes; +import com.qsoft.erp.constantes.EntidadEnum; +import com.qsoft.erp.dominio.AccionGenerica; +import com.qsoft.erp.dominio.ConsultaGenerica; +import com.qsoft.erp.dominio.exception.DominioExcepcion; +import com.qsoft.erp.dto.PersonaPolizaDTO; +import com.qsoft.util.constantes.CodigoRespuesta; +import com.qsoft.util.constantes.ErrorTipo; +import com.qsoft.util.ms.pojo.HeaderMS; +import com.qsoft.wmp.services.util.ServiceUtil; +import com.qsoft.wmp.services.xsd.EntradaAccion; +import com.qsoft.wmp.services.xsd.EntradaConsulta; +import com.qsoft.wmp.services.xsd.EntradaRecetas; +import com.qsoft.wmp.services.xsd.SalidaAccion; +import com.qsoft.wmp.services.xsd.SalidaAccionFarmaEnlace; +import com.qsoft.wmp.services.xsd.SalidaConsulta; +import java.util.HashMap; + +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.annotation.PostConstruct; +import javax.inject.Inject; +import javax.ws.rs.Consumes; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; + +/** + * REST Web Service + * + * @author james + */ +@Path("ServicioConvenioExterno") +public class FarmaenlaceResource { + + @Inject + private ConsultaGenerica consulta; + + @Inject + private AccionGenerica accion; + + @PostConstruct + public void postConstructor() { + System.out.println("======> POST CONTRUCTOR " + consulta); + } + + /** + * + * @return an instance of java.lang.String + */ + @GET + @Path("/cedula={cedula}&diagnostico={diagnostico}") + @Produces(MediaType.APPLICATION_JSON) + public Map getJson(@PathParam("cedula") String cedula, + @PathParam("diagnostico") String diagnostico) { + Map mapFarmaenlace = new HashMap(); + + + SalidaConsulta salida = null; + List resultado = null; + String message = "Mensaje OK"; + Boolean status = true; + byte[] bytes = { 'c', 'd' }; + String autorizacion = UUID.nameUUIDFromBytes(bytes).toString().replace("-", ""); + Integer receta = 0; + if (cedula == null || cedula.trim().equals("")) { + salida = ServiceUtil.crearSalidaConsultaError(ErrorTipo.WARNING, CodigoRespuesta.CODIGO_IN_NULO, "La entrada no puede ser nula"); + }else{ + try { + resultado = this.consulta.consultaGet(cedula, diagnostico); + + } catch (DominioExcepcion ex) { + Logger.getLogger(FarmaenlaceResource.class.getName()).log(Level.SEVERE, null, ex); + } catch (DaoException ex) { + Logger.getLogger(FarmaenlaceResource.class.getName()).log(Level.SEVERE, null, ex); + } + } + if(resultado.size()<=0){ + message = "No se encontraron resultados correspondientes a la cedula ".concat(cedula); + status = false; + } + mapFarmaenlace.put("rec_titular", resultado); + Map mapResult = new HashMap(); + mapResult.put("status", status); + mapResult.put("mensaje", message); + mapResult.put("autorizacion", autorizacion); + mapResult.put("receta", 0); + + mapFarmaenlace.put("result", mapResult); + mapFarmaenlace.put("tipo_facturacion", "TOTAL"); + + return mapFarmaenlace; + /** SalidaConsulta salida = ServiceUtil.crearSalidaConsultaError(CodigoRespuesta.CODIGO_ERROR_GENERICO, + "Acción no soportada por favor ejecute la consulta via POST");*/ + } + + /** + * PUT method for updating or creating an instance of ConsultaResource + * + * @param entrada + * @return + */ + @POST + @Path("/Confirmacion_Datos") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Map postJson(EntradaRecetas entrada) { + Map 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()); + + try { + + salida = ejecutarAccionFarmaenlace(entrada); + + } 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 Map ejecutarAccionFarmaenlace(EntradaRecetas entrada) throws DominioExcepcion { + //SalidaAccionFarmaEnlace salida = new SalidaAccionFarmaEnlace(); + Map salida = new HashMap(); + try { + Map resultado = accion.accionFarmaenlace(entrada.getReceta(), entrada.getRec_items(), entrada.getRec_facturacion(), entrada.getRec_credito(), entrada.getTipo_facturacion()); + salida = ServiceUtil.crearSalidaAccionOkFarmaenlace(resultado); + + } catch (Exception e) { + } + //String msg = "A continuacion se muestra el resultado de la accion."; + //HeaderMS header = entrada.getHeaderIn(); + //header.setFechaHora(DominioConstantes.getDateTime()); + return salida; + } +} diff --git a/src/main/java/com/qsoft/wmp/services/util/ServiceUtil.java b/src/main/java/com/qsoft/wmp/services/util/ServiceUtil.java index 7e7cdc8..52f51ae 100644 --- a/src/main/java/com/qsoft/wmp/services/util/ServiceUtil.java +++ b/src/main/java/com/qsoft/wmp/services/util/ServiceUtil.java @@ -9,6 +9,7 @@ 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.SalidaAccionFarmaEnlace; import com.qsoft.wmp.services.xsd.SalidaConsulta; import java.util.List; import java.util.Map; @@ -105,11 +106,25 @@ public class ServiceUtil { /** * Crear salida ok * + * @param * @param header * @param estado * @param data * @return */ + public static Map crearSalidaAccionOkFarmaenlace(Map resultado) { + //SalidaAccionFarmaEnlace salida = new SalidaAccionFarmaEnlace(); + //salida.setStatus((Boolean) resultado.get("status")); + //salida.setMensaje((String) resultado.get("mensaje")); + //salida.setAutorizacion((String) resultado.get("autorizacion")); + //salida.setReceta((Integer) resultado.get("receta")); + + + //return salida; + return resultado; + } + + public static SalidaAccion crearSalidaAccionOk(HeaderMS header, String estado, List data) { SalidaAccion salida = new SalidaAccion(); salida.setHeaderOut(header); @@ -119,6 +134,7 @@ public class ServiceUtil { salida.getBodyOut().setEstado(estado); salida.getBodyOut().setResultados(data); return salida; - } + } + } diff --git a/src/main/java/com/qsoft/wmp/services/xsd/BodyRecetas.java b/src/main/java/com/qsoft/wmp/services/xsd/BodyRecetas.java new file mode 100644 index 0000000..021a34f --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/xsd/BodyRecetas.java @@ -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 BodyRecetas { + + private Integer tipoConsulta; + private Integer maximoRegistros; + private Integer registroInicio; + private String entidad; + private Map parametros; + + public Integer getTipoConsulta() { + return tipoConsulta; + } + + public void setTipoConsulta(Integer tipoConsulta) { + this.tipoConsulta = tipoConsulta; + } + + public Map getParametros() { + return parametros; + } + + public void setParametros(Map 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; + } + +} diff --git a/src/main/java/com/qsoft/wmp/services/xsd/EntradaRecetas.java b/src/main/java/com/qsoft/wmp/services/xsd/EntradaRecetas.java new file mode 100644 index 0000000..c802e56 --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/xsd/EntradaRecetas.java @@ -0,0 +1,92 @@ +/* + * 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 java.util.List; +import java.util.Map; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlSeeAlso; + +/** + * Entrada del servicio web. + * + * @author jaime Ruales + * @version $1.0$ + */ +@XmlSeeAlso({HeaderMS.class}) +@XmlAccessorType(XmlAccessType.FIELD) +public class EntradaRecetas implements Serializable { + + private static final long serialVersionUID = 8142263336233087792L; + @XmlElement(name = "receta") + @JsonAlias("receta") + private Map receta; + + @XmlElement(name = "rec_items") + @JsonAlias("rec_items") + private List> rec_items; + + @XmlElement(name = "rec_facturacion") + @JsonAlias("rec_facturacion") + private Map rec_facturacion; + + @XmlElement(name = "rec_credito") + @JsonAlias("rec_credito") + private Map rec_credito; + + @XmlElement(name = "tipo_facturacion") + @JsonAlias("tipo_facturacion") + private String tipo_facturacion; + + public Map getReceta() { + return receta; + } + + public void setReceta(Map receta) { + this.receta = receta; + } + + public List> getRec_items() { + return rec_items; + } + + public void setRec_items(List> rec_items) { + this.rec_items = rec_items; + } + + public Map getRec_facturacion() { + return rec_facturacion; + } + + public void setRec_facturacion(Map rec_facturacion) { + this.rec_facturacion = rec_facturacion; + } + + public Map getRec_credito() { + return rec_credito; + } + + public void setRec_credito(Map rec_credito) { + this.rec_credito = rec_credito; + } + + public String getTipo_facturacion() { + return tipo_facturacion; + } + + public void setTipo_facturacion(String tipo_facturacion) { + this.tipo_facturacion = tipo_facturacion; + } + + +} diff --git a/src/main/java/com/qsoft/wmp/services/xsd/SalidaAccionFarmaEnlace.java b/src/main/java/com/qsoft/wmp/services/xsd/SalidaAccionFarmaEnlace.java new file mode 100644 index 0000000..040c226 --- /dev/null +++ b/src/main/java/com/qsoft/wmp/services/xsd/SalidaAccionFarmaEnlace.java @@ -0,0 +1,78 @@ +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; + + +/** + * Salida del Servicio Web. + * + * @author Jaime Ruales. + * @version $1.0$ + */ +@XmlSeeAlso({HeaderMS.class, ErrorMS.class}) +@XmlAccessorType(XmlAccessType.FIELD) +public class SalidaAccionFarmaEnlace implements Serializable { + + private static final long serialVersionUID = 5403227918589158188L; + + @XmlElement(name = "status") + @JsonAlias("status") + protected Boolean status; + + @XmlElement(name = "mensaje") + @JsonAlias("mensaje") + protected String mensaje; + + @XmlElement(name = "autorizacion") + @JsonAlias("autorizacion") + protected String autorizacion; + + @XmlElement(name = "receta") + @JsonAlias("receta") + protected Integer receta; + + public static long getSerialVersionUID() { + return serialVersionUID; + } + + public void setStatus(Boolean status) { + this.status = status; + } + + + public void setMensaje(String mensaje) { + this.mensaje = mensaje; + } + + public String getMensaje() { + return mensaje; + } + + public void setAutorizacion(String autorizacion) { + this.autorizacion = autorizacion; + } + + public String getAutorizacion() { + return autorizacion; + } + + public void setReceta(Integer receta) { + this.receta = receta; + } + + public Integer getReceta() { + return receta; + } + + + + +}