ExcuteService.java 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. package com.yihu.ehr.ws;
  2. import com.yihu.ehr.dbhelper.jdbc.DBHelper;
  3. import com.yihu.ehr.model.DataSource;
  4. import com.yihu.ehr.model.WSReturnModel;
  5. import com.yihu.ehr.util.operator.StringUtil;
  6. import org.apache.commons.dbcp2.BasicDataSource;
  7. import org.springframework.jdbc.core.JdbcTemplate;
  8. import org.springframework.util.ResourceUtils;
  9. import org.springframework.util.StringUtils;
  10. import java.io.*;
  11. import java.util.List;
  12. import java.util.Map;
  13. /**
  14. * Created by Administrator on 2016/5/19.
  15. */
  16. public class ExcuteService {
  17. public static JdbcTemplate jdbcTemplate = null;
  18. public void initJDBC() throws Exception {
  19. if (jdbcTemplate == null) {
  20. //jdbc:oracle:thin:hos/hos@//172.19.103.71:1521/orcl
  21. //jdbc:mysql://172.19.103.71:1521/orcl?user=hos&password=hos&useUnicode=true&characterEncoding=UTF-8
  22. //jdbc:sqlserver://172.19.103.71:1521/orcl?user=hos&password=hos
  23. DBHelper dbTemp = new DBHelper();
  24. DataSource source = dbTemp.load(DataSource.class, "select * from system_datasource");
  25. String config = source.getConfig();
  26. BasicDataSource dasicDataSource = new BasicDataSource();
  27. if (config.contains("oracle")) {
  28. //oracle数据库
  29. dasicDataSource.setUrl(source.getConfig());
  30. dasicDataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
  31. String[] s1 = config.split("@");
  32. String[] s2 = s1[0].split(":");
  33. String[] s3 = s2[3].split("/");
  34. dasicDataSource.setUsername(s3[0]);
  35. dasicDataSource.setPassword(s3[1]);
  36. } else if (config.contains("mysql")) {
  37. //mysql数据库
  38. dasicDataSource.setUrl(source.getConfig());
  39. dasicDataSource.setDriverClassName("com.mysql.jdbc.Driver");
  40. String[] s1 = config.split("\\?");
  41. String[] s2 = s1[1].split("&");
  42. dasicDataSource.setUsername(s2[0].split("=")[1]);
  43. dasicDataSource.setPassword(s2[1].split("=")[1]);
  44. } else if (config.contains("sqlserver")) {
  45. //sqlserver数据库
  46. dasicDataSource.setUrl(source.getConfig());
  47. dasicDataSource.setDriverClassName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
  48. String[] s1 = config.split("\\?");
  49. String[] s2 = s1[1].split("&");
  50. dasicDataSource.setUsername(s2[0].split("=")[1]);
  51. dasicDataSource.setPassword(s2[1].split("=")[1]);
  52. }
  53. jdbcTemplate = new JdbcTemplate();
  54. jdbcTemplate.setDataSource(dasicDataSource);
  55. System.out.println(jdbcTemplate.queryForMap("select 1 from dual"));
  56. }
  57. }
  58. /**
  59. * 执行sql语句
  60. *
  61. * @param sql
  62. * @return
  63. */
  64. public String excuteSQL(String TransactionCode,
  65. String sql) {
  66. WSReturnModel wsReturnModel = new WSReturnModel();
  67. wsReturnModel.setTransactionCode(TransactionCode);
  68. try {
  69. initJDBC();
  70. wsReturnModel.setData(jdbcTemplate.queryForList(sql));
  71. return WSReturnModel.toXml(wsReturnModel);
  72. } catch (Exception e1) {
  73. wsReturnModel.setRespCode("-30000");
  74. wsReturnModel.setRespMessage(e1.getMessage());
  75. return WSReturnModel.toXml(wsReturnModel);
  76. }
  77. }
  78. /**
  79. * 获取检查报告单的列表
  80. *
  81. * @param cardType
  82. * @param cardNo
  83. * @param startDate
  84. * @param endDate
  85. * @param mobile
  86. * @param reportType
  87. * @return
  88. */
  89. public String GetReportList(
  90. String TransactionCode,
  91. String cardType,
  92. String cardNo,
  93. String startDate,
  94. String endDate,
  95. String mobile,
  96. String reportType) {
  97. WSReturnModel wsReturnModel = new WSReturnModel();
  98. wsReturnModel.setTransactionCode(TransactionCode);
  99. try {
  100. initJDBC();
  101. StringBuffer sb = new StringBuffer("select * from HDSD01_01 where 1=1 ");
  102. if (!StringUtils.isEmpty(cardType)) {
  103. sb.append(" and HDSD00_05_026 < '" + cardType + "'");
  104. }
  105. if (!StringUtils.isEmpty(cardNo)) {
  106. sb.append(" and HDSD00_01_001 > '" + cardNo + "'");
  107. }
  108. if (!StringUtils.isEmpty(startDate)) {
  109. sb.append(" and HDSD00_01_001 > '" + startDate + "'");
  110. }
  111. if (!StringUtils.isEmpty(endDate)) {
  112. sb.append(" and HDSD00_01_001 > '" + endDate + "'");
  113. }
  114. if (!StringUtils.isEmpty(mobile)) {
  115. sb.append(" and HDSD00_01_001 > '" + mobile + "'");
  116. }
  117. if (!StringUtils.isEmpty(reportType)) {
  118. sb.append(" and HDSD00_01_001 > '" + reportType + "'");
  119. }
  120. wsReturnModel.setData(jdbcTemplate.queryForList(sb.toString()));
  121. return WSReturnModel.toXml(wsReturnModel);
  122. } catch (Exception e) {
  123. wsReturnModel.setRespCode("-30000");
  124. wsReturnModel.setRespMessage(e.getMessage());
  125. e.printStackTrace();
  126. return WSReturnModel.toXml(wsReturnModel);
  127. }
  128. }
  129. /**
  130. * 检查报告单/检验报告单明细
  131. *
  132. * @param reportId
  133. * @param reportType //报告单类型
  134. * @return
  135. */
  136. public String GetReportInfo(
  137. String TransactionCode,
  138. String reportId,
  139. String reportType) {
  140. WSReturnModel wsReturnModel = new WSReturnModel();
  141. wsReturnModel.setTransactionCode(TransactionCode);
  142. try {
  143. initJDBC();
  144. StringBuffer sb = new StringBuffer("select * from HDSD01_01 where 1=1 ");
  145. if (!StringUtil.isEmpty(TransactionCode)) {
  146. sb.append(" and HDSD00_05_026 < '" + TransactionCode + "'");
  147. }
  148. if (!StringUtil.isEmpty(reportId)) {
  149. sb.append(" and HDSD00_01_001 > '" + reportId + "'");
  150. }
  151. if (!StringUtil.isEmpty(reportType)) {
  152. sb.append(" and HDSD00_01_001 > '" + reportType + "'");
  153. }
  154. wsReturnModel.setData(jdbcTemplate.queryForList(sb.toString()));
  155. return WSReturnModel.toXml(wsReturnModel);
  156. } catch (Exception e) {
  157. wsReturnModel.setRespCode("-30000");
  158. wsReturnModel.setRespMessage(e.getMessage());
  159. e.printStackTrace();
  160. return WSReturnModel.toXml(wsReturnModel);
  161. }
  162. }
  163. /**
  164. * 人口学信息查询
  165. * @param TransactionCode
  166. * @param CardType
  167. * @param CardNo
  168. * @param Mobile
  169. * @param PatientId
  170. * @return
  171. */
  172. public String QueryUserInfo(String TransactionCode, String CardType, String CardNo, String Mobile, String PatientId) {
  173. WSReturnModel wsReturnModel = new WSReturnModel();
  174. wsReturnModel.setTransactionCode(TransactionCode);
  175. try {
  176. initJDBC();
  177. //挂号信息
  178. StringBuffer sb = new StringBuffer("select * from HDSC01_02 where 1=1 ");
  179. if (!StringUtil.isEmpty(PatientId)) {
  180. sb.append(" and PATIENT_ID = '" + PatientId + "'");
  181. }
  182. List<Map<String, Object>> GHMap= jdbcTemplate.queryForList(sb.toString());
  183. //人口学信息
  184. sb = new StringBuffer("select * from HDSA00_01 where 1=1 ");
  185. if (!StringUtil.isEmpty(PatientId)) {
  186. sb.append(" and PATIENT_ID = '" + PatientId + "'");
  187. }
  188. List<Map<String, Object>> RKXMap= jdbcTemplate.queryForList(sb.toString());
  189. GHMap.addAll(RKXMap);
  190. System.out.println(GHMap);
  191. wsReturnModel.setData(GHMap);
  192. return WSReturnModel.toXml(wsReturnModel);
  193. } catch (Exception e) {
  194. wsReturnModel.setRespCode("-30000");
  195. wsReturnModel.setRespMessage(e.getMessage());
  196. e.printStackTrace();
  197. return WSReturnModel.toXml(wsReturnModel);
  198. }
  199. }
  200. }