571 lines
25 KiB
Java
571 lines
25 KiB
Java
package com.saye.hrs.commons.webservice;
|
||
|
||
import com.alibaba.fastjson.JSON;
|
||
import com.alibaba.fastjson.JSONArray;
|
||
import com.alibaba.fastjson.JSONObject;
|
||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||
import com.saye.hrs.commons.string.StringDUtil;
|
||
import com.saye.hrs.dto.*;
|
||
import com.saye.hrs.model.StatusDefine;
|
||
import com.saye.hrs.vo.FeeInfoDetailVO;
|
||
import com.saye.hrs.vo.FeeInfoVO;
|
||
import com.saye.hrs.vo.MZJSPreDetailVO;
|
||
import com.saye.hrs.vo.MZJSPreVO;
|
||
import org.dom4j.Document;
|
||
import org.dom4j.DocumentHelper;
|
||
import org.dom4j.Element;
|
||
import org.slf4j.Logger;
|
||
import org.slf4j.LoggerFactory;
|
||
import org.springframework.http.*;
|
||
import org.springframework.web.client.RestTemplate;
|
||
|
||
import java.math.BigDecimal;
|
||
import java.math.RoundingMode;
|
||
import java.text.DecimalFormat;
|
||
import java.util.ArrayList;
|
||
import java.util.HashMap;
|
||
import java.util.Iterator;
|
||
import java.util.List;
|
||
|
||
|
||
public class OtherWSUtil {
|
||
|
||
private static final Logger logger = LoggerFactory.getLogger(OtherWSUtil.class);
|
||
public static RestTemplate restTemplate = new RestTemplate();
|
||
static HttpHeaders headers;
|
||
static {
|
||
headers = new HttpHeaders();
|
||
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
|
||
}
|
||
|
||
// private static final String url="http://168.168.0.213:8081/WebService1.asmx";
|
||
private static final String url="http://218.84.202.146:8081/webService1.asmx";
|
||
|
||
/**
|
||
* 调用webservice接口 其他接口
|
||
*/
|
||
public static Result<List<FeeInfoVO>> getPatientFeeInfo(PatientFeeQuery reqDTO) {
|
||
String patid = reqDTO.getPatid();
|
||
logger.info("请求参数----------patid:"+patid);
|
||
String errCode="0";
|
||
String errMsg="";
|
||
Result<List<FeeInfoVO>> resultObj=null;
|
||
try {
|
||
|
||
HttpHeaders headers = new HttpHeaders();
|
||
MediaType type = MediaType.parseMediaType("text/xml;charset=UTF-8");
|
||
// 请求类型ContentType text/xml;charset=UTF-8
|
||
headers.setContentType(type);
|
||
|
||
//请求数据体
|
||
String soapRequestData = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\">" +
|
||
"<soapenv:Header/>" +
|
||
"<soapenv:Body>" +
|
||
"<tem:GetFeeInfo>" +
|
||
"<tem:patid>" + patid + "</tem:patid>" +
|
||
"</tem:GetFeeInfo>" +
|
||
"</soapenv:Body>" +
|
||
"</soapenv:Envelope>";
|
||
|
||
// 请求
|
||
HttpEntity<String> request = new HttpEntity<String>(soapRequestData + "", headers);
|
||
|
||
// 返回结果
|
||
String str = restTemplate.postForObject(url, request, String.class);
|
||
logger.info("返回结果----------"+str);
|
||
Document document= DocumentHelper.parseText(str);
|
||
Element rootElt = document.getRootElement();
|
||
|
||
//解析
|
||
Iterator body = rootElt.elementIterator("Body");
|
||
Element recordEless = (Element) body.next();
|
||
|
||
Iterator callHisResponse = recordEless.elementIterator("GetFeeInfoResponse");
|
||
Element response = (Element) callHisResponse.next();
|
||
|
||
Iterator callHisResult = response.elementIterator("GetFeeInfoResult");
|
||
Element result = (Element)callHisResult.next();
|
||
|
||
String text = result.getText();
|
||
|
||
JSONObject jsonObject = JSONObject.parseObject(text);
|
||
|
||
Integer code = jsonObject.getInteger("Code");
|
||
|
||
if (code==0){
|
||
JSONArray item = jsonObject.getJSONArray("Item");
|
||
List<FeeInfoVO> javaList = item.toJavaList(FeeInfoVO.class);
|
||
|
||
//将javaList中的体检部分合并
|
||
List<FeeInfoVO> javaListNew = new ArrayList<>();
|
||
List<FeeInfoDetailVO> detailNew = new ArrayList<>();
|
||
FeeInfoVO xytj = new FeeInfoVO();
|
||
BigDecimal xytjValue = new BigDecimal("0.000000");
|
||
DecimalFormat df = new DecimalFormat("0.00");
|
||
|
||
String xytjCfxh = "";
|
||
String xytjOrderid = "";
|
||
for (int i = 0; i < javaList.size(); i++) {
|
||
if(javaList.get(i).getMemo().equals("体检开单写入")){
|
||
//体检的需要合并
|
||
// "patid": "1015880",
|
||
// "hzxm": null,
|
||
// "yfdm": "",
|
||
// "zhye": "",
|
||
// "cfje": "3.000000",
|
||
// "cfmxsl": "1",
|
||
// "cflx": "6",
|
||
// "yfmc": "",
|
||
// "cfxh": "7841668",
|
||
// "cardno": "352229201802274531",
|
||
// "out_ksmc": "",
|
||
// "ghxh": "0",
|
||
// "orderId": "JJ20240517155343228",
|
||
xytj.setPatid(javaList.get(i).getPatid());
|
||
xytj.setHzxm(javaList.get(i).getHzxm());
|
||
xytj.setYfdm(javaList.get(i).getYfdm());
|
||
xytj.setZhye(javaList.get(i).getZhye());
|
||
|
||
xytjValue = xytjValue.add(new BigDecimal(javaList.get(i).getCfje()));
|
||
xytjValue = xytjValue.setScale(2, RoundingMode.HALF_UP);
|
||
xytj.setCfje(df.format(xytjValue));
|
||
|
||
xytj.setCfmxsl(javaList.get(i).getCfmxsl());
|
||
xytj.setCflx(javaList.get(i).getCflx());
|
||
xytj.setYfmc(javaList.get(i).getYfmc());
|
||
|
||
xytjCfxh = xytjCfxh.concat(javaList.get(i).getCfxh());
|
||
if(javaList.size() != (i + 1)){
|
||
xytjCfxh = xytjCfxh.concat(",");
|
||
}
|
||
xytj.setCfxh(xytjCfxh);
|
||
xytj.setCardno(javaList.get(i).getCardno());
|
||
xytj.setOut_ksmc(javaList.get(i).getOut_ksmc());
|
||
xytj.setGhxh(javaList.get(i).getGhxh());
|
||
|
||
if(!(javaList.get(i).getLrrq().equals(""))){
|
||
//2024052711:18:12
|
||
//格式化日期
|
||
String lrrq = javaList.get(i).getLrrq().substring(0, 4) + "/" +
|
||
javaList.get(i).getLrrq().substring(4, 6) + "/" +
|
||
javaList.get(i).getLrrq().substring(6, 8) + " " +
|
||
javaList.get(i).getLrrq().substring(8, 16);
|
||
javaList.get(i).setLrrq(lrrq);
|
||
}
|
||
|
||
xytj.setLrrq(javaList.get(i).getLrrq());
|
||
|
||
// xytjOrderid = xytjOrderid.concat(javaList.get(i).getOrderId());
|
||
// if(javaList.size() != (i + 1)){
|
||
// xytjOrderid = xytjOrderid.concat(",");
|
||
// }
|
||
// xytj.setOrderId(xytjOrderid);
|
||
xytj.setOrderId(javaList.get(i).getOrderId());
|
||
|
||
FeeInfoDetailVO detailTmp = javaList.get(i).getDetail().get(0);
|
||
Double number = Double.parseDouble(javaList.get(i).getDetail().get(0).getXmje());
|
||
detailTmp.setXmje(df.format(number));
|
||
detailNew.add(detailTmp);
|
||
xytj.setMemo("体检开单写入");
|
||
}else{
|
||
FeeInfoVO newItem = new FeeInfoVO();
|
||
newItem = javaList.get(i);
|
||
if(!(newItem.getLrrq().equals(""))){
|
||
//2024052711:18:12
|
||
//格式化日期
|
||
String lrrq = newItem.getLrrq().substring(0, 4) + "/" +
|
||
newItem.getLrrq().substring(4, 6) + "/" +
|
||
newItem.getLrrq().substring(6, 8) + " " +
|
||
newItem.getLrrq().substring(8, 16);
|
||
newItem.setLrrq(lrrq);
|
||
}
|
||
javaListNew.add(newItem);
|
||
}
|
||
|
||
}
|
||
if(xytj.getPatid() != null){
|
||
xytj.setDetail(detailNew);
|
||
javaListNew.add(xytj);
|
||
}
|
||
|
||
resultObj = Result.returnSuccess(javaListNew);
|
||
// resultObj = Result.returnSuccess(javaList);
|
||
}else{
|
||
errCode= String.valueOf(code);
|
||
errMsg=jsonObject.getString("Message");
|
||
resultObj = Result.returnError(errCode,errMsg);
|
||
}
|
||
} catch (Exception e) {
|
||
logger.error("返回结果异常----------"+e.toString());
|
||
errCode="999";
|
||
errMsg=e.getMessage();
|
||
resultObj=Result.returnError(errCode,errMsg);
|
||
}
|
||
|
||
return resultObj;
|
||
}
|
||
|
||
public static Result<MZJSPreVO> PreSettlement(PreSettlementQuery reqDTO, String yyjzhye) {
|
||
String errCode="0";
|
||
String errMsg="";
|
||
|
||
String jsonString = JSON.toJSONString(reqDTO, SerializerFeature.DisableCircularReferenceDetect);
|
||
logger.info("请求参数----------"+jsonString);
|
||
|
||
Result<MZJSPreVO> resultObj=null;
|
||
try {
|
||
|
||
String patid = reqDTO.getPatid();
|
||
String cfxh = reqDTO.getCfxh();
|
||
String ghxh = reqDTO.getGhxh();
|
||
String zfjsbz = reqDTO.getZfjsbz();
|
||
|
||
String ybrc = reqDTO.getYbrc();
|
||
String inpayAuthNo = reqDTO.getInpayAuthNo();
|
||
String uldLatlnt = reqDTO.getUldLatlnt();
|
||
|
||
if (ybrc==null){
|
||
ybrc="";
|
||
}
|
||
if (inpayAuthNo==null){
|
||
inpayAuthNo="";
|
||
}
|
||
if (uldLatlnt==null || "".equals(uldLatlnt)){
|
||
uldLatlnt="0,0";
|
||
}
|
||
|
||
HttpHeaders headers = new HttpHeaders();
|
||
MediaType type = MediaType.parseMediaType("text/xml;charset=UTF-8");
|
||
// 请求类型ContentType text/xml;charset=UTF-8
|
||
headers.setContentType(type);
|
||
|
||
String soapRequestData="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\">" +
|
||
" <soapenv:Header/>" +
|
||
" <soapenv:Body>" +
|
||
" <tem:MZJSPre>" +
|
||
" <tem:patid>"+patid+"</tem:patid>" +
|
||
" <tem:cfxh>"+cfxh+"</tem:cfxh>" +
|
||
" <tem:ghxh>"+ghxh+"</tem:ghxh>" +
|
||
" <tem:zfjsbz>"+zfjsbz+"</tem:zfjsbz>" +
|
||
" <tem:ybrc>"+ybrc+"</tem:ybrc>" +
|
||
" <tem:Blance>"+yyjzhye+"</tem:Blance>" +
|
||
" <tem:InpayAuthNo>"+inpayAuthNo+"</tem:InpayAuthNo>" +
|
||
" <tem:uldLatlnt>"+uldLatlnt+"</tem:uldLatlnt>" +
|
||
" </tem:MZJSPre>" +
|
||
" </soapenv:Body>" +
|
||
"</soapenv:Envelope>";
|
||
|
||
// 请求
|
||
HttpEntity<String> request = new HttpEntity<String>(soapRequestData + "", headers);
|
||
|
||
// 返回结果
|
||
String str = restTemplate.postForObject(url, request, String.class);
|
||
logger.info("返回结果----------"+str);
|
||
Document document= DocumentHelper.parseText(str);
|
||
Element rootElt = document.getRootElement();
|
||
|
||
//解析
|
||
Iterator body = rootElt.elementIterator("Body");
|
||
Element recordEless = (Element) body.next();
|
||
|
||
Iterator callHisResponse = recordEless.elementIterator("MZJSPreResponse");
|
||
Element response = (Element) callHisResponse.next();
|
||
|
||
Iterator callHisResult = response.elementIterator("MZJSPreResult");
|
||
Element result = (Element)callHisResult.next();
|
||
|
||
String text = result.getText();
|
||
|
||
JSONObject jsonObject = JSONObject.parseObject(text);
|
||
|
||
Integer code = jsonObject.getInteger("Code");
|
||
|
||
if (code==0){
|
||
JSONObject detail = jsonObject.getJSONObject("detail");
|
||
String payOrdId = jsonObject.getString("payOrdId");
|
||
String payToken = jsonObject.getString("payToken");
|
||
String gmt_out_create = jsonObject.getString("gmt_out_create");
|
||
String hosp_out_trade_no = jsonObject.getString("hosp_out_trade_no");
|
||
|
||
MZJSPreDetailVO javaObject = detail.toJavaObject(MZJSPreDetailVO.class);
|
||
|
||
MZJSPreVO mzjsPreVO=new MZJSPreVO();
|
||
mzjsPreVO.setDetail(javaObject);
|
||
mzjsPreVO.setPayOrdId(payOrdId);
|
||
mzjsPreVO.setPayToken(payToken);
|
||
mzjsPreVO.setGmt_out_create(gmt_out_create);
|
||
mzjsPreVO.setHosp_out_trade_no(hosp_out_trade_no);
|
||
|
||
//将预结算信息存储到服务器后台
|
||
String jsonString1 = JSON.toJSONString(mzjsPreVO);
|
||
String jsonString2 = JSON.toJSONString(javaObject);
|
||
HashMap hashMap = JSON.parseObject(jsonString1, HashMap.class);
|
||
hashMap.put("patid",patid);
|
||
hashMap.put("zfjsbz",zfjsbz);
|
||
hashMap.put("status","1"); //1 带表预结算
|
||
hashMap.put("detail",jsonString2); //1 带表预结算
|
||
hashMap.put("out_ksmc",reqDTO.getOut_ksmc());
|
||
|
||
String url2=StatusDefine.IP_PORT+"/api/addOrderInfo";
|
||
HttpHeaders headers2 = new HttpHeaders();
|
||
headers2.setContentType(MediaType.APPLICATION_JSON);
|
||
String body2 = JSON.toJSONString(hashMap);
|
||
HttpEntity<String> entity = new HttpEntity<String>(body2, headers2);
|
||
ResponseEntity<HashMap> resp =restTemplate.exchange(url2, HttpMethod.POST, entity, HashMap.class);
|
||
HashMap resultMap = resp.getBody();
|
||
|
||
//如果存储失败直接取消预结算 并返回错误
|
||
errCode = StringDUtil.changeNullToEmpty(resultMap.get("errCode"));
|
||
if (!"0".equals(errCode)){
|
||
CancelPreSettlementDTO cancelPreSettlementDTO=new CancelPreSettlementDTO();
|
||
cancelPreSettlementDTO.setPayOrdId(payOrdId);
|
||
cancelPreSettlementDTO.setJssjh(javaObject.getSjh());
|
||
cancelPreSettlementDTO.setPayToken(payToken);
|
||
cancelPreSettlementDTO.setZfjsbz(zfjsbz);
|
||
CancelPreSettlement(cancelPreSettlementDTO);
|
||
|
||
errMsg="保存订单信息失败,请联系管理员。";
|
||
resultObj=Result.returnError(errCode,errMsg);
|
||
}else{
|
||
resultObj=Result.returnSuccess(mzjsPreVO);
|
||
}
|
||
}else{
|
||
errCode= String.valueOf(code);
|
||
errMsg=jsonObject.getString("Message");
|
||
resultObj=Result.returnError(errCode,errMsg);
|
||
}
|
||
}catch (Exception e){
|
||
logger.error("返回结果异常----------"+e.toString());
|
||
errCode="999";
|
||
errMsg=e.getMessage();
|
||
resultObj=Result.returnError(errCode,errMsg);
|
||
}
|
||
return resultObj;
|
||
}
|
||
|
||
public static HashMap<Object, Object> Settlement(SettlementDTO reqDTO) {
|
||
HashMap<Object,Object> resultMap=new HashMap<>();
|
||
String errCode="0";
|
||
String errMsg="";
|
||
|
||
String jsonString = JSON.toJSONString(reqDTO, SerializerFeature.DisableCircularReferenceDetect);
|
||
logger.info("请求参数----------"+jsonString);
|
||
try {
|
||
String patid = reqDTO.getPatid();
|
||
String sjh = reqDTO.getSjh();
|
||
String zje = reqDTO.getZje();
|
||
String ysje = reqDTO.getYsje();
|
||
String paytype = reqDTO.getPaytype();
|
||
String paymoney = reqDTO.getPaymoney();
|
||
String paylsh = reqDTO.getPaylsh();
|
||
String zfjsbz = reqDTO.getZfjsbz();
|
||
|
||
HttpHeaders headers = new HttpHeaders();
|
||
MediaType type = MediaType.parseMediaType("text/xml;charset=UTF-8");
|
||
// 请求类型ContentType text/xml;charset=UTF-8
|
||
headers.setContentType(type);
|
||
|
||
String soapRequestData="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\">" +
|
||
" <soapenv:Header/>" +
|
||
" <soapenv:Body>" +
|
||
" <tem:MZJS>" +
|
||
" <tem:patid>"+patid+"</tem:patid>" +
|
||
" <tem:sjh>"+sjh+"</tem:sjh>" +
|
||
" <tem:zje>"+zje+"</tem:zje>" +
|
||
" <tem:ysje>"+ysje+"</tem:ysje>" +
|
||
" <tem:paytype>"+paytype+"</tem:paytype>" +
|
||
" <tem:paymoney>"+paymoney+"</tem:paymoney>" +
|
||
" <tem:paylsh>"+paylsh+"</tem:paylsh>" +
|
||
" <tem:zfjsbz>"+zfjsbz+"</tem:zfjsbz>" +
|
||
" </tem:MZJS>" +
|
||
" </soapenv:Body>" +
|
||
"</soapenv:Envelope>";
|
||
|
||
// 请求
|
||
HttpEntity<String> request = new HttpEntity<String>(soapRequestData + "", headers);
|
||
|
||
// 返回结果
|
||
String str = restTemplate.postForObject(url, request, String.class);
|
||
logger.info("返回结果----------"+str);
|
||
Document document= DocumentHelper.parseText(str);
|
||
Element rootElt = document.getRootElement();
|
||
|
||
//解析
|
||
Iterator body = rootElt.elementIterator("Body");
|
||
Element recordEless = (Element) body.next();
|
||
|
||
Iterator callHisResponse = recordEless.elementIterator("MZJSResponse");
|
||
Element response = (Element) callHisResponse.next();
|
||
|
||
Iterator callHisResult = response.elementIterator("MZJSResult");
|
||
Element result = (Element)callHisResult.next();
|
||
|
||
String text = result.getText();
|
||
|
||
JSONObject jsonObject = JSONObject.parseObject(text);
|
||
|
||
Integer code = jsonObject.getInteger("Code");
|
||
|
||
if (code==0){
|
||
//成功应该就没了
|
||
|
||
|
||
}else{
|
||
errCode= String.valueOf(code);
|
||
errMsg=jsonObject.getString("Message");
|
||
}
|
||
|
||
}catch (Exception e){
|
||
logger.error("返回结果异常----------"+e.toString());
|
||
errCode="999";
|
||
errMsg=e.getMessage();
|
||
}
|
||
resultMap.put("errCode",errCode);
|
||
resultMap.put("errMsg",errMsg);
|
||
return resultMap;
|
||
}
|
||
|
||
|
||
public static HashMap<Object, Object> CancelPreSettlement(CancelPreSettlementDTO reqDTO) {
|
||
HashMap<Object,Object> resultMap=new HashMap<>();
|
||
String errCode="0";
|
||
String errMsg="";
|
||
|
||
String jsonString = JSON.toJSONString(reqDTO, SerializerFeature.DisableCircularReferenceDetect);
|
||
logger.info("请求参数----------"+jsonString);
|
||
try {
|
||
|
||
String jssjh = reqDTO.getJssjh();
|
||
String zfjsbz = reqDTO.getZfjsbz();
|
||
String payToken = reqDTO.getPayToken();
|
||
String payOrdId = reqDTO.getPayOrdId();
|
||
|
||
HttpHeaders headers = new HttpHeaders();
|
||
MediaType type = MediaType.parseMediaType("text/xml;charset=UTF-8");
|
||
// 请求类型ContentType text/xml;charset=UTF-8
|
||
headers.setContentType(type);
|
||
|
||
String soapRequestData="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\">" +
|
||
" <soapenv:Header/>" +
|
||
" <soapenv:Body>" +
|
||
" <tem:MZJSCancel>" +
|
||
" <tem:jssjh>"+jssjh+"</tem:jssjh>" +
|
||
" <tem:zfjsbz>"+zfjsbz+"</tem:zfjsbz>" +
|
||
" <tem:payOrdId>"+payOrdId+"</tem:payOrdId>" +
|
||
" <tem:payToken>"+payToken+"</tem:payToken>" +
|
||
" </tem:MZJSCancel>" +
|
||
" </soapenv:Body>" +
|
||
"</soapenv:Envelope>";
|
||
|
||
// 请求
|
||
HttpEntity<String> request = new HttpEntity<String>(soapRequestData + "", headers);
|
||
|
||
// 返回结果
|
||
String str = restTemplate.postForObject(url, request, String.class);
|
||
logger.info("返回结果----------"+str);
|
||
Document document= DocumentHelper.parseText(str);
|
||
Element rootElt = document.getRootElement();
|
||
|
||
//解析
|
||
Iterator body = rootElt.elementIterator("Body");
|
||
Element recordEless = (Element) body.next();
|
||
|
||
Iterator callHisResponse = recordEless.elementIterator("MZJSCancelResponse");
|
||
Element response = (Element) callHisResponse.next();
|
||
|
||
Iterator callHisResult = response.elementIterator("MZJSCancelResult");
|
||
Element result = (Element)callHisResult.next();
|
||
|
||
String text = result.getText();
|
||
|
||
JSONObject jsonObject = JSONObject.parseObject(text);
|
||
|
||
Integer code = jsonObject.getInteger("Code");
|
||
|
||
if (code==0){
|
||
String sjh = jsonObject.getString("sjh");
|
||
resultMap.put("sjh",sjh);
|
||
}else{
|
||
errCode= String.valueOf(code);
|
||
errMsg=jsonObject.getString("Message");
|
||
}
|
||
|
||
}catch (Exception e){
|
||
logger.error("返回结果异常----------"+e.toString());
|
||
errCode="999";
|
||
errMsg=e.getMessage();
|
||
}
|
||
resultMap.put("errCode",errCode);
|
||
resultMap.put("errMsg",errMsg);
|
||
return resultMap;
|
||
|
||
}
|
||
|
||
public static Result<List<HashMap<Object, Object>>> getUnPayInfo(PatientFeeQuery reqDTO) {
|
||
String errCode="0";
|
||
String errMsg="";
|
||
Result<List<HashMap<Object, Object>>> resultObj=null;
|
||
try {
|
||
//附加没有完成的订单
|
||
HashMap<Object,Object> hashMap=new HashMap<>();
|
||
hashMap.put("patid",reqDTO.getPatid());
|
||
|
||
String url2= StatusDefine.IP_PORT+"/api/findOrderInfo";
|
||
HttpHeaders headers2 = new HttpHeaders();
|
||
headers2.setContentType(MediaType.APPLICATION_JSON);
|
||
String body2 = JSON.toJSONString(hashMap);
|
||
HttpEntity<String> entity = new HttpEntity<String>(body2, headers2);
|
||
ResponseEntity<HashMap> resp =restTemplate.exchange(url2, HttpMethod.POST, entity, HashMap.class);
|
||
HashMap resultMap = resp.getBody();
|
||
String errCode1 = StringDUtil.changeNullToEmpty(resultMap.get("errCode"));
|
||
if("0".equals(errCode1)){
|
||
List<HashMap<Object, Object>> list = (List<HashMap<Object, Object>>) resultMap.get("list");
|
||
resultObj=Result.returnSuccess(list);
|
||
|
||
//取消这些订单
|
||
for (HashMap<Object, Object> map : list) {
|
||
String zfjsbz = StringDUtil.changeNullToEmpty(map.get("zfjsbz"));
|
||
String payToken = StringDUtil.changeNullToEmpty(map.get("payToken"));
|
||
String payOrdId = StringDUtil.changeNullToEmpty(map.get("payOrdId"));
|
||
String hosp_out_trade_no = StringDUtil.changeNullToEmpty(map.get("hosp_out_trade_no"));
|
||
|
||
String detail = StringDUtil.changeNullToEmpty(map.get("detail"));
|
||
|
||
HashMap hashMap1 = JSON.parseObject(detail, HashMap.class);
|
||
|
||
String sjh = StringDUtil.changeNullToEmpty(hashMap1.get("sjh"));
|
||
|
||
CancelPreSettlementDTO cancelPreSettlementDTO=new CancelPreSettlementDTO();
|
||
cancelPreSettlementDTO.setPayOrdId(payOrdId);
|
||
cancelPreSettlementDTO.setJssjh(sjh);
|
||
cancelPreSettlementDTO.setPayToken(payToken);
|
||
cancelPreSettlementDTO.setZfjsbz(zfjsbz);
|
||
CancelPreSettlement(cancelPreSettlementDTO);
|
||
|
||
//取消后通知后台,将状态改为4 已结束
|
||
HashMap<Object,Object> updateEnd=new HashMap<>();
|
||
updateEnd.put("hosp_out_trade_no",hosp_out_trade_no);
|
||
String url3= StatusDefine.IP_PORT+"/api/updateOrderInfoEnd";
|
||
HttpHeaders headers3 = new HttpHeaders();
|
||
headers3.setContentType(MediaType.APPLICATION_JSON);
|
||
String body3 = JSON.toJSONString(updateEnd);
|
||
HttpEntity<String> entity3 = new HttpEntity<String>(body3, headers3);
|
||
restTemplate.exchange(url3, HttpMethod.POST, entity3, HashMap.class);
|
||
|
||
}
|
||
}else{
|
||
errCode=errCode1;
|
||
errMsg=StringDUtil.changeNullToEmpty(resultMap.get("errMsg"));
|
||
resultObj=Result.returnError(errCode,errMsg);
|
||
}
|
||
}catch (Exception e){
|
||
logger.error("返回结果异常----------"+e.toString());
|
||
errCode="999";
|
||
errMsg=e.getMessage();
|
||
resultObj=Result.returnError(errCode,errMsg);
|
||
}
|
||
|
||
return resultObj;
|
||
}
|
||
}
|