|
@ -283,55 +283,60 @@ public class YlzService {
|
|
|
JSONObject paramObj = responseObj.getJSONObject("param");
|
|
|
outChargeNo = paramObj.getString("outChargeNo");
|
|
|
|
|
|
YlzMedicalRecharge ylzMedicalRecharge = ylzMedicalRechargeDao.findByOutChargeNo(outChargeNo);
|
|
|
if (null!=ylzMedicalRecharge){ //该笔订单与待结算订单有关联
|
|
|
// 查询预缴金充值结果 如果为succ后 查出该笔订单关联的订单 去调用his确认结算接口
|
|
|
int i=0;
|
|
|
do{
|
|
|
Map<String,String> param = new HashMap<>();
|
|
|
param.put("orgCode",ylzMedicalRecharge.getOrgCode());
|
|
|
param.put("equ_num",ylzMedicalRecharge.getEquNum());
|
|
|
param.put("tradeType","hop.trade.recharge");
|
|
|
param.put("outTradeNo",outChargeNo);
|
|
|
JSONObject res = wlyyHttpService.sendWlyyMes("hlwyyQueryDetail_OUT", null,param);
|
|
|
if (res.getString("status").equalsIgnoreCase("200")) {//i健康返回值
|
|
|
JSONObject responseData = res.getJSONObject("data");
|
|
|
JSONObject queryDetailParam = responseData.getJSONObject("param");
|
|
|
String result = queryDetailParam.getString("result");
|
|
|
String resultName = queryDetailParam.getString("resultDesc");
|
|
|
if ("exp".equals(result)){
|
|
|
synchronized (outChargeNo.intern()){//新增同步方法
|
|
|
YlzMedicalRecharge ylzMedicalRecharge = ylzMedicalRechargeDao.findByOutChargeNo(outChargeNo);
|
|
|
if (null!=ylzMedicalRecharge){ //该笔订单与待结算订单有关联
|
|
|
if ("succ".equals(ylzMedicalRecharge.getChargeResult())){
|
|
|
return;
|
|
|
}
|
|
|
// 查询预缴金充值结果 如果为succ后 查出该笔订单关联的订单 去调用his确认结算接口
|
|
|
int i=0;
|
|
|
do{
|
|
|
Map<String,String> param = new HashMap<>();
|
|
|
param.put("orgCode",ylzMedicalRecharge.getOrgCode());
|
|
|
param.put("equ_num",ylzMedicalRecharge.getEquNum());
|
|
|
param.put("tradeType","hop.trade.recharge");
|
|
|
param.put("outTradeNo",outChargeNo);
|
|
|
JSONObject res = wlyyHttpService.sendWlyyMes("hlwyyQueryDetail_OUT", null,param);
|
|
|
if (res.getString("status").equalsIgnoreCase("200")) {//i健康返回值
|
|
|
JSONObject responseData = res.getJSONObject("data");
|
|
|
JSONObject queryDetailParam = responseData.getJSONObject("param");
|
|
|
String result = queryDetailParam.getString("result");
|
|
|
String resultName = queryDetailParam.getString("resultDesc");
|
|
|
if ("exp".equals(result)){
|
|
|
|
|
|
}else {
|
|
|
/**
|
|
|
* 支付状态确认 通知药柜结算状态是什么情况
|
|
|
*/
|
|
|
JSONObject chargeNotice = new JSONObject();
|
|
|
chargeNotice.put("result",result);
|
|
|
chargeNotice.put("resultName",resultName);
|
|
|
medicineServive.sendSocketMessage(ylzMedicalRecharge.getEquNum()+"_T","medical_recharge", URLEncoder.encode(chargeNotice.toJSONString(),"UTF-8"));
|
|
|
ylzMedicalRecharge.setChargeResult(result);
|
|
|
ylzMedicalRecharge.setChargeResultName(resultName);
|
|
|
ylzMedicalRechargeDao.save(ylzMedicalRecharge);
|
|
|
if ("succ".equals(result)){//交易成功 (微信/支付宝成功,HIS成功)
|
|
|
String recipeNoStr = ylzMedicalRecharge.getValue();
|
|
|
if (StringUtils.isNoneBlank(recipeNoStr)){//关联处方号
|
|
|
String[] recipeNos = recipeNoStr.split(",");
|
|
|
try {
|
|
|
for (String recipeNo:recipeNos){
|
|
|
medOrderService.executeSickSettleMultiNew(recipeNo,ylzMedicalRecharge.getEquNum());
|
|
|
}else {
|
|
|
/**
|
|
|
* 支付状态确认 通知药柜结算状态是什么情况
|
|
|
*/
|
|
|
JSONObject chargeNotice = new JSONObject();
|
|
|
chargeNotice.put("result",result);
|
|
|
chargeNotice.put("resultName",resultName);
|
|
|
medicineServive.sendSocketMessage(ylzMedicalRecharge.getEquNum()+"_T","medical_recharge", URLEncoder.encode(chargeNotice.toJSONString(),"UTF-8"));
|
|
|
ylzMedicalRecharge.setChargeResult(result);
|
|
|
ylzMedicalRecharge.setChargeResultName(resultName);
|
|
|
ylzMedicalRechargeDao.save(ylzMedicalRecharge);
|
|
|
if ("succ".equals(result)){//交易成功 (微信/支付宝成功,HIS成功)
|
|
|
String recipeNoStr = ylzMedicalRecharge.getValue();
|
|
|
if (StringUtils.isNoneBlank(recipeNoStr)){//关联处方号
|
|
|
String[] recipeNos = recipeNoStr.split(",");
|
|
|
try {
|
|
|
for (String recipeNo:recipeNos){
|
|
|
medOrderService.executeSickSettleMultiNew(recipeNo,ylzMedicalRecharge.getEquNum());
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
i++;
|
|
|
System.out.printf("循环"+i);
|
|
|
Thread.sleep(30000);
|
|
|
}while (i<10);
|
|
|
i++;
|
|
|
System.out.printf("循环"+i);
|
|
|
Thread.sleep(30000);
|
|
|
}while (i<10);
|
|
|
}
|
|
|
}
|
|
|
logger.info("回调参数:{}", response);
|
|
|
}
|