2025-07-23 09:55:50 +08:00
|
|
|
|
package com.saye.hospitalgd.util;
|
|
|
|
|
|
|
|
|
|
|
|
import com.saye.hospitalgd.commons.date.DateDUtil;
|
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
import org.dom4j.Document;
|
|
|
|
|
|
import org.dom4j.DocumentHelper;
|
|
|
|
|
|
import org.dom4j.Element;
|
|
|
|
|
|
import org.springframework.http.HttpEntity;
|
|
|
|
|
|
import org.springframework.http.HttpHeaders;
|
|
|
|
|
|
import org.springframework.http.MediaType;
|
|
|
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
|
import java.util.Iterator;
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @author thuang
|
|
|
|
|
|
* @version 1.0
|
|
|
|
|
|
* @description: inputXml需要将尖括号替换为转义字符
|
|
|
|
|
|
* @date 2021/9/17 15:43
|
|
|
|
|
|
*/
|
|
|
|
|
|
@Slf4j
|
|
|
|
|
|
public class HisUtil {
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @description: 获取his数据(中联)
|
|
|
|
|
|
* @author thuang
|
|
|
|
|
|
* @date 2021/9/29 13:59
|
|
|
|
|
|
* @version 1.0
|
|
|
|
|
|
*/
|
|
|
|
|
|
public HashMap<String, String> getHisDataByZL(String url, String businessNo, String inputXml) {
|
|
|
|
|
|
HashMap<String, String> resultMap = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
String errCode = "0";
|
|
|
|
|
|
String errMsg = "";
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
RestTemplate restTemplate = RestTemplateUtil.getInstance();
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个请求头对象
|
|
|
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
|
|
|
|
MediaType type = MediaType.parseMediaType("text/xml;charset=UTF-8");
|
|
|
|
|
|
// 设置请求头对象contentTyp的为text/xml;charset=UTF-8
|
|
|
|
|
|
headers.setContentType(type);
|
|
|
|
|
|
|
|
|
|
|
|
// 将请求参数进行封装并进行远程接口服务调用
|
|
|
|
|
|
// 构造webservice请求参数
|
|
|
|
|
|
StringBuffer soapRequestData = new StringBuffer("");
|
|
|
|
|
|
soapRequestData.append("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\">");
|
|
|
|
|
|
soapRequestData.append("<soapenv:Header/>");
|
|
|
|
|
|
soapRequestData.append("<soapenv:Body>");
|
|
|
|
|
|
soapRequestData.append("<tem:MOP_PatHosPayDetailQuery>");
|
|
|
|
|
|
// soapRequestData.append("<tem:BusinessNo>");
|
|
|
|
|
|
|
|
|
|
|
|
//传入交易编号
|
|
|
|
|
|
// soapRequestData.append(businessNo);
|
|
|
|
|
|
|
|
|
|
|
|
// soapRequestData.append("</tem:BusinessNo>");
|
|
|
|
|
|
soapRequestData.append("<tem:InMsg>");
|
|
|
|
|
|
|
|
|
|
|
|
//传入参数 < > 符号需要转义
|
|
|
|
|
|
inputXml = inputXml.replaceAll("<", "<");
|
|
|
|
|
|
inputXml = inputXml.replaceAll(">", ">");
|
|
|
|
|
|
|
|
|
|
|
|
soapRequestData.append(inputXml);
|
|
|
|
|
|
|
|
|
|
|
|
soapRequestData.append("</tem:InMsg>");
|
|
|
|
|
|
soapRequestData.append("</tem:MOP_PatHosPayDetailQuery>");
|
|
|
|
|
|
soapRequestData.append("</soapenv:Body>");
|
|
|
|
|
|
soapRequestData.append("</soapenv:Envelope>");
|
|
|
|
|
|
|
|
|
|
|
|
// 创建请求
|
|
|
|
|
|
HttpEntity<String> request = new HttpEntity<String>(soapRequestData + "", headers);
|
|
|
|
|
|
|
|
|
|
|
|
// 发送post请求并获取到响应结果
|
|
|
|
|
|
String str = restTemplate.postForObject(url, request, String.class);
|
|
|
|
|
|
Document document = DocumentHelper.parseText(str);
|
|
|
|
|
|
|
|
|
|
|
|
Element rootElt = document.getRootElement();
|
|
|
|
|
|
|
|
|
|
|
|
//直接获取body
|
|
|
|
|
|
Iterator body = rootElt.elementIterator("Body");
|
|
|
|
|
|
Element recordEless = (Element) body.next();
|
|
|
|
|
|
|
|
|
|
|
|
Iterator callHisResponse = recordEless.elementIterator("MOP_PatHosPayDetailQueryResponse");
|
|
|
|
|
|
Element hisResponse = (Element) callHisResponse.next();
|
|
|
|
|
|
|
|
|
|
|
|
Iterator callHisResult = hisResponse.elementIterator("MOP_PatHosPayDetailQueryResult");
|
|
|
|
|
|
Element hisResult = (Element) callHisResult.next();
|
|
|
|
|
|
|
|
|
|
|
|
String text = hisResult.getText();
|
|
|
|
|
|
|
|
|
|
|
|
resultMap.put("dataStr", text);
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
|
|
|
|
errCode = "999";
|
|
|
|
|
|
errMsg = "调用his接口失败,原因" + e.getMessage();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
resultMap.put("errCode", errCode);
|
|
|
|
|
|
resultMap.put("errMsg", errMsg);
|
|
|
|
|
|
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @description: 解析返回的内容.获取其中的His对账数据(中联)
|
|
|
|
|
|
* @author thuang
|
|
|
|
|
|
* @date 2021/9/29 14:04
|
|
|
|
|
|
* @version 1.0
|
|
|
|
|
|
*/
|
|
|
|
|
|
public HashMap<String, Object> managerDataStrByZL(String dataStr) {
|
|
|
|
|
|
HashMap<String, Object> resultMap = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
String errCode = "0";
|
|
|
|
|
|
String errMsg = "";
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
dataStr = dataStr.replaceAll("<", "<");
|
|
|
|
|
|
dataStr = dataStr.replaceAll(">", ">");
|
|
|
|
|
|
|
|
|
|
|
|
Document document = DocumentHelper.parseText(dataStr);
|
|
|
|
|
|
|
|
|
|
|
|
Element rootElt = document.getRootElement();
|
|
|
|
|
|
|
|
|
|
|
|
Iterator iterator = rootElt.elementIterator();
|
|
|
|
|
|
|
|
|
|
|
|
Element returnResult = (Element) iterator.next();//returnResult
|
|
|
|
|
|
Element returnCode = returnResult.element("returncode");
|
|
|
|
|
|
Element ErrorMsg = returnResult.element("errormsg");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!"1".equals(returnCode.getText())) {
|
|
|
|
|
|
errCode = returnCode.getText();
|
|
|
|
|
|
errMsg = ErrorMsg.getText();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//如果正确 开始解析
|
|
|
|
|
|
if ("1".equals(returnCode.getText())) {
|
|
|
|
|
|
List<HashMap<Object, Object>> addList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
Element Items = (Element) iterator.next();
|
|
|
|
|
|
|
|
|
|
|
|
Iterator itemIterator = Items.elementIterator();
|
|
|
|
|
|
|
|
|
|
|
|
while (itemIterator.hasNext()) {
|
|
|
|
|
|
HashMap<Object, Object> addMap = new HashMap<>();
|
|
|
|
|
|
Element item = (Element) itemIterator.next();
|
|
|
|
|
|
|
|
|
|
|
|
Element visitzOrg = item.element("VisitzOrg");
|
|
|
|
|
|
String visitzOrgText = visitzOrg.getText();
|
|
|
|
|
|
|
|
|
|
|
|
Element bizType = item.element("BizType");
|
|
|
|
|
|
String bizTypeText = bizType.getText();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Element payType = item.element("PayType");
|
|
|
|
|
|
String payTypeText = payType.getText();
|
|
|
|
|
|
|
|
|
|
|
|
Element amount = item.element("Amount");
|
|
|
|
|
|
String amountText = amount.getText();
|
|
|
|
|
|
|
|
|
|
|
|
Element zfAmount = item.element("ZFAmount");
|
|
|
|
|
|
String zfAmountText = zfAmount.getText();
|
|
|
|
|
|
|
|
|
|
|
|
Element ybzhAmount = item.element("YBZHAmount");
|
|
|
|
|
|
String ybzhAmountText = ybzhAmount.getText();
|
|
|
|
|
|
|
|
|
|
|
|
Element ybtcAmount = item.element("YBTCAmount");
|
|
|
|
|
|
String ybtcAmountText = ybtcAmount.getText();
|
|
|
|
|
|
|
|
|
|
|
|
Element receiptNo = item.element("ReceiptNO");
|
|
|
|
|
|
String receiptNoText = receiptNo.getText();
|
|
|
|
|
|
|
|
|
|
|
|
Element invnum = item.element("InvNum");
|
|
|
|
|
|
String invnumText = invnum.getText();
|
|
|
|
|
|
|
|
|
|
|
|
Element patientID = item.element("PatientID");
|
|
|
|
|
|
String patientIDText = patientID.getText();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Element inhosnum = item.element("InHosNum");
|
|
|
|
|
|
String inhosnumText = inhosnum.getText();
|
|
|
|
|
|
|
|
|
|
|
|
Element patientName = item.element("PatientName");
|
|
|
|
|
|
String patientNameText = patientName.getText();
|
|
|
|
|
|
|
|
|
|
|
|
Element tradeTime = item.element("TradeTime");
|
|
|
|
|
|
String tradeTimeText = tradeTime.getText();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Element hisTime = item.element("HisTime");
|
|
|
|
|
|
String hisTimeText = hisTime.getText();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Element hisOperNum = item.element("HisOperNum");
|
|
|
|
|
|
String hisOperNumText = hisOperNum.getText();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Element tranID = item.element("PowerTranID");
|
|
|
|
|
|
String tranIDText = tranID.getText();
|
|
|
|
|
|
|
|
|
|
|
|
addMap.put("visitzOrg", visitzOrgText);
|
|
|
|
|
|
addMap.put("bizType", bizTypeText);
|
|
|
|
|
|
addMap.put("payType", payTypeText);
|
|
|
|
|
|
addMap.put("amount", amountText);
|
|
|
|
|
|
addMap.put("zfAmount", zfAmountText);
|
|
|
|
|
|
addMap.put("ybzhAmount", ybzhAmountText);
|
|
|
|
|
|
addMap.put("ybtcAmount", ybtcAmountText);
|
|
|
|
|
|
addMap.put("receiptNo", receiptNoText);
|
|
|
|
|
|
addMap.put("invnum", invnumText);
|
|
|
|
|
|
addMap.put("patientID", patientIDText);
|
|
|
|
|
|
addMap.put("inhosnum", inhosnumText);
|
|
|
|
|
|
addMap.put("patientName", patientNameText);
|
|
|
|
|
|
|
|
|
|
|
|
String trade_date = "";
|
|
|
|
|
|
String TradeTime = "";
|
|
|
|
|
|
|
|
|
|
|
|
String[] s = hisTimeText.split(" ");
|
|
|
|
|
|
trade_date = s[0];
|
|
|
|
|
|
TradeTime = s[1];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
addMap.put("trade_date", trade_date + "");
|
|
|
|
|
|
|
|
|
|
|
|
addMap.put("tradeTime", TradeTime);
|
|
|
|
|
|
addMap.put("hisTime", hisTimeText);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
addMap.put("hisOperNum", hisOperNumText);
|
|
|
|
|
|
addMap.put("tranID", tranIDText);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
addList.add(addMap);
|
|
|
|
|
|
}
|
|
|
|
|
|
resultMap.put("addList", addList);
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
errCode = "999";
|
|
|
|
|
|
errMsg = "his数据字符串中提取数据失败,原因:" + e.getMessage();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
resultMap.put("errCode", errCode);
|
|
|
|
|
|
resultMap.put("errMsg", errMsg);
|
|
|
|
|
|
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @description: 获取his数据(卫宁)
|
|
|
|
|
|
* @author thuang
|
|
|
|
|
|
* @date 2021/10/13 10:17
|
|
|
|
|
|
* @version 1.0
|
|
|
|
|
|
*/
|
|
|
|
|
|
public HashMap<String, String> getHisDataByWN(String url, String tranCode, String inputXml) {
|
|
|
|
|
|
HashMap<String, String> resultMap = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
String errCode = "0";
|
|
|
|
|
|
String errMsg = "";
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
RestTemplate restTemplate = RestTemplateUtil.getInstance();
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个请求头对象
|
|
|
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
|
|
|
|
MediaType type = MediaType.parseMediaType("text/xml;charset=UTF-8");
|
|
|
|
|
|
// 设置请求头对象contentTyp的为text/xml;charset=UTF-8
|
|
|
|
|
|
headers.setContentType(type);
|
|
|
|
|
|
|
|
|
|
|
|
// 将请求参数进行封装并进行远程接口服务调用
|
|
|
|
|
|
// 构造webservice请求参数
|
|
|
|
|
|
StringBuffer soapRequestData = new StringBuffer("");
|
|
|
|
|
|
soapRequestData.append("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:kws=\"http://www.winning.com.cn/KWS/\">");
|
|
|
|
|
|
soapRequestData.append("<soapenv:Header/>");
|
|
|
|
|
|
soapRequestData.append("<soapenv:Body>");
|
|
|
|
|
|
soapRequestData.append("<kws:WebBusiness>");
|
|
|
|
|
|
soapRequestData.append("<kws:TranCode>");
|
|
|
|
|
|
|
|
|
|
|
|
//传入交易编号
|
|
|
|
|
|
soapRequestData.append(tranCode);
|
|
|
|
|
|
|
|
|
|
|
|
soapRequestData.append("</kws:TranCode>");
|
|
|
|
|
|
soapRequestData.append("<kws:InXml>");
|
|
|
|
|
|
|
|
|
|
|
|
//传入参数 < > 符号需要转义
|
|
|
|
|
|
inputXml = inputXml.replaceAll("<", "<");
|
|
|
|
|
|
inputXml = inputXml.replaceAll(">", ">");
|
|
|
|
|
|
|
|
|
|
|
|
soapRequestData.append(inputXml);
|
|
|
|
|
|
|
|
|
|
|
|
soapRequestData.append("</kws:InXml>");
|
|
|
|
|
|
soapRequestData.append("</kws:WebBusiness>");
|
|
|
|
|
|
soapRequestData.append("</soapenv:Body>");
|
|
|
|
|
|
soapRequestData.append("</soapenv:Envelope>");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建请求
|
|
|
|
|
|
HttpEntity<String> request = new HttpEntity<String>(soapRequestData + "", headers);
|
|
|
|
|
|
|
|
|
|
|
|
// 发送post请求并获取到响应结果
|
|
|
|
|
|
String str = restTemplate.postForObject(url, request, String.class);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Document document = DocumentHelper.parseText(str);
|
|
|
|
|
|
|
|
|
|
|
|
Element rootElt = document.getRootElement();
|
|
|
|
|
|
|
|
|
|
|
|
//直接获取body
|
|
|
|
|
|
Iterator body = rootElt.elementIterator("Body");
|
|
|
|
|
|
Element recordEless = (Element) body.next();
|
|
|
|
|
|
|
|
|
|
|
|
Iterator callHisResponse = recordEless.elementIterator("WebBusinessResponse");
|
|
|
|
|
|
Element hisResponse = (Element) callHisResponse.next();
|
|
|
|
|
|
|
|
|
|
|
|
Iterator callHisResult = hisResponse.elementIterator("WebBusinessResult");
|
|
|
|
|
|
Element hisResult = (Element) callHisResult.next();
|
|
|
|
|
|
|
|
|
|
|
|
String text = hisResult.getText();
|
|
|
|
|
|
|
|
|
|
|
|
Iterator callOutXml = hisResponse.elementIterator("OutXml");
|
|
|
|
|
|
Element outXml = (Element) callOutXml.next();
|
|
|
|
|
|
String text1 = outXml.getText();
|
|
|
|
|
|
|
|
|
|
|
|
resultMap.put("dataStr", text1);
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
|
|
|
|
errCode = "999";
|
|
|
|
|
|
errMsg = "调用his接口失败,原因" + e.getMessage();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
resultMap.put("errCode", errCode);
|
|
|
|
|
|
resultMap.put("errMsg", errMsg);
|
|
|
|
|
|
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @description: 解析返回的内容.获取其中的His对账数据(卫宁)
|
|
|
|
|
|
* @author thuang
|
|
|
|
|
|
* @date 2021/9/29 14:04
|
|
|
|
|
|
* @version 1.0
|
|
|
|
|
|
*/
|
|
|
|
|
|
public HashMap<String, Object> managerDataStrByWN(String dataStr) {
|
|
|
|
|
|
HashMap<String, Object> resultMap = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
String errCode = "0";
|
|
|
|
|
|
String errMsg = "";
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
dataStr = dataStr.replaceAll("<", "<");
|
|
|
|
|
|
dataStr = dataStr.replaceAll(">", ">");
|
|
|
|
|
|
|
|
|
|
|
|
Document document = DocumentHelper.parseText(dataStr);
|
|
|
|
|
|
|
|
|
|
|
|
Element rootElt = document.getRootElement();
|
|
|
|
|
|
|
|
|
|
|
|
Iterator iterator = rootElt.elementIterator();
|
|
|
|
|
|
|
|
|
|
|
|
Element codeElm = (Element) iterator.next();
|
|
|
|
|
|
Element msgElm = (Element) iterator.next();
|
|
|
|
|
|
|
|
|
|
|
|
String code = codeElm.getText();
|
|
|
|
|
|
String msg = msgElm.getText();
|
|
|
|
|
|
|
|
|
|
|
|
if (!"0".equals(code)) {
|
|
|
|
|
|
errCode = code;
|
|
|
|
|
|
errMsg = msg;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//如果正确 开始解析
|
|
|
|
|
|
if ("0".equals(code)) {
|
|
|
|
|
|
List<HashMap<Object, Object>> addList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
Element result = (Element) iterator.next();
|
|
|
|
|
|
|
|
|
|
|
|
Iterator itemIterator = result.elementIterator();
|
|
|
|
|
|
|
|
|
|
|
|
while (itemIterator.hasNext()) {
|
|
|
|
|
|
HashMap<Object, Object> addMap = new HashMap<>();
|
|
|
|
|
|
Element item = (Element) itemIterator.next();
|
|
|
|
|
|
|
|
|
|
|
|
//数据类型 1-门诊 2-住院
|
|
|
|
|
|
Element sjlxElm = item.element("sjlx");
|
|
|
|
|
|
String sjlx = sjlxElm.getText();
|
|
|
|
|
|
|
|
|
|
|
|
//患者姓名
|
|
|
|
|
|
Element hzxmElm = item.element("hzxm");
|
|
|
|
|
|
String hzxm = hzxmElm.getText();
|
|
|
|
|
|
|
|
|
|
|
|
//患者标识
|
|
|
|
|
|
Element patidElm = item.element("patid");
|
|
|
|
|
|
String patid = patidElm.getText();
|
|
|
|
|
|
|
|
|
|
|
|
//交易金额
|
|
|
|
|
|
Element jyjeElm = item.element("jyje");
|
|
|
|
|
|
String jyje = jyjeElm.getText();
|
|
|
|
|
|
//格式化金额 原先小数四位 有效两位
|
|
|
|
|
|
jyje = new BigDecimal(jyje).setScale(2, BigDecimal.ROUND_HALF_UP).toString();
|
|
|
|
|
|
|
|
|
|
|
|
//退余金额
|
|
|
|
|
|
Element tyjeElm = item.element("tyje");
|
|
|
|
|
|
String tyje = tyjeElm.getText();
|
|
|
|
|
|
//格式化金额 原先小数四位 有效两位
|
|
|
|
|
|
tyje = new BigDecimal(tyje).setScale(2, BigDecimal.ROUND_HALF_UP).toString();
|
|
|
|
|
|
|
|
|
|
|
|
//支付流水号(平台交易号,银商订单号)
|
|
|
|
|
|
Element zflshElm = item.element("zflsh");
|
|
|
|
|
|
String zflsh = zflshElm.getText();
|
|
|
|
|
|
|
|
|
|
|
|
//交易时间
|
|
|
|
|
|
Element jyrqElm = item.element("jyrq");
|
|
|
|
|
|
String jyrq = jyrqElm.getText();
|
|
|
|
|
|
|
|
|
|
|
|
//是否退款记录
|
|
|
|
|
|
Element sftkjlElm = item.element("sftkjl");
|
|
|
|
|
|
String sftkjl = sftkjlElm.getText();
|
|
|
|
|
|
|
|
|
|
|
|
//支付方式
|
|
|
|
|
|
Element zffsElm = item.element("zffs");
|
|
|
|
|
|
String zffs = zffsElm.getText();
|
|
|
|
|
|
|
|
|
|
|
|
//交易类型
|
|
|
|
|
|
Element jylxElm = item.element("jylx");
|
|
|
|
|
|
String jylx = jylxElm.getText();
|
|
|
|
|
|
|
|
|
|
|
|
//操作员号
|
|
|
|
|
|
Element czyhElm = item.element("czyh");
|
|
|
|
|
|
String czyh = czyhElm.getText();
|
|
|
|
|
|
|
|
|
|
|
|
//交易日期
|
|
|
|
|
|
String trade_date = "";
|
|
|
|
|
|
if (jyrq.length() > 10) {
|
|
|
|
|
|
//卫宁的日期格式为yyyyMMddHH:mm:ss 格式化日期为 yyyy-MM-dd HH:mm:ss
|
|
|
|
|
|
trade_date = DateDUtil.DateToStr(DateDUtil.yyyy_MM_dd, DateDUtil.strToDate(DateDUtil.yyyyMMddHH_mm_ss, jyrq));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
addMap.put("sjlx", sjlx);
|
|
|
|
|
|
addMap.put("hzxm", hzxm);
|
|
|
|
|
|
addMap.put("patid", patid);
|
|
|
|
|
|
addMap.put("jyje", jyje);
|
|
|
|
|
|
addMap.put("tyje", tyje);
|
|
|
|
|
|
addMap.put("zflsh", zflsh);
|
|
|
|
|
|
addMap.put("jyrq", jyrq);
|
|
|
|
|
|
addMap.put("sftkjl", sftkjl);
|
|
|
|
|
|
addMap.put("zffs", zffs);
|
|
|
|
|
|
addMap.put("jylx", jylx);
|
|
|
|
|
|
addMap.put("czyh", czyh);
|
|
|
|
|
|
addMap.put("trade_date", trade_date);
|
|
|
|
|
|
|
|
|
|
|
|
addList.add(addMap);
|
|
|
|
|
|
}
|
|
|
|
|
|
resultMap.put("addList", addList);
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
errCode = "999";
|
|
|
|
|
|
errMsg = "his数据字符串中提取数据失败,原因:" + e.getMessage();
|
|
|
|
|
|
}
|
|
|
|
|
|
resultMap.put("errCode", errCode);
|
|
|
|
|
|
resultMap.put("errMsg", errMsg);
|
|
|
|
|
|
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @description: 获取his数据(弘扬)
|
|
|
|
|
|
* @author thuang
|
|
|
|
|
|
* @date 2022/1/24 10:13
|
|
|
|
|
|
* @version 1.0
|
|
|
|
|
|
*/
|
|
|
|
|
|
public HashMap<String, String> getHisDataByHY(String url, String tranCode, String inputXml) {
|
|
|
|
|
|
HashMap<String, String> resultMap = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
String errCode = "0";
|
|
|
|
|
|
String errMsg = "";
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
RestTemplate restTemplate = RestTemplateUtil.getInstance();
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个请求头对象
|
|
|
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
|
|
|
|
MediaType type = MediaType.parseMediaType("text/xml;charset=UTF-8");
|
|
|
|
|
|
// 设置请求头对象contentTyp的为text/xml;charset=UTF-8
|
|
|
|
|
|
headers.setContentType(type);
|
|
|
|
|
|
|
|
|
|
|
|
// 将请求参数进行封装并进行远程接口服务调用
|
|
|
|
|
|
// 构造webservice请求参数
|
|
|
|
|
|
StringBuffer soapRequestData = new StringBuffer("");
|
|
|
|
|
|
soapRequestData.append("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\">");
|
|
|
|
|
|
soapRequestData.append("<soapenv:Header/>");
|
|
|
|
|
|
soapRequestData.append("<soapenv:Body>");
|
|
|
|
|
|
soapRequestData.append("<tem:MOP_PatHosPayDetailQuery>");
|
|
|
|
|
|
soapRequestData.append("<tem:InMsg>");
|
|
|
|
|
|
|
|
|
|
|
|
//传入参数 < > 符号需要转义
|
|
|
|
|
|
inputXml = inputXml.replaceAll("<", "<");
|
|
|
|
|
|
inputXml = inputXml.replaceAll(">", ">");
|
|
|
|
|
|
|
|
|
|
|
|
soapRequestData.append(inputXml);
|
|
|
|
|
|
|
|
|
|
|
|
soapRequestData.append("</tem:InMsg>");
|
|
|
|
|
|
soapRequestData.append("</tem:MOP_PatHosPayDetailQuery>");
|
|
|
|
|
|
soapRequestData.append("</soapenv:Body>");
|
|
|
|
|
|
soapRequestData.append("</soapenv:Envelope>");
|
|
|
|
|
|
|
|
|
|
|
|
// 创建请求
|
|
|
|
|
|
HttpEntity<String> request = new HttpEntity<String>(soapRequestData + "", headers);
|
|
|
|
|
|
|
|
|
|
|
|
// 发送post请求并获取到响应结果
|
|
|
|
|
|
String str = restTemplate.postForObject(url, request, String.class);
|
|
|
|
|
|
|
|
|
|
|
|
Document document = DocumentHelper.parseText(str);
|
|
|
|
|
|
|
|
|
|
|
|
Element rootElt = document.getRootElement();
|
|
|
|
|
|
|
|
|
|
|
|
//直接获取body
|
|
|
|
|
|
Iterator body = rootElt.elementIterator("Body");
|
|
|
|
|
|
Element recordEless = (Element) body.next();
|
|
|
|
|
|
|
|
|
|
|
|
Iterator callHisResponse = recordEless.elementIterator("MOP_PatHosPayDetailQueryResponse");
|
|
|
|
|
|
Element hisResponse = (Element) callHisResponse.next();
|
|
|
|
|
|
|
2025-08-11 09:21:22 +08:00
|
|
|
|
// 根据新的XML结构,先获取第一个request元素
|
|
|
|
|
|
Iterator callRequest = hisResponse.elementIterator("request");
|
|
|
|
|
|
if (!callRequest.hasNext()) {
|
|
|
|
|
|
throw new RuntimeException("未找到request元素");
|
|
|
|
|
|
}
|
|
|
|
|
|
Element requestElement = (Element) callRequest.next();
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
2025-08-11 09:21:22 +08:00
|
|
|
|
// 从第一个request元素中获取第二个request元素
|
|
|
|
|
|
Iterator callSecondRequest = requestElement.elementIterator("request");
|
|
|
|
|
|
if (!callSecondRequest.hasNext()) {
|
|
|
|
|
|
throw new RuntimeException("未找到第二个request元素");
|
|
|
|
|
|
}
|
|
|
|
|
|
Element secondRequestElement = (Element) callSecondRequest.next();
|
|
|
|
|
|
|
|
|
|
|
|
// 第二个request元素本身就是OutPut_MOP_PatHosPayDetailQuery(通过xsi:type属性标识)
|
|
|
|
|
|
// 所以直接使用它,不需要再查找子元素
|
|
|
|
|
|
Element hisResult = secondRequestElement;
|
|
|
|
|
|
|
|
|
|
|
|
// 获取完整的XML内容,而不是文本内容
|
|
|
|
|
|
String text = hisResult.asXML();
|
|
|
|
|
|
|
|
|
|
|
|
System.out.println("从HIS接口获取的XML数据: " + text);
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
/*Iterator callOutXml = hisResponse.elementIterator("OutXml");
|
|
|
|
|
|
Element outXml = (Element)callOutXml.next();
|
|
|
|
|
|
String text1 = outXml.getText();
|
|
|
|
|
|
*/
|
|
|
|
|
|
resultMap.put("dataStr", text);
|
|
|
|
|
|
} catch (Exception e) {
|
2025-08-11 09:21:22 +08:00
|
|
|
|
log.error("调用his接口失败,原因", e);
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
errCode = "999";
|
|
|
|
|
|
errMsg = "调用his接口失败,原因" + e.getMessage();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
resultMap.put("errCode", errCode);
|
|
|
|
|
|
resultMap.put("errMsg", errMsg);
|
|
|
|
|
|
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @description: 解析返回的内容.获取其中的His对账数据(弘扬)
|
|
|
|
|
|
* @author thuang
|
|
|
|
|
|
* @date 2022/1/24 10:14
|
|
|
|
|
|
* @version 1.0
|
|
|
|
|
|
*/
|
|
|
|
|
|
public HashMap<String, Object> managerDataStrByHY(String dataStr) {
|
|
|
|
|
|
HashMap<String, Object> resultMap = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
String errCode = "0";
|
|
|
|
|
|
String errMsg = "";
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
2025-08-11 09:21:22 +08:00
|
|
|
|
// 检查dataStr是否为空或null
|
|
|
|
|
|
if (dataStr == null || dataStr.trim().isEmpty()) {
|
|
|
|
|
|
errCode = "999";
|
|
|
|
|
|
errMsg = "传入的XML数据为空";
|
|
|
|
|
|
resultMap.put("errCode", errCode);
|
|
|
|
|
|
resultMap.put("errMsg", errMsg);
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-23 09:55:50 +08:00
|
|
|
|
dataStr = dataStr.replaceAll("<", "<");
|
|
|
|
|
|
dataStr = dataStr.replaceAll(">", ">");
|
|
|
|
|
|
|
2025-08-11 09:21:22 +08:00
|
|
|
|
log.info("解析前的XML数据: {}", dataStr);
|
|
|
|
|
|
|
|
|
|
|
|
// 检查XML是否完整
|
|
|
|
|
|
if (!dataStr.trim().startsWith("<") || !dataStr.trim().endsWith(">")) {
|
|
|
|
|
|
errCode = "999";
|
|
|
|
|
|
errMsg = "XML数据格式不完整";
|
|
|
|
|
|
resultMap.put("errCode", errCode);
|
|
|
|
|
|
resultMap.put("errMsg", errMsg);
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
|
}
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
Document document2 = DocumentHelper.parseText(dataStr);
|
|
|
|
|
|
|
|
|
|
|
|
Element rootElt2 = document2.getRootElement();
|
|
|
|
|
|
|
2025-08-11 09:21:22 +08:00
|
|
|
|
log.info("XML根元素名称: {}", rootElt2.getName());
|
|
|
|
|
|
|
|
|
|
|
|
// 由于getHisDataByHY已经预处理了XML,这里直接查找returnresult和data元素
|
|
|
|
|
|
Element returnresultElm = rootElt2.element("returnresult");
|
|
|
|
|
|
if (returnresultElm == null) {
|
|
|
|
|
|
errCode = "999";
|
|
|
|
|
|
errMsg = "XML结构错误:没有找到returnresult元素";
|
|
|
|
|
|
resultMap.put("errCode", errCode);
|
|
|
|
|
|
resultMap.put("errMsg", errMsg);
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 查找data元素(可能有多个)
|
|
|
|
|
|
List<Element> dataElements = rootElt2.elements("data");
|
|
|
|
|
|
if (dataElements == null || dataElements.isEmpty()) {
|
|
|
|
|
|
errCode = "999";
|
|
|
|
|
|
errMsg = "XML结构错误:没有找到data元素";
|
|
|
|
|
|
resultMap.put("errCode", errCode);
|
|
|
|
|
|
resultMap.put("errMsg", errMsg);
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
|
}
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
2025-08-11 09:21:22 +08:00
|
|
|
|
log.info("找到data元素数量: {}", dataElements.size());
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
Iterator returncode = returnresultElm.elementIterator("returncode");
|
|
|
|
|
|
Iterator errormsg = returnresultElm.elementIterator("errormsg");
|
|
|
|
|
|
|
|
|
|
|
|
Element codeElm = (Element) returncode.next();
|
|
|
|
|
|
Element msgElm = (Element) errormsg.next();
|
|
|
|
|
|
|
|
|
|
|
|
String code = codeElm.getText();
|
|
|
|
|
|
String msg = msgElm.getText();
|
|
|
|
|
|
|
|
|
|
|
|
if (!"1".equals(code)) {
|
|
|
|
|
|
errCode = code;
|
|
|
|
|
|
errMsg = msg;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//如果正确 开始解析
|
|
|
|
|
|
if ("1".equals(code)) {
|
|
|
|
|
|
List<HashMap<Object, Object>> addList = new ArrayList<>();
|
|
|
|
|
|
|
2025-08-11 09:21:22 +08:00
|
|
|
|
// 遍历所有data元素
|
|
|
|
|
|
for (Element item : dataElements) {
|
2025-07-23 09:55:50 +08:00
|
|
|
|
HashMap<Object, Object> addMap = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
|
|
//数据类型 1-门诊 2-住院
|
|
|
|
|
|
Element visitzOrgElm = item.element("VisitzOrg");
|
2025-08-11 09:21:22 +08:00
|
|
|
|
String visitzOrg = visitzOrgElm != null ? visitzOrgElm.getText() : "";
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
//业务类型
|
|
|
|
|
|
Element bizTypeElm = item.element("BizType");
|
2025-08-11 09:21:22 +08:00
|
|
|
|
String bizType = bizTypeElm != null ? bizTypeElm.getText() : "";
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
//支付方式
|
|
|
|
|
|
Element payTypeElm = item.element("PayType");
|
2025-08-11 09:21:22 +08:00
|
|
|
|
String payType = payTypeElm != null ? payTypeElm.getText() : "";
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
//总金额
|
|
|
|
|
|
Element amountElm = item.element("Amount");
|
2025-08-11 09:21:22 +08:00
|
|
|
|
String amount = amountElm != null ? amountElm.getText() : "";
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
//自费支付金额
|
|
|
|
|
|
Element zfAmountElm = item.element("ZFAmount");
|
2025-08-11 09:21:22 +08:00
|
|
|
|
String zfAmount = zfAmountElm != null ? zfAmountElm.getText() : "";
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
//医保账户金额
|
|
|
|
|
|
Element ybzhAmountElm = item.element("YBZHAmount");
|
2025-08-11 09:21:22 +08:00
|
|
|
|
String ybzhAmount = ybzhAmountElm != null ? ybzhAmountElm.getText() : "";
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
//医保统筹金额
|
|
|
|
|
|
Element ybtcAmountElm = item.element("YBTCAmount");
|
2025-08-11 09:21:22 +08:00
|
|
|
|
String ybtcAmount = ybtcAmountElm != null ? ybtcAmountElm.getText() : "";
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
//收据号
|
2025-08-11 09:21:22 +08:00
|
|
|
|
Element receiptNOElm = item.element("ReceiptNO");
|
|
|
|
|
|
String receiptNO = receiptNOElm != null ? receiptNOElm.getText() : "";
|
|
|
|
|
|
|
|
|
|
|
|
//发票号
|
|
|
|
|
|
Element invNumElm = item.element("InvNum");
|
|
|
|
|
|
String invNum = invNumElm != null ? invNumElm.getText() : "";
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
//患者 ID
|
|
|
|
|
|
Element patientIDElm = item.element("PatientID");
|
2025-08-11 09:21:22 +08:00
|
|
|
|
String patientID = patientIDElm != null ? patientIDElm.getText() : "";
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
//患者姓名
|
|
|
|
|
|
Element patientNameElm = item.element("PatientName");
|
2025-08-11 09:21:22 +08:00
|
|
|
|
String patientName = patientNameElm != null ? patientNameElm.getText() : "";
|
|
|
|
|
|
|
|
|
|
|
|
//住院号
|
|
|
|
|
|
Element inHosNumElm = item.element("InHosNum");
|
|
|
|
|
|
String inHosNum = inHosNumElm != null ? inHosNumElm.getText() : "";
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
//交易时间
|
|
|
|
|
|
Element tradeTimeElm = item.element("TradeTime");
|
2025-08-11 09:21:22 +08:00
|
|
|
|
String tradeTime = tradeTimeElm != null ? tradeTimeElm.getText() : "";
|
2025-07-23 09:55:50 +08:00
|
|
|
|
|
|
|
|
|
|
//交易日期
|
|
|
|
|
|
String trade_date = "";
|
2025-08-11 09:21:22 +08:00
|
|
|
|
if (tradeTime != null && tradeTime.length() > 10) {
|
|
|
|
|
|
try {
|
|
|
|
|
|
// 处理日期格式:将 yyyy/M/d H:m:s 转换为 yyyy-MM-dd HH:mm:ss
|
|
|
|
|
|
// 例如:2024/8/7 7:55:45 -> 2024-08-07 07:55:45
|
|
|
|
|
|
String[] parts = tradeTime.split(" ");
|
|
|
|
|
|
if (parts.length == 2) {
|
|
|
|
|
|
String datePart = parts[0];
|
|
|
|
|
|
String timePart = parts[1];
|
|
|
|
|
|
|
|
|
|
|
|
String[] dateComponents = datePart.split("/");
|
|
|
|
|
|
if (dateComponents.length == 3) {
|
|
|
|
|
|
String year = dateComponents[0];
|
|
|
|
|
|
String month = String.format("%02d", Integer.parseInt(dateComponents[1]));
|
|
|
|
|
|
String day = String.format("%02d", Integer.parseInt(dateComponents[2]));
|
|
|
|
|
|
|
|
|
|
|
|
String[] timeComponents = timePart.split(":");
|
|
|
|
|
|
if (timeComponents.length == 3) {
|
|
|
|
|
|
String hour = String.format("%02d", Integer.parseInt(timeComponents[0]));
|
|
|
|
|
|
String minute = String.format("%02d", Integer.parseInt(timeComponents[1]));
|
|
|
|
|
|
String second = timeComponents[2];
|
|
|
|
|
|
|
|
|
|
|
|
String formattedDateTime = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second;
|
|
|
|
|
|
trade_date = DateDUtil.DateToStr(DateDUtil.yyyy_MM_dd, DateDUtil.strToDate(DateDUtil.yyyy_MM_dd_HH_mm_ss, formattedDateTime));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
System.out.println("日期解析失败: " + tradeTime + ", 错误: " + e.getMessage());
|
|
|
|
|
|
trade_date = "";
|
|
|
|
|
|
}
|
2025-07-23 09:55:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//HIS 业务时间
|
|
|
|
|
|
Element hisTimeElm = item.element("HisTime");
|
|
|
|
|
|
String hisTime = hisTimeElm.getText();
|
|
|
|
|
|
|
|
|
|
|
|
//操作员
|
|
|
|
|
|
Element hisOperNumElm = item.element("HisOperNum");
|
|
|
|
|
|
String hisOperNum = hisOperNumElm.getText();
|
|
|
|
|
|
|
|
|
|
|
|
//交易 ID
|
|
|
|
|
|
Element powerTranIDElm = item.element("PowerTranID");
|
|
|
|
|
|
|
|
|
|
|
|
//此处为关键id,但是由于错误数据的存在 此处还是保存下。免的说之后少获取数据
|
|
|
|
|
|
String powerTranID = "";
|
|
|
|
|
|
if (powerTranIDElm != null) {
|
|
|
|
|
|
powerTranID = powerTranIDElm.getText();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
addMap.put("visitzOrg", visitzOrg);
|
|
|
|
|
|
addMap.put("bizType", bizType);
|
|
|
|
|
|
addMap.put("payType", payType);
|
|
|
|
|
|
addMap.put("amount", amount);
|
|
|
|
|
|
addMap.put("zfAmount", zfAmount);
|
|
|
|
|
|
addMap.put("ybzhAmount", ybzhAmount);
|
|
|
|
|
|
addMap.put("ybtcAmount", ybtcAmount);
|
|
|
|
|
|
addMap.put("receiptNO", receiptNO);
|
2025-08-11 09:21:22 +08:00
|
|
|
|
addMap.put("invNum", invNum);
|
2025-07-23 09:55:50 +08:00
|
|
|
|
addMap.put("patientID", patientID);
|
|
|
|
|
|
addMap.put("patientName", patientName);
|
2025-08-11 09:21:22 +08:00
|
|
|
|
addMap.put("inHosNum", inHosNum);
|
2025-07-23 09:55:50 +08:00
|
|
|
|
addMap.put("tradeTime", tradeTime);
|
|
|
|
|
|
addMap.put("trade_date", trade_date);
|
|
|
|
|
|
addMap.put("hisTime", hisTime);
|
2025-08-11 09:21:22 +08:00
|
|
|
|
addMap.put("hisOperCode", hisOperNum); // 修改字段名以匹配HISGetDataMethodByJH中的使用
|
2025-07-23 09:55:50 +08:00
|
|
|
|
addMap.put("powerTranID", powerTranID);
|
|
|
|
|
|
|
|
|
|
|
|
addList.add(addMap);
|
|
|
|
|
|
}
|
2025-08-11 09:21:22 +08:00
|
|
|
|
|
|
|
|
|
|
log.info("解析到的数据条数: {}", addList.size());
|
|
|
|
|
|
if (addList.size() > 0) {
|
|
|
|
|
|
log.info("第一条数据示例: {}", addList.get(0));
|
|
|
|
|
|
}
|
2025-07-23 09:55:50 +08:00
|
|
|
|
resultMap.put("addList", addList);
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
2025-08-11 09:21:22 +08:00
|
|
|
|
log.error("his数据字符串中提取数据失败,原因:", e);
|
2025-07-23 09:55:50 +08:00
|
|
|
|
errCode = "999";
|
|
|
|
|
|
errMsg = "his数据字符串中提取数据失败,原因:" + e.getMessage();
|
|
|
|
|
|
}
|
|
|
|
|
|
resultMap.put("errCode", errCode);
|
|
|
|
|
|
resultMap.put("errMsg", errMsg);
|
|
|
|
|
|
|
|
|
|
|
|
return resultMap;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|