diff --git a/liscommon/src/main/java/com/czlisinterface/system/service/impl/CommonImpl.java b/liscommon/src/main/java/com/czlisinterface/system/service/impl/CommonImpl.java index 13b2a38..7c42c1e 100644 --- a/liscommon/src/main/java/com/czlisinterface/system/service/impl/CommonImpl.java +++ b/liscommon/src/main/java/com/czlisinterface/system/service/impl/CommonImpl.java @@ -153,48 +153,19 @@ public class CommonImpl implements HISInterfaceService { if(method == null || method.equals("") || method.equals("null")){ return new Result("-1","json格式不正确,必须包含method节点"); } - try { - // 1. 优先查找当前实例自身及父类(直到CommonImpl)中的方法 - Method targetMethod = findMethodInHierarchy(this.getClass(), method); - if (targetMethod != null) { - // 执行当前类或父类中的方法(this为当前实例,可能是子类对象) - Object result = targetMethod.invoke(this, param); - return (Result) result; - } - // 2. 若未找到,再查找commonExt中的方法 - Method extMethod = commonExt.getClass().getMethod(method, String.class); - Object extResult = extMethod.invoke(commonExt, param); - return (Result) extResult; - }catch (NoSuchMethodException e) { - // 方法不存在的情况 - return new Result("1", "该接口还未实现!", method); - } catch (IllegalAccessException e) { - // 方法访问权限不足(如private方法) - log.error("方法访问权限不足:",e); - return new Result("-1", "方法访问失败:" + e.getMessage()); - } catch (InvocationTargetException e) { - // 方法执行过程中抛出异常 - Throwable targetException = e.getTargetException(); - log.error("方法执行异常:",e); - return new Result("-1", "方法执行异常:" + targetException.getMessage()); - } catch (ClassCastException e) { - // 方法返回值不是Result类型 - return new Result("-1", "方法返回值类型错误"); + switch (method){ + case "sampleaction": + //危急值接口 + return commonExt.sampleaction(param); + case "getSamplingTime": //采样登记 + return commonExt.getSamplingTime(param); + case "getInspectTime": //标本送检 + return commonExt.getInspectTime(param); + default: + return new Result("1","该接口还未实现!",method); } -// switch (method){ -// case "sampleaction": -// //危急值接口 -// return commonExt.sampleaction(param); -// case "getSamplingTime": //采样登记 -// return commonExt.getSamplingTime(param); -// case "getInspectTime": //标本送检 -// return commonExt.getInspectTime(param); -// default: -// return new Result("-1","该接口还未实现!",method); -// } - } diff --git a/liscommon/src/main/java/com/czlisinterface/system/socket/SocketUtils.java b/liscommon/src/main/java/com/czlisinterface/system/socket/SocketUtils.java index 4316ff1..ed44ef8 100644 --- a/liscommon/src/main/java/com/czlisinterface/system/socket/SocketUtils.java +++ b/liscommon/src/main/java/com/czlisinterface/system/socket/SocketUtils.java @@ -12,13 +12,8 @@ import java.util.Map; @Slf4j public class SocketUtils { - - public static String socketServerPort; - - - /** * 启动socket */ diff --git a/lisinterface_jldermyy/src/main/java/com/czlisinterface/jldermyy/service/impl/Lisinterface_jldermyy.java b/lisinterface_jldermyy/src/main/java/com/czlisinterface/jldermyy/service/impl/Lisinterface_jldermyy.java index 3cb2f46..f36efaa 100644 --- a/lisinterface_jldermyy/src/main/java/com/czlisinterface/jldermyy/service/impl/Lisinterface_jldermyy.java +++ b/lisinterface_jldermyy/src/main/java/com/czlisinterface/jldermyy/service/impl/Lisinterface_jldermyy.java @@ -1,6 +1,9 @@ package com.czlisinterface.jldermyy.service.impl; +import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.XmlUtil; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; import cn.hutool.http.webservice.SoapClient; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; @@ -10,6 +13,7 @@ import com.czlisinterface.system.pojo.ComUsr; import com.czlisinterface.system.pojo.LabReqmain; import com.czlisinterface.system.pojo.Result; import com.czlisinterface.system.service.impl.CommonImpl; +import com.czlisinterface.system.utils.CommonUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -18,7 +22,7 @@ import org.w3c.dom.Document; import javax.annotation.Resource; import javax.xml.xpath.XPathConstants; -import java.util.List; +import java.util.*; /** @@ -34,66 +38,128 @@ public class Lisinterface_jldermyy extends CommonImpl { String postURL; @Resource - CommonMapper commonMapper; + CommonUtil commonUtil; @Resource HisMapper_jldermyy hisMapperJldermyy; - public Result test11(String param){ -// log.error("测试一条error日志"); -// log.debug("debug日志是否也能被记录呢?"); -// ComUsr userHISId = commonMapper.getUserHISId("00453"); -// return new Result("0",userHISId.toString()); - List labreqmain = hisMapperJldermyy.getLabreqmain(); - return new Result("0",labreqmain.toString()); + @Override + public Result invokeHttp(String param) { + Result result = super.invokeHttp(param); + if(!result.equals("1")) return result; + JSONObject jsonObject = JSONUtil.parseObj(param); + String method = jsonObject.getStr("method"); + switch (method){ + + } + + return new Result("-1","没有找到接口方法!"); } /** * 调用his的webservice接口 - * @param action - * @param xmlStr + * @param xmlData * @return */ - public Result xmlInvoke(String action,String xmlStr){ - String result = ""; - try{ - //String url = "http://172.29.91.236/sj_web_ss/StandardService.asmx?wsdl"; - SoapClient client = SoapClient.create(postURL) - .header("SOAPAction","http://www.bkgtsoft.com/ESB.SoapService.Send") - // 设置要请求的方法,此接口方法前缀为web,传入对应的命名空间 - .setMethod("bkg:Send", "http://www.bkgtsoft.com") - .setParam("action",action,true)//此处写true,会自动填写命名空间 - .setParam("message","",true); + public Result invokeHttpWebService(String xmlData){ + String ret = null; - // log.info("接口地址:{}\n入参:{}",postURL,client.getMsgStr(false)); - // 发送请求,参数true表示返回一个格式化后的XML内容 - // 返回内容为XML字符串,可以配合XmlUtil解析这个响应 - result = client.send(false); - //log.info("webservice返回内容:"+result); -// if(result.contains("")); -// } - while(result.contains("")){ - result = result.replace("",""); + log.info("调用地址:"+postURL); + //log.info("调用平台接口,入参:"+json); + try (HttpResponse httpResponse = HttpRequest.post(postURL) + .header("Content-Type", "text/xml;charset=utf-8") + .header("SOAPAction","urn:hl7-org:v3/PlatService") + .body(xmlData) + .execute()) { + int status = httpResponse.getStatus(); + ret = httpResponse.body(); + if(status != 200){ + log.error("调用平台接口,入参:{},出参:{}",xmlData,ret); + return new Result("-1","调用集成平台的http接口失败:"+ret); } - result = result.substring(result.indexOf(""),result.indexOf("")+11); - // log.info("result:"+result); - }catch (Exception ex){ - log.error("服务标识:{}\r\n入参:{}\r\n出参:{},{}",action,xmlStr,result,ex); - throw ex; + + } catch (Exception e){ + log.error("调用平台接口,入参:{},{}",xmlData,e); + return new Result("-1",e.getMessage()); + } + log.info("调用集成平台接口:\r\n入参:"+xmlData+"\r\n出参:"+ret); + if(ret.contains("")){ + ret = ret.substring(ret.indexOf(""),ret.indexOf("")+20); } - log.info("服务标识:{}\r\n调用平台接口入参:{}\r\n出参:{}",action,xmlStr,result); - //解析出参 - String resultCode = ""; - String msg = ""; - Document doc = XmlUtil.parseXml(result); + Document doc = XmlUtil.parseXml(ret); + String resTag = String.valueOf(XmlUtil.getByXPath("//Res/MsgHead/ResTag", doc, XPathConstants.STRING)); + String resMsg = String.valueOf(XmlUtil.getByXPath("//Res/MsgHead/ResMsg", doc, XPathConstants.STRING)); + int resTagInt = -1; + try{ + resTagInt = Integer.parseInt(resTag); + }catch (Exception e){ + return new Result("-1","his返回值转换失败:"+e.getMessage()); + } + if(resTagInt >= 0){ + return new Result("0","调用接口成功!"); + }else{ + return new Result("-1","调用接口失败:"+resMsg); + } + } - return null; + public String toXml(String xmlStr11){ + Map mapHead = new HashMap<>(); + mapHead.put("SrvId","02004"); + mapHead.put("ReqSysId","041001-4"); + mapHead.put("MsgId", UUID.randomUUID()); + mapHead.put("Dt",commonUtil.currentStringTime()); + mapHead.put("MsgCheckCode",""); + mapHead.put("OperateType","1"); + mapHead.put("Remark",""); + Map applyQryConditionMap = new HashMap<>(); + applyQryConditionMap.put("UnitId",""); + applyQryConditionMap.put("VisitType",""); + applyQryConditionMap.put("PatientNo",""); + applyQryConditionMap.put("VisitId",""); + applyQryConditionMap.put("CardNo",""); + applyQryConditionMap.put("ApplyNo",""); + applyQryConditionMap.put("ApplyFormType",""); + applyQryConditionMap.put("PerformDeptId",""); + applyQryConditionMap.put("DeptId",""); + applyQryConditionMap.put("WardId",""); + applyQryConditionMap.put("OrderTimeBegin",""); + applyQryConditionMap.put("OrderTimeEnd",""); + applyQryConditionMap.put("AcceptNo",""); + applyQryConditionMap.put("IncludeExtend",""); + applyQryConditionMap.put("PerformStatus",""); + applyQryConditionMap.put("ChargMark",""); + applyQryConditionMap.put("ChargTimeBegin",""); + applyQryConditionMap.put("ChargTimeEnd",""); + applyQryConditionMap.put("OrderClass","001"); + applyQryConditionMap.put("NurseAduitMark",""); + Map map = new HashMap<>(); + map.put("MsgHead",mapHead); + map.put("ApplyQryCondition",applyQryConditionMap); + String xmlStr = XmlUtil.toStr(XmlUtil.mapToXml(map, "Req"), CharsetUtil.UTF_8, false, true); + String joinedStr = joinStr(xmlStr); + System.out.println("joinedStr:"+joinedStr); + Result result = invokeHttpWebService(joinedStr); + System.out.println(result); + return xmlStr; } + + public String joinStr(String xmlStr){ + StringBuffer sbStr = new StringBuffer(); + sbStr.append(""); + sbStr.append(""); + sbStr.append(""); + sbStr.append(""); + sbStr.append(""); + sbStr.append(""); + sbStr.append(""); + sbStr.append(""); + + return sbStr.toString(); + } + } diff --git a/lisinterface_start/pom.xml b/lisinterface_start/pom.xml index e6dc227..37c9cd2 100644 --- a/lisinterface_start/pom.xml +++ b/lisinterface_start/pom.xml @@ -11,7 +11,6 @@ jar lisinterface_start - http://maven.apache.org UTF-8 @@ -71,7 +70,9 @@ - ./config/ + + ./config/ liscommon-1.0.jar lisinterface_jldermyy-1.0.jar + ${project.build.directory} @@ -91,6 +92,23 @@ ${project.build.directory}/lib/ + + liscommon,lisinterface_jldermyy + + + + + + + copy-custom-dependencies + package + + copy-dependencies + + + ${project.build.directory} + + liscommon,lisinterface_jldermyy