123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- package com.yihu.ehr.ws;
- import com.yihu.ehr.dbhelper.jdbc.DBHelper;
- import com.yihu.ehr.model.DataSource;
- import com.yihu.ehr.model.WSReturnModel;
- import com.yihu.ehr.ws.inf.ISQLWebService;
- import org.apache.commons.dbcp2.BasicDataSource;
- import org.apache.cxf.endpoint.Client;
- import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
- import org.springframework.jdbc.core.JdbcTemplate;
- import org.springframework.stereotype.Controller;
- import org.springframework.util.StringUtils;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.ResponseBody;
- import javax.jws.WebService;
- /**
- * Created by Administrator on 2016/5/19.
- */
- @WebService(endpointInterface = "com.yihu.ehr.ws.inf.ISQLWebService", targetNamespace = "com.yihu.ehr.ws.inf")
- public class SQLWebService implements ISQLWebService {
- public static JdbcTemplate jdbcTemplate = null;
- public void initJDBC() throws Exception{
- if (jdbcTemplate == null) {
- //jdbc:oracle:thin:hos/hos@//172.19.103.71:1521/orcl
- //jdbc:mysql://172.19.103.71:1521/orcl?user=hos&password=hos&useUnicode=true&characterEncoding=UTF-8
- //jdbc:sqlserver://172.19.103.71:1521/orcl?user=hos&password=hos
- DBHelper dbTemp = new DBHelper();
- DataSource source = dbTemp.load(DataSource.class, "select * from system_datasource");
- String config = source.getConfig();
- BasicDataSource dasicDataSource = new BasicDataSource();
- if (config.contains("oracle")) {
- //oracle数据库
- dasicDataSource.setUrl(source.getConfig());
- dasicDataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
- String[] s1 = config.split("@");
- String[] s2 = s1[0].split(":");
- String[] s3 = s2[3].split("/");
- dasicDataSource.setUsername(s3[0]);
- dasicDataSource.setPassword(s3[1]);
- } else if (config.contains("mysql")) {
- //mysql数据库
- dasicDataSource.setUrl(source.getConfig());
- dasicDataSource.setDriverClassName("com.mysql.jdbc.Driver");
- String[] s1 = config.split("\\?");
- String[] s2 = s1[1].split("&");
- dasicDataSource.setUsername(s2[0].split("=")[1]);
- dasicDataSource.setPassword(s2[1].split("=")[1]);
- } else if (config.contains("sqlserver")) {
- //sqlserver数据库
- dasicDataSource.setUrl(source.getConfig());
- dasicDataSource.setDriverClassName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
- String[] s1 = config.split("\\?");
- String[] s2 = s1[1].split("&");
- dasicDataSource.setUsername(s2[0].split("=")[1]);
- dasicDataSource.setPassword(s2[1].split("=")[1]);
- }
- jdbcTemplate = new JdbcTemplate();
- jdbcTemplate.setDataSource(dasicDataSource);
- }
- }
- /**
- * 执行sql语句
- *
- * @param sql
- * @return
- */
- public String excuteSQL(String TransactionCode,
- String sql) {
- WSReturnModel wsReturnModel = new WSReturnModel();
- wsReturnModel.setTransactionCode(TransactionCode);
- try {
- initJDBC();
- wsReturnModel.setData(jdbcTemplate.queryForList(sql));
- return WSReturnModel.toXml(wsReturnModel);
- } catch (Exception e1) {
- wsReturnModel.setTransactionCode("-30000");
- wsReturnModel.setRespMessage(e1.getMessage());
- return WSReturnModel.toXml(wsReturnModel);
- }
- }
- /**
- * 获取检查报告单的列表
- *
- * @param cardType
- * @param cardNo
- * @param startDate
- * @param endDate
- * @param mobile
- * @param reportType
- * @return
- */
- @Override
- public String getReportList(
- String TransactionCode,
- String cardType,
- String cardNo,
- String startDate,
- String endDate,
- String mobile,
- String reportType) {
- WSReturnModel wsReturnModel = new WSReturnModel();
- wsReturnModel.setTransactionCode(TransactionCode);
- try {
- initJDBC();
- StringBuffer sb = new StringBuffer("select * from HDSD01_01 where 1=1 ");
- if (!StringUtils.isEmpty(endDate)) {
- sb.append(" and HDSD00_05_026 < '" + endDate + "'");
- }
- if (!StringUtils.isEmpty(startDate)) {
- sb.append(" and HDSD00_01_001 > '" + startDate + "'");
- }
- wsReturnModel.setData(jdbcTemplate.queryForList(sb.toString()));
- // return WSReturnModel.toXml(wsReturnModel);
- return "<Resp> \n" +
- "<TransactionCode></TransactionCode> \n" +
- "<RespMessage>成功</RespMessage>\n" +
- "<Data>\n" +
- "<ReportId>8F5F14C2-FAB8-4CB5-BB91-AECF0EC64E69</ReportId>\n" +
- "<ReportType>1</ReportType>\n" +
- "<SubmissionTime>2015-03-12 09:52:47.0</SubmissionTime>\n" +
- "<PatientName>张三</PatientName>\n" +
- "<ItemName>测试报告1</ItemName>\n" +
- "<State>1</ State >\n" +
- "<EventNo>事件号</EventNo>\n" +
- "<EventType>就诊类型</EventType>\n" +
- "<EventTime>就诊时间</EventTime>\n" +
- "<LocalCardNo>就诊卡号</LocalCardNo>\n" +
- "<IdCardNo>身份证号</IdCardNo>\n" +
- "</Data> \n" +
- "<Data>\n" +
- "<ReportId>8F5F14C2-FAB8-4CB5-BB91-AECF0EC64E69</ReportId>\n" +
- "<ReportType>1</ReportType>\n" +
- "<SubmissionTime>2015-03-12 09:52:47.0</SubmissionTime>\n" +
- "<PatientName>张三</PatientName>\n" +
- "<ItemName>测试报告1</ItemName>\n" +
- "<State>1</State>\n" +
- "<EventNo>事件号</EventNo>\n" +
- "<EventType>就诊类型</EventType>\n" +
- "<EventTime>就诊时间</EventTime>\n" +
- "<LocalCardNo>就诊卡号</LocalCardNo>\n" +
- "<IdCardNo>身份证号</IdCardNo>\n" +
- "</Data>\n" +
- "</Resp>";
- } catch (Exception e) {
- wsReturnModel.setTransactionCode("-30000");
- wsReturnModel.setRespMessage(e.getMessage());
- return WSReturnModel.toXml(wsReturnModel);
- }
- }
- /**
- * 检查报告单/检验报告单明细
- *
- * @param reportId
- * @param reportType
- * @return
- */
- @Override
- public String getReportInfo(
- String TransactionCode,
- String reportId,
- String reportType) {
- WSReturnModel wsReturnModel = new WSReturnModel();
- wsReturnModel.setTransactionCode(TransactionCode);
- try {
- initJDBC();
- StringBuffer sb = new StringBuffer("select * from HDSD01_01 where 1=1 ");
- if (!StringUtils.isEmpty(reportId)) {
- sb.append(" and HDSD00_05_026 < '" + reportId + "'");
- }
- if (!StringUtils.isEmpty(reportType)) {
- sb.append(" and HDSD00_01_001 > '" + reportType + "'");
- }
- // wsReturnModel.setData(jdbcTemplate.queryForList(sb.toString()));
- return "<Resp> \n" +
- "<TransactionCode></TransactionCode> \n" +
- "<RespMessage>成功</RespMessage>\n" +
- "<Data>\n" +
- "\t<ReportTitle>报告单2</ReportTitle>\n" +
- "\t<ClinicCard>K5698012</ClinicCard>\n" +
- "\t<UserType>0</UserType>\n" +
- "\t<HosBedNo>6</HosBedNo>\n" +
- "\t<SigningTime>2015-03-09 09:52:47.0</SigningTime>\n" +
- "\t<Checker>审核人2</Checker>\n" +
- "\t<BarCode>456456456</BarCode>\n" +
- "\t<Sex>2</Sex>\n" +
- "\t<PatientName>李四</PatientName>\n" +
- "\t<SampleNumber>Yao77822</SampleNumber>\n" +
- "\t<SampleType>2</SampleType>\n" +
- "\t<ApplicationDepartment>口腔科</ApplicationDepartment>\n" +
- "\t<SubmissionTime>2015-03-10 09:52:47.0</SubmissionTime>\n" +
- "\t<Rmark>牙齿蛀牙</Rmark>\n" +
- "\t<ReportTime>2015-03-12 09:52:47.0</ReportTime>\n" +
- "\t<Inspector>检验员2</Inspector>\n" +
- "\t<ItemNum>2</ItemNum>\n" +
- "\t<ClinicNo>门诊号</ClinicNo>\n" +
- "\t<HosUserNo>住院号</HosUserNo>\n" +
- "\t<Data_1>\n" +
- "\t\t\t<ItemDetailsName>xxx1</ItemDetailsName>\n" +
- "\t\t\t<ResultValue>xxx1</ResultValue>\n" +
- "\t\t\t<Unit>分</Unit>\n" +
- "\t\t\t<ReferenceValues>100~250</ReferenceValues>\n" +
- "\t\t\t<IsNormal></IsNormal>\n" +
- "<ExFlag></ExFlag>\n" +
- "<Range></Range>\n" +
- "<SeFlag></SeFlag>\n" +
- "<Words></Words>\n" +
- "<GermName></GermName>\n" +
- "<GrowStatus></GrowStatus>\n" +
- "\t</Data_1>\n" +
- "\t<Data_1>\n" +
- "\t\t\t<ItemDetailsName>xxx2</ItemDetailsName>\n" +
- "\t\t\t<ResultValue>xxx2</ResultValue>\n" +
- "\t\t\t<Unit>分</Unit>\n" +
- "\t\t\t<ReferenceValues>100~250</ReferenceValues>\n" +
- "\t\t\t<IsNormal></IsNormal>\n" +
- "<ExFlag></ExFlag>\n" +
- "<Range></Range>\n" +
- "<SeFlag></SeFlag>\n" +
- "<Words></Words>\n" +
- "<GermName></GermName>\n" +
- "<GrowStatus></GrowStatus>\n" +
- "\t</Data_1>\n" +
- " </Data>\n" +
- "</Resp>";
- } catch (Exception e) {
- wsReturnModel.setTransactionCode("-30000");
- wsReturnModel.setRespMessage(e.getMessage());
- return WSReturnModel.toXml(wsReturnModel);
- }
- }
- 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();
- }
- }
- }
|