ExcuteService.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  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 1是检查 2是检验
  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. if ("2".equals(reportType)) {
  102. //检验
  103. StringBuffer sb = new StringBuffer("select * from HDSD02_01 where 1=1 ");
  104. if (!StringUtils.isEmpty(endDate)) {
  105. sb.append(" and HDSD00_05_026 < '" + endDate + "'");
  106. }
  107. if (!StringUtils.isEmpty(startDate)) {
  108. sb.append(" and HDSD00_01_001 > '" + startDate + "'");
  109. }
  110. if (!StringUtils.isEmpty(mobile)) {
  111. sb.append(" and HDSD00_01_001 = '" + mobile + "'");
  112. }
  113. if (!StringUtils.isEmpty(cardNo)) {
  114. sb.append(" and HDSD00_01_001 = '" + cardNo + "'");
  115. }
  116. if (!StringUtils.isEmpty(cardType)) {
  117. sb.append(" and HDSD00_01_001 = '" + cardType + "'");
  118. }
  119. wsReturnModel.setData(jdbcTemplate.queryForList(sb.toString()));
  120. } else {
  121. //检查
  122. StringBuffer sb = new StringBuffer("select * from HDSD01_01 where 1=1 ");
  123. if (!StringUtils.isEmpty(endDate)) {
  124. sb.append(" and HDSD00_05_026 < '" + endDate + "'");
  125. }
  126. if (!StringUtils.isEmpty(startDate)) {
  127. sb.append(" and HDSD00_01_001 > '" + startDate + "'");
  128. }
  129. if (!StringUtils.isEmpty(mobile)) {
  130. sb.append(" and HDSD00_01_001 = '" + mobile + "'");
  131. }
  132. if (!StringUtils.isEmpty(cardNo)) {
  133. sb.append(" and HDSD00_01_001 = '" + cardNo + "'");
  134. }
  135. if (!StringUtils.isEmpty(cardType)) {
  136. sb.append(" and HDSD00_01_001 = '" + cardType + "'");
  137. }
  138. wsReturnModel.setData(jdbcTemplate.queryForList(sb.toString()));
  139. }
  140. return WSReturnModel.toXml(wsReturnModel);
  141. } catch (Exception e) {
  142. wsReturnModel.setRespCode("-30000");
  143. wsReturnModel.setRespMessage(e.getMessage());
  144. e.printStackTrace();
  145. return WSReturnModel.toXml(wsReturnModel);
  146. }
  147. }
  148. /**
  149. * 检查报告单/检验报告单明细
  150. *
  151. * @param reportId
  152. * @param reportType //报告单类型
  153. * @return
  154. */
  155. public String GetReportInfo(
  156. String TransactionCode,
  157. String reportId,
  158. String reportType) {
  159. WSReturnModel wsReturnModel = new WSReturnModel();
  160. wsReturnModel.setTransactionCode(TransactionCode);
  161. try {
  162. initJDBC();
  163. if ("1".equals(reportType)) {
  164. //检验
  165. StringBuffer sb = new StringBuffer("select * from REPORT_JY where 1=1 ");
  166. if (!StringUtils.isEmpty(reportId)) {
  167. sb.append(" and REPORT_ID = '" + reportId + "'");
  168. }
  169. List<Map<String, Object>> returnData = jdbcTemplate.queryForList(sb.toString());
  170. for (Map<String, Object> oneM : returnData) {
  171. //检验-图片报告单
  172. sb = new StringBuffer("select * from REPORT_JY_MX where 1=1 ");
  173. if (!StringUtils.isEmpty(oneM.get("REPORT_ID"))) {
  174. sb.append(" and REPORT_ID = '" + reportId + "'");
  175. }
  176. oneM.put("Data_1", jdbcTemplate.queryForList(sb.toString()));
  177. }
  178. wsReturnModel.setData(returnData);
  179. } else {
  180. //检查
  181. StringBuffer sb = new StringBuffer("select * from REPORT where 1=1 ");
  182. if (!StringUtils.isEmpty(reportId)) {
  183. sb.append(" and REPORT_ID = '" + reportId + "'");
  184. }
  185. List<Map<String, Object>> returnData = jdbcTemplate.queryForList(sb.toString());
  186. //检查细表
  187. for (Map<String, Object> oneM : returnData) {
  188. sb = new StringBuffer("select * from REPORT_JC where 1=1 ");
  189. if (!StringUtils.isEmpty(oneM.get("REPORT_ID"))) {
  190. sb.append(" and REPORT_ID = '" + reportId + "'");
  191. }
  192. oneM.put("Data_1", jdbcTemplate.queryForList(sb.toString()));
  193. }
  194. wsReturnModel.setData(returnData);
  195. }
  196. System.out.println(wsReturnModel);
  197. return WSReturnModel.toXml(wsReturnModel);
  198. } catch (Exception e) {
  199. wsReturnModel.setRespCode("-30000");
  200. wsReturnModel.setRespMessage(e.getMessage());
  201. e.printStackTrace();
  202. return WSReturnModel.toXml(wsReturnModel);
  203. }
  204. }
  205. /**
  206. * 人口学信息查询
  207. *
  208. * @param TransactionCode
  209. * @param CardType
  210. * @param CardNo
  211. * @param Mobile
  212. * @param PatientId
  213. * @return
  214. */
  215. public String QueryUserInfo(String TransactionCode, String CardType, String CardNo, String Mobile, String PatientId) {
  216. WSReturnModel wsReturnModel = new WSReturnModel();
  217. wsReturnModel.setTransactionCode(TransactionCode);
  218. try {
  219. initJDBC();
  220. //人口学信息
  221. StringBuffer sb = new StringBuffer("select * from PATIENT_INFO a where 1=1 ");
  222. if (!StringUtil.isEmpty(CardNo)) {
  223. sb.append(" and a.CARD_NO = '" + CardNo + "'");
  224. }
  225. if (!StringUtil.isEmpty(CardType)) {
  226. sb.append(" and a.CARD_TYPE = '" + CardType + "'");
  227. }
  228. List<Map<String, Object>> RKXMap = jdbcTemplate.queryForList(sb.toString());
  229. wsReturnModel.setData(RKXMap);
  230. return WSReturnModel.toXml(wsReturnModel);
  231. } catch (Exception e) {
  232. wsReturnModel.setRespCode("-30000");
  233. wsReturnModel.setRespMessage(e.getMessage());
  234. e.printStackTrace();
  235. return WSReturnModel.toXml(wsReturnModel);
  236. }
  237. }
  238. public String QueryRegInfo(String TransactionCode, String CardType,String CardNo, String IdCardNo, String OrderId, String ClinicCard, String TimeSlice, String StartTime, String EndTime, String RegFlag) {
  239. WSReturnModel wsReturnModel = new WSReturnModel();
  240. wsReturnModel.setTransactionCode(TransactionCode);
  241. try {
  242. initJDBC();
  243. //预约信息查询
  244. StringBuffer sb = new StringBuffer("select * from REG_INFO a where 1=1 ");
  245. if (!StringUtil.isEmpty(CardNo)) {
  246. sb.append(" and a.CARD_NO = '" + CardNo + "'");
  247. }
  248. if (!StringUtil.isEmpty(CardType)) {
  249. sb.append(" and a.CARD_TYPE = '" + CardType + "'");
  250. }
  251. List<Map<String, Object>> RKXMap = jdbcTemplate.queryForList(sb.toString());
  252. wsReturnModel.setData(RKXMap);
  253. return WSReturnModel.toXml(wsReturnModel);
  254. } catch (Exception e) {
  255. wsReturnModel.setRespCode("-30000");
  256. wsReturnModel.setRespMessage(e.getMessage());
  257. e.printStackTrace();
  258. return WSReturnModel.toXml(wsReturnModel);
  259. }
  260. }
  261. }