package com.yihu.wsgw.webservice;
import com.yihu.ehr.model.WSReturnModel;
import com.yihu.ehr.util.operator.StringUtil;
import com.yihu.ehr.ws.ExcuteService;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import javax.xml.namespace.QName;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created by Administrator on 2016/5/19.
*/
@javax.jws.WebService(endpointInterface = "com.yihu.wsgw.webservice.ServiceGateWayPortType",
targetNamespace = "http://com.yihu.wsgw/ServiceGateWay",
serviceName = "ServiceGateWay",
portName = "ServiceGateWayHttpPort")
public class ServiceGateWay implements ServiceGateWayPortType {
private ExcuteService excuteService = new ExcuteService();
/**
* 执行sql语句
*
* @param sql
* @return
*/
public String excuteSQL(String TransactionCode,
String sql) {
return excuteService.excuteSQL(TransactionCode, sql);
}
public static String replaceBlank(String str) {
String dest = "";
if (str != null) {
Pattern p = Pattern.compile("\\s*|\t|\r|\n");
Matcher m = p.matcher(str);
dest = m.replaceAll("");
}
return dest;
}
public String service(String authInfo, String sequenceNo, String api, String param, int paramType, int outType, String v) {
System.out.println("authInfo:" + authInfo);
System.out.println("sequenceNo:" + sequenceNo);
System.out.println("api,:" + api);
System.out.println("param:" + param);
System.out.println("paramType:" + paramType);
System.out.println("outType:" + outType);
System.out.println("v:" + v);
WSReturnModel wsReturnModel = new WSReturnModel();
String xml = "";
try {
switch (api) {
case "basic.BasicApi.QueryUserInfo": {
Document document = DocumentHelper.parseText(param.trim());
Element root = document.getRootElement();
Element data = root.element("Data");
xml = excuteService.QueryUserInfo(
StringUtil.isEmpty(root.element("TransactionCode").getText()) ? "" : root.element("TransactionCode").getText(),
StringUtil.isEmpty(data.element("CardType").getText()) ? "" : data.element("CardType").getText(),
StringUtil.isEmpty(data.element("CardNo").getText()) ? "" : data.element("CardNo").getText(),
StringUtil.isEmpty(data.element("Mobile").getText()) ? "" : data.element("Mobile").getText(),
StringUtil.isEmpty(data.element("PatientId").getText()) ? "" : data.element("PatientId").getText());
break;
}
case "report.ReportWs.GetReportInfo": {
Document document = DocumentHelper.parseText(param.trim());
Element root = document.getRootElement();
Element data = root.element("Data");
xml = excuteService.GetReportInfo(
StringUtil.isEmpty(root.element("TransactionCode").getText()) ? "" : root.element("TransactionCode").getText(),
StringUtil.isEmpty(data.element("ReportId").getText()) ? "" : data.element("ReportId").getText(),
StringUtil.isEmpty(data.element("ReportType").getText()) ? "" : data.element("ReportType").getText()
);
break;
}
case "yy.yygh.QueryRegInfo": {
Document document = DocumentHelper.parseText(param.trim());
Element root = document.getRootElement();
Element data = root.element("Data");
xml = excuteService.QueryRegInfo(
StringUtil.isEmpty(root.element("TransactionCode").getText()) ? "" : root.element("TransactionCode").getText(),
StringUtil.isEmpty(data.element("CardType").getText()) ? "" : data.element("CardType").getText(),
StringUtil.isEmpty(data.element("CardNo").getText()) ? "" : data.element("CardNo").getText(),
StringUtil.isEmpty(data.element("IdCardNo").getText()) ? "" : data.element("IdCardNo").getText(),
StringUtil.isEmpty(data.element("OrderId").getText()) ? "" : data.element("OrderId").getText(),
StringUtil.isEmpty(data.element("ClinicCard").getText()) ? "" : data.element("ClinicCard").getText(),
StringUtil.isEmpty(data.element("TimeSlice").getText()) ? "" : data.element("TimeSlice").getText(),
StringUtil.isEmpty(data.element("StartTime").getText()) ? "" : data.element("StartTime").getText(),
StringUtil.isEmpty(data.element("EndTime").getText()) ? "" : data.element("EndTime").getText(),
StringUtil.isEmpty(data.element("RegFlag").getText()) ? "" : data.element("RegFlag").getText()
);
break;
}
case "report.ReportWs.GetReportList": {
Document document = DocumentHelper.parseText(param.trim());
Element root = document.getRootElement();
Element data = root.element("Data");
xml = excuteService.GetReportList(
StringUtil.isEmpty(root.element("TransactionCode").getText()) ? "" : root.element("TransactionCode").getText(),
StringUtil.isEmpty(data.element("CardType").getText()) ? "" : data.element("CardType").getText(),
StringUtil.isEmpty(data.element("CardNo").getText()) ? "" : data.element("CardNo").getText(),
StringUtil.isEmpty(data.element("EndDate").getText()) ? "" : data.element("EndDate").getText(),
StringUtil.isEmpty(data.element("Mobile").getText()) ? "" : data.element("Mobile").getText(),
StringUtil.isEmpty(data.element("PatientName").getText()) ? "" : data.element("PatientName").getText(),
StringUtil.isEmpty(data.element("ReportType").getText()) ? "" : data.element("ReportType").getText());
break;
}
default: {
wsReturnModel.setTransactionCode("-10000");
wsReturnModel.setRespMessage("没有对应的API");
xml = " \n" +
"" + api + " \n" +
"-10000\n" +
"没有对应的API\n" +
"";
}
}
} catch (Throwable e) {
e.printStackTrace();
return " \n" +
"" + api + " \n" +
"-10000\n" +
"参数错误:" + e.getMessage() + "\n" +
"";
}
return xml;
}
public static void main(String[] args) throws Exception {
/*
JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
Client client = factory.createClient("http://172.19.103.71:8080/service/sql?wsdl");
//Client client = factory.createClient("http://localhost:8080/service/sql?wsdl");
try {
Object[] result = client.invoke("ExcuteSQL", "10000", "select count(1) as COUNT,max(to_number(HDSD03_01_031)) as MAX_KEYVALUE from HDSC01_02 where 1=1 order by to_number(HDSD03_01_031)"); // 按照方法的参数来提供值
if (result != null && result.length > 0) {
System.out.println(result[0]); // 通过getUsername来获取对象的username属性
}
} catch (Exception e) {
e.printStackTrace();
}*/
}
}