|
|
|
@ -6,6 +6,7 @@ import com.ynxbd.common.bean.pay.Order; |
|
|
|
|
import com.ynxbd.common.helper.ProperHelper; |
|
|
|
|
import com.ynxbd.common.helper.common.CodeHelper; |
|
|
|
|
import com.ynxbd.common.helper.common.ErrorHelper; |
|
|
|
|
import com.ynxbd.common.helper.common.SnowHelper; |
|
|
|
|
import com.ynxbd.common.helper.common.SoapHelper; |
|
|
|
|
import com.ynxbd.common.result.JsonResult; |
|
|
|
|
import com.ynxbd.common.result.JsonResultEnum; |
|
|
|
@ -25,10 +26,10 @@ import java.util.Map; |
|
|
|
|
public class HisHelper { |
|
|
|
|
public static final String SOAP_ENV = "<soapenv:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" "; |
|
|
|
|
|
|
|
|
|
public static final String CALL_NO = "843242395"; |
|
|
|
|
|
|
|
|
|
public static String ALI_CALL_NO = ""; |
|
|
|
|
|
|
|
|
|
// 微信
|
|
|
|
|
public static final String WECHAT_CALL_NO = "843242395"; |
|
|
|
|
// 支付宝
|
|
|
|
|
public static final String ALI_CALL_NO = "675448357"; |
|
|
|
|
|
|
|
|
|
// private static final String NS = "http://tempuri.org/";
|
|
|
|
|
// private static String HIS_WSD_URL;
|
|
|
|
@ -47,6 +48,8 @@ public class HisHelper { |
|
|
|
|
|
|
|
|
|
// 是否传递openid给HIS推送消息
|
|
|
|
|
public static final Boolean IS_PUSH_MSG; |
|
|
|
|
// 是否开启支付宝蓝旗调用call_no
|
|
|
|
|
public static final Boolean IS_ALI_MER; |
|
|
|
|
|
|
|
|
|
// 开启预结算(第1开关)(如果HIS未限制-则存在直接入库风险!!!!!!!!!!!!!!!!!!)
|
|
|
|
|
public static final boolean IS_RECIPE_PREPAY; |
|
|
|
@ -62,16 +65,11 @@ public class HisHelper { |
|
|
|
|
String devMIUrl = config.getString("his.dev_mi_url"); |
|
|
|
|
String prodMIUrl = config.getString("his.prod_mi_url"); |
|
|
|
|
|
|
|
|
|
String aliCallNo = config.getString("ali_code"); |
|
|
|
|
|
|
|
|
|
IS_LOG_RESP = config.getBoolean("his.is_log_resp", false); |
|
|
|
|
IS_PUSH_MSG = config.getBoolean("his.is_push_msg", false); |
|
|
|
|
IS_ALI_MER = config.getBoolean("his.is_ali_mer", false); |
|
|
|
|
IS_RECIPE_PREPAY = config.getBoolean("his.is_recipe_prepay", false); |
|
|
|
|
|
|
|
|
|
if (!ObjectUtils.isEmpty(aliCallNo)) { |
|
|
|
|
ALI_CALL_NO = aliCallNo; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (url == null) { |
|
|
|
|
log.error("WebService配置文件读取失败"); |
|
|
|
|
} |
|
|
|
@ -110,26 +108,14 @@ public class HisHelper { |
|
|
|
|
return prefix + pEnum.ORDER_CODE.toUpperCase() + "001"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// /**
|
|
|
|
|
// * 根据订单号获取类型
|
|
|
|
|
// *
|
|
|
|
|
// * @param bankTransNo 交易流水号
|
|
|
|
|
// * @param tradeNo HIS订单号
|
|
|
|
|
// * @return 类型
|
|
|
|
|
// */
|
|
|
|
|
// public static String getTypeByPEnum(String bankTransNo, String tradeNo) throws ServiceException {
|
|
|
|
|
// if (!PayService.isNewOrder(bankTransNo, tradeNo)) {
|
|
|
|
|
// throw new ServiceException(ResultEnum.REFUND_IS_OLD_ORDER_NUM);
|
|
|
|
|
// }
|
|
|
|
|
// int len = tradeNo.length();
|
|
|
|
|
// String middleCode1 = tradeNo.substring(len - 4, len - 3);
|
|
|
|
|
// String middleCode2 = tradeNo.substring(len - 4, len - 2);
|
|
|
|
|
// for (PEnum item : PEnum.values()) {
|
|
|
|
|
// if (item.ORDER_CODE.equals(middleCode1) || item.ORDER_CODE.equals(middleCode2)) {
|
|
|
|
|
// return item.CODE;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// // 修改callNo为阿里code
|
|
|
|
|
// public static void putCallNoByMer(MerchantEnum merchantEnum, Map<String, Object> params) {
|
|
|
|
|
// if (merchantEnum == null) return;
|
|
|
|
|
//
|
|
|
|
|
// if (merchantEnum.equals(MerchantEnum.ALI) || merchantEnum.equals(MerchantEnum.ALI_MEDICAL)) {
|
|
|
|
|
// params.put("CallNo", ALI_CALL_NO);
|
|
|
|
|
// }
|
|
|
|
|
// return null;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -144,30 +130,6 @@ public class HisHelper { |
|
|
|
|
return getResponseXml(hisEnum, HIS_SOAP_URL, params); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* webService请求工具类(枚举版) |
|
|
|
|
* |
|
|
|
|
* @param hisEnum 枚举 |
|
|
|
|
* @param params 发送的参数 |
|
|
|
|
* @param merchantEnum 支付宝标志 |
|
|
|
|
* @return 响应的xml数据 |
|
|
|
|
*/ |
|
|
|
|
public static String getResponseXml(HisEnum hisEnum, Map<String, Object> params, MerchantEnum merchantEnum) { |
|
|
|
|
return getResponseXml(hisEnum, HIS_SOAP_URL, params, merchantEnum); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 测试环境 |
|
|
|
|
* |
|
|
|
|
* @param hisEnum 枚举 |
|
|
|
|
* @param params 发送的参数 |
|
|
|
|
* @return 响应的xml数据 |
|
|
|
|
*/ |
|
|
|
|
public static String getDevResponseXml(HisEnum hisEnum, Map<String, Object> params) { |
|
|
|
|
return getResponseXml(hisEnum, HIS_SOAP_DEV_URL, params); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* webService请求工具类(枚举版) |
|
|
|
|
* |
|
|
|
@ -176,77 +138,71 @@ public class HisHelper { |
|
|
|
|
* @return 响应的xml数据 |
|
|
|
|
*/ |
|
|
|
|
public static String getResponseXml(HisEnum hisEnum, String soapUrl, Map<String, Object> params) { |
|
|
|
|
return getResponseXmlForCallNo(hisEnum, soapUrl, params, MerchantEnum.WX); |
|
|
|
|
return getResponseXmlForCallNo(hisEnum, soapUrl, params); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static String getResponseXml(HisEnum hisEnum, String soapUrl, Map<String, Object> params, MerchantEnum merchantEnum) { |
|
|
|
|
return getResponseXmlForCallNo(hisEnum, soapUrl, params, merchantEnum); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* webService请求工具类(枚举版) |
|
|
|
|
* |
|
|
|
|
* @param hisEnum 枚举 |
|
|
|
|
* @param soapUrl 路径 |
|
|
|
|
* @param params 参数 |
|
|
|
|
* @param merchantEnum 来源 |
|
|
|
|
* @param hisEnum 枚举 |
|
|
|
|
* @param soapUrl 路径 |
|
|
|
|
* @param params 参数 |
|
|
|
|
* @return 响应xml |
|
|
|
|
*/ |
|
|
|
|
public static String getResponseXmlForCallNo(HisEnum hisEnum, String soapUrl, Map<String, Object> params, MerchantEnum merchantEnum) { |
|
|
|
|
public static String getResponseXmlForCallNo(HisEnum hisEnum, String soapUrl, Map<String, Object> params) { |
|
|
|
|
String method = hisEnum.METHOD; |
|
|
|
|
String transactionCode = hisEnum.CODE; |
|
|
|
|
|
|
|
|
|
if (params == null || transactionCode == null || method == null) { |
|
|
|
|
log.info("WebService-{ map | transactionCode | method 为空 }"); |
|
|
|
|
log.info("[WebService]-{ map | transactionCode | method 为空 }"); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
Object callNo = params.get("CallNo"); |
|
|
|
|
if (params.get("CallNo") == null || "".equals(callNo)) { |
|
|
|
|
params.put("CallNo", CALL_NO); |
|
|
|
|
} |
|
|
|
|
if ("ali".equals(merchantEnum.CODE) && !"".equals(ALI_CALL_NO)) { |
|
|
|
|
params.put("CallNo", ALI_CALL_NO); |
|
|
|
|
if (ObjectUtils.isEmpty(callNo)) { |
|
|
|
|
params.put("CallNo", WECHAT_CALL_NO); |
|
|
|
|
} |
|
|
|
|
params.put("TransactionCode", transactionCode); |
|
|
|
|
|
|
|
|
|
String result = null; |
|
|
|
|
try { |
|
|
|
|
String reqId = SnowHelper.nextStrId(); |
|
|
|
|
long begTime = System.currentTimeMillis(); // 开始时间
|
|
|
|
|
String hisResponse = SoapHelper.post("HIS", soapUrl, null, SOAP_ENV + |
|
|
|
|
"xmlns:urn=\"urn:Interface_ABIntf-IInterface_AB\">" + |
|
|
|
|
"<soapenv:Header/><soapenv:Body>" + |
|
|
|
|
"<urn:" + method + " soapenv:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">" + |
|
|
|
|
"<InputStr xsi:type=\"xsd:string\"><Request>" + SoapHelper.requestParams("HIS", params) + "</Request></InputStr>" + |
|
|
|
|
"<InputStr xsi:type=\"xsd:string\"><Request>" + SoapHelper.requestParams("HIS", transactionCode, reqId, params) + "</Request></InputStr>" + |
|
|
|
|
"</urn:" + method + "></soapenv:Body></soapenv:Envelope>" |
|
|
|
|
); |
|
|
|
|
long endTime = System.currentTimeMillis(); // 结束时间
|
|
|
|
|
String takeTime = (endTime - begTime) + "ms"; // 耗时
|
|
|
|
|
if (hisResponse == null) { |
|
|
|
|
log.info("HIS请求无响应[{}]-耗时:[{}]", transactionCode, takeTime); |
|
|
|
|
log.info("[{}]HIS请求无响应[rid:{}]-耗时:[{}]", transactionCode, reqId, takeTime); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
//解析响应消息,使用SAXReader对象
|
|
|
|
|
org.dom4j.Document document = DocumentHelper.parseText(hisResponse); |
|
|
|
|
if (document == null) { |
|
|
|
|
log.info("HIS响应内容解析失败[{}]-耗时:[{}]-返回xml={}", transactionCode, takeTime, hisResponse); |
|
|
|
|
log.info("[{}]HIS响应内容解析失败[rid:{}]-耗时:[{}]-返回xml={}", transactionCode, reqId, takeTime, hisResponse); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<Node> nodes = document.selectNodes("//return"); |
|
|
|
|
if (nodes.isEmpty()) { |
|
|
|
|
log.info("HIS请求失败[{}]-耗时:[{}]-返回xml={}", transactionCode, takeTime, hisResponse); |
|
|
|
|
log.info("[{}]HIS请求失败[rid:{}]-耗时:[{}]-返回xml={}", transactionCode, reqId, takeTime, hisResponse); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Element element = (Element) nodes.get(0); |
|
|
|
|
result = element.getText(); |
|
|
|
|
if (hisEnum.IS_LOG_RESP) { // 是否打印返回的xml
|
|
|
|
|
log.info("HIS请求成功[{}]-耗时:[{}]-返回xml={}", transactionCode, takeTime, result); |
|
|
|
|
log.info("[{}]HIS请求成功[rid:{}]-耗时:[{}]-返回xml={}", transactionCode, reqId, takeTime, result); |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
if (IS_LOG_RESP) { // 配置文件强制要求打印xml
|
|
|
|
|
if (!HisEnum.AP_Query_Statement.equals(hisEnum) && !HisEnum.Query_Area.equals(hisEnum)) { |
|
|
|
|
log.info("[强制打印]HIS请求成功[{}]-耗时:[{}]-返回xml={}", transactionCode, takeTime, result); |
|
|
|
|
log.info("[强制打印][{}]HIS请求成功[rid:{}]-耗时:[{}]-返回xml={}", transactionCode, reqId, takeTime, result); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -260,43 +216,6 @@ public class HisHelper { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// /**
|
|
|
|
|
// * xml响应数据组装成为JSON数据
|
|
|
|
|
// *
|
|
|
|
|
// * @param xml xml
|
|
|
|
|
// * @return 封装好的对象
|
|
|
|
|
// */
|
|
|
|
|
// public static HisResult xmlToBean(String xml) {
|
|
|
|
|
// if (xml == null || "".equals(xml)) {
|
|
|
|
|
// log.info("HIS response xml is null");
|
|
|
|
|
// return HisResult.createErrorHisResult("[HIS]获取xml数据失败");
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// JSONObject respObj;
|
|
|
|
|
// try {
|
|
|
|
|
// Document document = DocumentHelper.parseText(xml);
|
|
|
|
|
// Element root = document.getRootElement(); // 获取根节点元素对象
|
|
|
|
|
// respObj = HisResult.nodeToJsonObject(root);
|
|
|
|
|
// Map<String, Object> map = new HashMap<>();
|
|
|
|
|
// Set<String> keys = respObj.keySet();
|
|
|
|
|
// for (String key : keys) {
|
|
|
|
|
// if (!key.equals("TransactionCode") && !key.equals("ResponseCode") && !key.equals("ResponseMessage") && !key.equals("PatientName")) {
|
|
|
|
|
// map.put(key, respObj.getString(key));
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// respObj.put("DataMap", map);
|
|
|
|
|
// } catch (DocumentException e) {
|
|
|
|
|
// ErrorHelper.println(e);
|
|
|
|
|
// return HisResult.createErrorHisResult(e.getMessage());
|
|
|
|
|
// }
|
|
|
|
|
// HisResult hisResult = JSON.toJavaObject(respObj, HisResult.class);
|
|
|
|
|
// if (hisResult.getResponseCode() != 0) {
|
|
|
|
|
// log.info("HIS Error Message:[{}]", hisResult.getResponseMessage());
|
|
|
|
|
// }
|
|
|
|
|
// return hisResult;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* xml响应数据组装成为JSON数据 |
|
|
|
|
* |
|
|
|
@ -310,20 +229,12 @@ public class HisHelper { |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* [支付宝] xml响应数据组装成为JSON数据 |
|
|
|
|
* |
|
|
|
|
* @param hisEnum 接口枚举 |
|
|
|
|
* @param params 参数 |
|
|
|
|
* @param merchantEnum 支付类型 |
|
|
|
|
* @return JsonResult |
|
|
|
|
*/ |
|
|
|
|
public static JsonResult getJsonResult(HisEnum hisEnum, Map<String, Object> params, MerchantEnum merchantEnum) { |
|
|
|
|
JsonResult result = JsonResult.xmlToBean(getResponseXml(hisEnum, params, merchantEnum), JsonResultEnum.SYS_HIS); |
|
|
|
|
if (result == null) { // 如果返回为空可能为超时
|
|
|
|
|
return createTimeoutResult(); |
|
|
|
|
public static void putAliCallNo(MerchantEnum merchantEnum, Map<String, Object> params) { |
|
|
|
|
if (IS_ALI_MER && params != null && merchantEnum != null) { |
|
|
|
|
if (merchantEnum.equals(MerchantEnum.ALI) || merchantEnum.equals(MerchantEnum.ALI_MEDICAL)) { |
|
|
|
|
params.put("CallNo", ALI_CALL_NO); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -331,55 +242,39 @@ public class HisHelper { |
|
|
|
|
* |
|
|
|
|
* @return 封装好的对象 |
|
|
|
|
*/ |
|
|
|
|
public static JsonResult getJsonResult(HisEnum hisEnum, JsonResult.MapParams params) { |
|
|
|
|
Map<String, Object> requestParams = new HashMap<>(); |
|
|
|
|
if (params != null) { |
|
|
|
|
params.setParams(requestParams); |
|
|
|
|
} |
|
|
|
|
return getJsonResult(hisEnum, requestParams); |
|
|
|
|
public static JsonResult getJsonResultByMer(HisEnum hisEnum, MerchantEnum merchantEnum, Map<String, Object> params) { |
|
|
|
|
putAliCallNo(merchantEnum, params); |
|
|
|
|
return getJsonResult(hisEnum, params); |
|
|
|
|
} |
|
|
|
|
// <TransactionCode>4004</TransactionCode>
|
|
|
|
|
// <CallNo>675448357</CallNo>
|
|
|
|
|
// <CallNo>843242395</CallNo>
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* xml响应数据组装成为JSON数据 |
|
|
|
|
* |
|
|
|
|
* @return 封装好的对象 |
|
|
|
|
*/ |
|
|
|
|
public static JsonResult getJsonResult(HisEnum hisEnum, JsonResult.MapParams params, MerchantEnum merchantEnum) { |
|
|
|
|
public static JsonResult getJsonResult(HisEnum hisEnum, JsonResult.MapParams params) { |
|
|
|
|
Map<String, Object> requestParams = new HashMap<>(); |
|
|
|
|
if (params != null) { |
|
|
|
|
params.setParams(requestParams); |
|
|
|
|
} |
|
|
|
|
return getJsonResult(hisEnum, requestParams, merchantEnum); |
|
|
|
|
return getJsonResult(hisEnum, requestParams); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
|
// 测试环境
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* xml响应数据组装成为JSON数据 |
|
|
|
|
* |
|
|
|
|
* @return 封装好的对象 |
|
|
|
|
*/ |
|
|
|
|
public static JsonResult getDevJsonResult(HisEnum hisEnum, Map<String, Object> params) { |
|
|
|
|
JsonResult result = JsonResult.xmlToBean(getDevResponseXml(hisEnum, params), JsonResultEnum.SYS_HIS); |
|
|
|
|
if (result == null) { // 如果返回为空可能为超时
|
|
|
|
|
return createTimeoutResult(); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* xml响应数据组装成为JSON数据 |
|
|
|
|
* |
|
|
|
|
* @return 封装好的对象 |
|
|
|
|
*/ |
|
|
|
|
public static JsonResult getDevJsonResult(HisEnum hisEnum, JsonResult.MapParams params) { |
|
|
|
|
public static JsonResult getJsonResultByMer(HisEnum hisEnum, MerchantEnum merchantEnum, JsonResult.MapParams params) { |
|
|
|
|
Map<String, Object> requestParams = new HashMap<>(); |
|
|
|
|
if (params != null) { |
|
|
|
|
params.setParams(requestParams); |
|
|
|
|
} |
|
|
|
|
return getDevJsonResult(hisEnum, requestParams); |
|
|
|
|
return getJsonResultByMer(hisEnum, merchantEnum, requestParams); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -419,4 +314,93 @@ public class HisHelper { |
|
|
|
|
return sb.toString(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// /**
|
|
|
|
|
// * [支付宝] xml响应数据组装成为JSON数据
|
|
|
|
|
// *
|
|
|
|
|
// * @param hisEnum 接口枚举
|
|
|
|
|
// * @param params 参数
|
|
|
|
|
// * @param merchantEnum 支付类型
|
|
|
|
|
// * @return JsonResult
|
|
|
|
|
// */
|
|
|
|
|
// public static JsonResult getJsonResult(HisEnum hisEnum, Map<String, Object> params, MerchantEnum merchantEnum) {
|
|
|
|
|
// JsonResult result = JsonResult.xmlToBean(getResponseXml(hisEnum, params, merchantEnum), JsonResultEnum.SYS_HIS);
|
|
|
|
|
// if (result == null) { // 如果返回为空可能为超时
|
|
|
|
|
// return createTimeoutResult();
|
|
|
|
|
// }
|
|
|
|
|
// return result;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// /**
|
|
|
|
|
// * xml响应数据组装成为JSON数据
|
|
|
|
|
// *
|
|
|
|
|
// * @return 封装好的对象
|
|
|
|
|
// */
|
|
|
|
|
// public static JsonResult getJsonResult(HisEnum hisEnum, JsonResult.MapParams params, MerchantEnum merchantEnum) {
|
|
|
|
|
// Map<String, Object> requestParams = new HashMap<>();
|
|
|
|
|
// if (params != null) {
|
|
|
|
|
// params.setParams(requestParams);
|
|
|
|
|
// }
|
|
|
|
|
// return getJsonResult(hisEnum, requestParams, merchantEnum);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// /**
|
|
|
|
|
// * 根据订单号获取类型
|
|
|
|
|
// *
|
|
|
|
|
// * @param bankTransNo 交易流水号
|
|
|
|
|
// * @param tradeNo HIS订单号
|
|
|
|
|
// * @return 类型
|
|
|
|
|
// */
|
|
|
|
|
// public static String getTypeByPEnum(String bankTransNo, String tradeNo) throws ServiceException {
|
|
|
|
|
// if (!PayService.isNewOrder(bankTransNo, tradeNo)) {
|
|
|
|
|
// throw new ServiceException(ResultEnum.REFUND_IS_OLD_ORDER_NUM);
|
|
|
|
|
// }
|
|
|
|
|
// int len = tradeNo.length();
|
|
|
|
|
// String middleCode1 = tradeNo.substring(len - 4, len - 3);
|
|
|
|
|
// String middleCode2 = tradeNo.substring(len - 4, len - 2);
|
|
|
|
|
// for (PEnum item : PEnum.values()) {
|
|
|
|
|
// if (item.ORDER_CODE.equals(middleCode1) || item.ORDER_CODE.equals(middleCode2)) {
|
|
|
|
|
// return item.CODE;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// return null;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// /**
|
|
|
|
|
// * xml响应数据组装成为JSON数据
|
|
|
|
|
// *
|
|
|
|
|
// * @param xml xml
|
|
|
|
|
// * @return 封装好的对象
|
|
|
|
|
// */
|
|
|
|
|
// public static HisResult xmlToBean(String xml) {
|
|
|
|
|
// if (xml == null || "".equals(xml)) {
|
|
|
|
|
// log.info("HIS response xml is null");
|
|
|
|
|
// return HisResult.createErrorHisResult("[HIS]获取xml数据失败");
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// JSONObject respObj;
|
|
|
|
|
// try {
|
|
|
|
|
// Document document = DocumentHelper.parseText(xml);
|
|
|
|
|
// Element root = document.getRootElement(); // 获取根节点元素对象
|
|
|
|
|
// respObj = HisResult.nodeToJsonObject(root);
|
|
|
|
|
// Map<String, Object> map = new HashMap<>();
|
|
|
|
|
// Set<String> keys = respObj.keySet();
|
|
|
|
|
// for (String key : keys) {
|
|
|
|
|
// if (!key.equals("TransactionCode") && !key.equals("ResponseCode") && !key.equals("ResponseMessage") && !key.equals("PatientName")) {
|
|
|
|
|
// map.put(key, respObj.getString(key));
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// respObj.put("DataMap", map);
|
|
|
|
|
// } catch (DocumentException e) {
|
|
|
|
|
// ErrorHelper.println(e);
|
|
|
|
|
// return HisResult.createErrorHisResult(e.getMessage());
|
|
|
|
|
// }
|
|
|
|
|
// HisResult hisResult = JSON.toJavaObject(respObj, HisResult.class);
|
|
|
|
|
// if (hisResult.getResponseCode() != 0) {
|
|
|
|
|
// log.info("HIS Error Message:[{}]", hisResult.getResponseMessage());
|
|
|
|
|
// }
|
|
|
|
|
// return hisResult;
|
|
|
|
|
// }
|
|
|
|
|
} |
|
|
|
|