소스 검색

Merge branch 'master' of chenweida/esb into master

esb 9 년 전
부모
커밋
9415ad8903

+ 18 - 0
Hos-Resource-Rest/src/main/java/com/yihu/hos/config/Config.java

@ -0,0 +1,18 @@
package com.yihu.hos.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import java.io.InputStream;
import java.util.Properties;
/**
 * Created by Administrator on 2016/4/13.
 */
public class Config {
    public static String ip;
    public static String port;
    public static String clazz;
    public static String method;
}

+ 126 - 5
Hos-Resource-Rest/src/main/java/com/yihu/hos/gateway/control/rpc/impl/ResourceRpcImpl.java

@ -1,33 +1,154 @@
package com.yihu.hos.gateway.control.rpc.impl;
import com.coreframework.remoting.Url;
import com.coreframework.remoting.reflect.InvokeRequest;
import com.coreframework.remoting.reflect.Rpc;
import com.yihu.hos.config.Config;
import com.yihu.hos.gateway.control.rpc.IResourceRpc;
import com.yihu.hos.gateway.exception.EHRException;
import com.yihu.hos.gateway.model.RsResourceRpcGateway;
import com.yihu.hos.gateway.model.rpc.RPCRequestResult;
import com.yihu.hos.gateway.model.rpc.RPCResponseResult;
import com.yihu.hos.gateway.util.Constant;
import net.sf.json.JSONObject;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
 * Created by Administrator on 2016/4/12.
 */
public class ResourceRpcImpl implements IResourceRpc {
    @Override
    public String transport(String RPCRequestXml) {
        try {
            //解析xml
            SAXReader saxReader = new SAXReader();
            Document document = saxReader.read(RPCRequestXml);
            Element root = document.getRootElement();
            //xml转对象
            JAXBContext context = JAXBContext.newInstance(RPCRequestResult.class);
            Unmarshaller unmarshaller = context.createUnmarshaller();
            RPCRequestResult rpcRequestResult = (RPCRequestResult) unmarshaller.unmarshal(new StringReader(RPCRequestXml));
            // JAXBContext context = JAXBContext.newInstance(RPCRequestResult.class);
            //Unmarshaller unmarshaller = context.createUnmarshaller();
            // RPCRequestResult rpcRequestResult = (RPCRequestResult) unmarshaller.unmarshal(new StringReader(RPCRequestXml));
            //得到业务code
            String trancode = rpcRequestResult.getTransactionCode();
            String trancode = root.element("TransactionCode").toString();
            if (trancode.equals(Constant.PATIENT_INFORMATION)) {
                String cardNo = root.element("Data").element("CardNo").toString();
                ;
                String cardType = root.element("Data").element("CardType").toString();
                ;
                String patientId = root.element("Data").element("PatientId").toString();
                ;
                //查询病人基本信息
                patientInformation(cardNo, cardType, patientId);
            } else if (trancode.equals(Constant.PUSHREPORT)) {
                //检查检验报告
                String reportType = root.element("Data").element("ReportType").toString();
                String reportId = root.element("Data").element("ReportId").toString();
                pushreport(reportType, reportId);
            }
            RPCResponseResult r = RPCResponseResult.success();
        } catch (Exception e) {
        }
        System.out.println(RPCRequestXml);
        return "你也好";
    }
    //查询病人基本信息
    private void patientInformation(String cardNo, String cardType, String patientId) throws Exception {
        String data =
                "<Req>" +
                        "<TransactionCode></TransactionCode>" +
                        "<Data>" +
                        "<CardType>" + cardType + "</CardType>" +
                        "<CardNo>" + cardNo + "</CardNo>" +
                        "<PatientId>" + patientId + "</PatientId>" +
                        "</Data>" +
                        "</Req>";
        InvokeRequest r = new InvokeRequest(new Url(Config.ip, Integer.valueOf(Config.port)), Config.clazz, Config.method, String.class);
        r.setSyncMode();//设置调用模式为同步模式
        Object s = Rpc.invoke(r);
        //解析xml
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read(s.toString());
        Element root = document.getRootElement();
        if ("10000".equals(root.element("RespCode"))) {
            //xml轉json
            JSONObject obj = new JSONObject();
            obj.put(root.getName(), iterateElement(root));
            String jsonString = obj.toString();
            //調用接口存入mongo
            //出發採集上傳
        }
    }
    //检查检验报告
    private void pushreport(String reportType, String reportId) throws Exception {
        String data =
                "<Req>" +
                        "<TransactionCode></TransactionCode>" +
                        "<Data>" +
                        "<ReportId>" + reportId + "</ReportId>" +
                        "<ReportType>" + reportType + "</ReportType>" +
                        "</Data>" +
                        "</Req>";
        InvokeRequest r = new InvokeRequest(new Url(Config.ip, Integer.valueOf(Config.port)), Config.clazz, Config.method, String.class);
        r.setSyncMode();//设置调用模式为同步模式
        Object s = Rpc.invoke(r);
        //解析xml
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read(s.toString());
        Element root = document.getRootElement();
        if ("10000".equals(root.element("RespCode"))) {
            //xml轉json
            JSONObject obj = new JSONObject();
            obj.put(root.getName(), iterateElement(root));
            String jsonString = obj.toString();
            //調用接口存入mongo
            //出發採集上傳
        }
    }
    private static Map iterateElement(Element element) {
        List jiedian = element.elements();
        Element et = null;
        Map obj = new HashMap();
        List list = null;
        for (int i = 0; i < jiedian.size(); i++) {
            list = new LinkedList();
            et = (Element) jiedian.get(i);
            if (et.getTextTrim().equals("")) {
                if (et.elements().size() == 0)
                    continue;
                if (obj.containsKey(et.getName())) {
                    list = (List) obj.get(et.getName());
                }
                list.add(iterateElement(et));
                obj.put(et.getName(), list);
            } else {
                if (obj.containsKey(et.getName())) {
                    list = (List) obj.get(et.getName());
                }
                list.add(et.getTextTrim());
                obj.put(et.getName(), list);
            }
        }
        return obj;
    }
}

+ 79 - 0
Hos-Resource-Rest/src/main/java/com/yihu/hos/gateway/model/RsResourceRpcGateway.java

@ -0,0 +1,79 @@
package com.yihu.hos.gateway.model;
/**
 * Created by Administrator on 2016/4/13.
 */
public class RsResourceRpcGateway {
    private String id;
    private String trancode;
    private String rpc_method;
    private String rpc_ip;
    private String rpc_port;
    private String rpc_params;
    private String rpc_class;
    private String callbackmethod;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getTrancode() {
        return trancode;
    }
    public void setTrancode(String trancode) {
        this.trancode = trancode;
    }
    public String getRpc_method() {
        return rpc_method;
    }
    public void setRpc_method(String rpc_method) {
        this.rpc_method = rpc_method;
    }
    public String getRpc_ip() {
        return rpc_ip;
    }
    public void setRpc_ip(String rpc_ip) {
        this.rpc_ip = rpc_ip;
    }
    public String getRpc_port() {
        return rpc_port;
    }
    public void setRpc_port(String rpc_port) {
        this.rpc_port = rpc_port;
    }
    public String getRpc_params() {
        return rpc_params;
    }
    public void setRpc_params(String rpc_params) {
        this.rpc_params = rpc_params;
    }
    public String getRpc_class() {
        return rpc_class;
    }
    public void setRpc_class(String rpc_class) {
        this.rpc_class = rpc_class;
    }
    public String getCallbackmethod() {
        return callbackmethod;
    }
    public void setCallbackmethod(String callbackmethod) {
        this.callbackmethod = callbackmethod;
    }
}

+ 11 - 0
Hos-Resource-Rest/src/main/java/com/yihu/hos/gateway/util/Constant.java

@ -0,0 +1,11 @@
package com.yihu.hos.gateway.util;
/**
 * Created by Administrator on 2016/4/13.
 */
public class Constant {
    public static String 	PATIENT_INFORMATION ="10001";//查询病人基本信息
    public static String 	PUSHREPORT ="20001";//检查检验报告
}

+ 24 - 0
Hos-Resource-Rest/src/main/java/com/yihu/hos/resource/base/App.java

@ -1,6 +1,7 @@
package com.yihu.hos.resource.base;
import com.coreframework.remoting.Server;
import com.yihu.hos.config.Config;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.context.embedded.MultipartConfigFactory;
@ -11,7 +12,11 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import javax.servlet.MultipartConfigElement;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
/**
@ -25,6 +30,7 @@ import java.util.Set;
@ComponentScan("com.yihu.hos")
@EntityScan("com.yihu.hos.**.model")
public class App {
    private static Properties prop = new Properties();
    //@RequestMapping("/")
    //String home() {
    //    return "Hello World!";
@ -58,8 +64,26 @@ public class App {
        //启动RPC服务器
        Server server = Server.getInstance(8891);
        server.start();
        initConfig();
        readpop();
    }
    private static  void initConfig() {
        try {
            InputStream in = App.class.getResourceAsStream("/config/dbhelper.properties");
            prop.load(in);
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    private static void readpop(){
        Config.ip= prop.getProperty("rpc.ip");
        Config.port = prop.getProperty("rpc.port");
        Config.clazz = prop.getProperty("rpc.clazz");
        Config.method = prop.getProperty("rpc.method");
    }
    /**
     * spring boot 定时任务
     */

+ 4 - 0
Hos-Resource-Rest/src/main/resources/rpc.properties

@ -0,0 +1,4 @@
rpc.ip=192.168.2.1
rpc.port=4430
rpc.clazz=4430
rpc.method=4430