|
|
|
@ -1,4 +1,4 @@ |
|
|
|
//package com.ynxbd.common.his;
|
|
|
|
//package com.ynxbd.common.his.old;
|
|
|
|
//
|
|
|
|
//
|
|
|
|
//import com.ynxbd.common.action.pay.PEnum;
|
|
|
|
//import com.ynxbd.common.action.pay.PEnum;
|
|
|
|
//import com.ynxbd.common.bean.enums.MerchantEnum;
|
|
|
|
//import com.ynxbd.common.bean.enums.MerchantEnum;
|
|
|
|
@ -8,6 +8,7 @@ |
|
|
|
//import com.ynxbd.common.helper.common.ErrorHelper;
|
|
|
|
//import com.ynxbd.common.helper.common.ErrorHelper;
|
|
|
|
//import com.ynxbd.common.helper.common.SnowHelper;
|
|
|
|
//import com.ynxbd.common.helper.common.SnowHelper;
|
|
|
|
//import com.ynxbd.common.helper.common.SoapHelper;
|
|
|
|
//import com.ynxbd.common.helper.common.SoapHelper;
|
|
|
|
|
|
|
|
//import com.ynxbd.common.his.HisEnum;
|
|
|
|
//import com.ynxbd.common.result.JsonResult;
|
|
|
|
//import com.ynxbd.common.result.JsonResult;
|
|
|
|
//import com.ynxbd.common.result.JsonResultEnum;
|
|
|
|
//import com.ynxbd.common.result.JsonResultEnum;
|
|
|
|
//import lombok.extern.slf4j.Slf4j;
|
|
|
|
//import lombok.extern.slf4j.Slf4j;
|
|
|
|
@ -20,10 +21,82 @@ |
|
|
|
//import java.util.HashMap;
|
|
|
|
//import java.util.HashMap;
|
|
|
|
//import java.util.List;
|
|
|
|
//import java.util.List;
|
|
|
|
//import java.util.Map;
|
|
|
|
//import java.util.Map;
|
|
|
|
//import java.util.UUID;
|
|
|
|
|
|
|
|
//
|
|
|
|
//
|
|
|
|
//@Slf4j
|
|
|
|
//@Slf4j
|
|
|
|
//public class HisHelper {
|
|
|
|
//public class HisHelper2 {
|
|
|
|
|
|
|
|
// 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 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;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// // webService请求地址
|
|
|
|
|
|
|
|
// protected static final String HIS_SOAP_URL;
|
|
|
|
|
|
|
|
// protected static final String HIS_SOAP_DEV_URL;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// // HIS医保环境
|
|
|
|
|
|
|
|
//// protected static final String HIS_DEV_MI_URL;
|
|
|
|
|
|
|
|
//// protected static final String HIS_PROD_MI_URL;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// protected static final String HIS_WX_MED_URL;
|
|
|
|
|
|
|
|
// protected static final String HIS_ALI_MED_URL;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// // 是否强制打印HIS响应的xml
|
|
|
|
|
|
|
|
// private static final Boolean IS_LOG_RESP;
|
|
|
|
|
|
|
|
// // 是否使用"<![CDATA[]]>"阻止解析
|
|
|
|
|
|
|
|
// private static final Boolean IS_REQ_CDATA;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// // 是否传递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;
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// static {
|
|
|
|
|
|
|
|
// ProperHelper config = new ProperHelper().read("webservice.properties");
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// String url = config.getString("his.url");
|
|
|
|
|
|
|
|
// String devUrl = config.getString("his.dev_url");
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// // 医保---------------------------------------------------------
|
|
|
|
|
|
|
|
// String mdUrl = config.getString("his.md_url"); // 微信医保旧版地址
|
|
|
|
|
|
|
|
// String wxMedUrl = config.getString("his.wx_med_url");
|
|
|
|
|
|
|
|
// String aliMedUrl = config.getString("his.ali_med_url");
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// 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_REQ_CDATA = config.getBoolean("his.is_req_cdata", false);
|
|
|
|
|
|
|
|
// IS_RX_PREPAY = config.getBoolean("his.is_recipe_prepay", false);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// if (url == null) {
|
|
|
|
|
|
|
|
// log.error("WebService配置文件读取失败");
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// HIS_SOAP_URL = initSoapURL(url);
|
|
|
|
|
|
|
|
// HIS_SOAP_DEV_URL = initSoapURL(devUrl);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// // 医保---------------------------------
|
|
|
|
|
|
|
|
// HIS_WX_MED_URL = initSoapURL(wxMedUrl == null ? mdUrl : wxMedUrl);
|
|
|
|
|
|
|
|
// HIS_ALI_MED_URL = initSoapURL(aliMedUrl);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// private static String initSoapURL(String ip) {
|
|
|
|
|
|
|
|
// if (ObjectUtils.isEmpty(ip)) {
|
|
|
|
|
|
|
|
// return null;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// if (ip.contains("http")) {
|
|
|
|
|
|
|
|
// return ip;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// return "http://" + ip + "/WebService_AB.dll/soap/IInterface_AB";
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
// /**
|
|
|
|
// /**
|
|
|
|
// * 生成HIS订单号
|
|
|
|
// * 生成HIS订单号
|
|
|
|
// */
|
|
|
|
// */
|
|
|
|
@ -63,7 +136,7 @@ |
|
|
|
// * @return 响应的xml数据
|
|
|
|
// * @return 响应的xml数据
|
|
|
|
// */
|
|
|
|
// */
|
|
|
|
// public static String getResponseXml(HisEnum hisEnum, Map<String, Object> params) {
|
|
|
|
// public static String getResponseXml(HisEnum hisEnum, Map<String, Object> params) {
|
|
|
|
// return getResponseXml(hisEnum, HisConfig.HIS_SOAP_URL, params);
|
|
|
|
// return getResponseXml(hisEnum, HIS_SOAP_URL, params);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// /**
|
|
|
|
// /**
|
|
|
|
@ -96,22 +169,22 @@ |
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// Object callNo = params.get("CallNo");
|
|
|
|
// Object callNo = params.get("CallNo");
|
|
|
|
// if (ObjectUtils.isEmpty(callNo)) {
|
|
|
|
// if (ObjectUtils.isEmpty(callNo)) {
|
|
|
|
// params.put("CallNo", HisConfig.WECHAT_CALL_NO);
|
|
|
|
// params.put("CallNo", WECHAT_CALL_NO);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// params.put("TransactionCode", transactionCode);
|
|
|
|
// params.put("TransactionCode", transactionCode);
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// String result = null;
|
|
|
|
// String result = null;
|
|
|
|
// try {
|
|
|
|
// try {
|
|
|
|
// String reqId = UUID.randomUUID().toString();
|
|
|
|
// String reqId = SnowHelper.nextStrId();
|
|
|
|
// long begTime = System.currentTimeMillis(); // 开始时间
|
|
|
|
// long begTime = System.currentTimeMillis(); // 开始时间
|
|
|
|
// String hisResponse = SoapHelper.post("HIS", soapUrl, null, HisConfig.SOAP_ENV +
|
|
|
|
// String hisResponse = SoapHelper.post("HIS", soapUrl, null, SOAP_ENV +
|
|
|
|
// "xmlns:urn=\"urn:Interface_ABIntf-IInterface_AB\">" +
|
|
|
|
// "xmlns:urn=\"urn:Interface_ABIntf-IInterface_AB\">" +
|
|
|
|
// "<soapenv:Header/><soapenv:Body>" +
|
|
|
|
// "<soapenv:Header/><soapenv:Body>" +
|
|
|
|
// "<urn:" + method + " soapenv:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">" +
|
|
|
|
// "<urn:" + method + " soapenv:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">" +
|
|
|
|
// "<InputStr xsi:type=\"xsd:string\">" +
|
|
|
|
// "<InputStr xsi:type=\"xsd:string\">" +
|
|
|
|
// (HisConfig.IS_REQ_CDATA ? "<![CDATA[" : "") +
|
|
|
|
// (IS_REQ_CDATA ? "<![CDATA[" : "") +
|
|
|
|
// "<Request>" + SoapHelper.requestParams("HIS", transactionCode, reqId, params) + "</Request>" +
|
|
|
|
// "<Request>" + SoapHelper.requestParams("HIS", transactionCode, reqId, params) + "</Request>" +
|
|
|
|
// (HisConfig.IS_REQ_CDATA ? "]]>" : "") +
|
|
|
|
// (IS_REQ_CDATA ? "]]>" : "") +
|
|
|
|
// "</InputStr></urn:" + method + "></soapenv:Body></soapenv:Envelope>"
|
|
|
|
// "</InputStr></urn:" + method + "></soapenv:Body></soapenv:Envelope>"
|
|
|
|
// );
|
|
|
|
// );
|
|
|
|
// long endTime = System.currentTimeMillis(); // 结束时间
|
|
|
|
// long endTime = System.currentTimeMillis(); // 结束时间
|
|
|
|
@ -140,7 +213,7 @@ |
|
|
|
// log.info("[{}]HIS请求成功[rid:{}]-耗时:[{}]-返回xml={}", transactionCode, reqId, takeTime, result);
|
|
|
|
// log.info("[{}]HIS请求成功[rid:{}]-耗时:[{}]-返回xml={}", transactionCode, reqId, takeTime, result);
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// } else {
|
|
|
|
// } else {
|
|
|
|
// if (HisConfig.IS_LOG_RESP) { // 配置文件强制要求打印xml
|
|
|
|
// if (IS_LOG_RESP) { // 配置文件强制要求打印xml
|
|
|
|
// if (!HisEnum.AP_Query_Statement.equals(hisEnum) && !HisEnum.Query_Area.equals(hisEnum)) {
|
|
|
|
// if (!HisEnum.AP_Query_Statement.equals(hisEnum) && !HisEnum.Query_Area.equals(hisEnum)) {
|
|
|
|
// log.info("[强制打印][{}]HIS请求成功[rid:{}]-耗时:[{}]-返回xml={}", transactionCode, reqId, takeTime, result);
|
|
|
|
// log.info("[强制打印][{}]HIS请求成功[rid:{}]-耗时:[{}]-返回xml={}", transactionCode, reqId, takeTime, result);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
@ -167,9 +240,9 @@ |
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// public static void putAliCallNo(MerchantEnum merchantEnum, Map<String, Object> params) {
|
|
|
|
// public static void putAliCallNo(MerchantEnum merchantEnum, Map<String, Object> params) {
|
|
|
|
// if (HisConfig.IS_ALI_MER && params != null && merchantEnum != null) {
|
|
|
|
// if (IS_ALI_MER && params != null && merchantEnum != null) {
|
|
|
|
// if (merchantEnum.equals(MerchantEnum.ALI) || merchantEnum.equals(MerchantEnum.ALI_MEDICAL)) {
|
|
|
|
// if (merchantEnum.equals(MerchantEnum.ALI) || merchantEnum.equals(MerchantEnum.ALI_MEDICAL)) {
|
|
|
|
// params.put("CallNo", HisConfig.ALI_CALL_NO);
|
|
|
|
// params.put("CallNo", ALI_CALL_NO);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|