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(); }*/ } }