1、线下调用微信医保退费接口新增记录退费原因。

2、病案复印预约接口新增手持身份证图片的入参。
debug
wangsq 2 weeks ago
parent 7d695b12e6
commit 42c6318dc1
  1. 6
      src/main/java/com/ynxbd/common/action/XBDAction.java
  2. 24
      src/main/java/com/ynxbd/common/dao/RecipeDao.java
  3. 4
      src/main/java/com/ynxbd/common/dao/RefundDao.java
  4. 21
      src/main/java/com/ynxbd/common/dao/RegisterDao.java
  5. 8
      src/main/java/com/ynxbd/common/service/RecipeService.java
  6. 13
      src/main/java/com/ynxbd/common/service/RegService.java

@ -142,15 +142,16 @@ public class XBDAction extends BaseAction {
* @param address 地址
* @param phone 联系电话
* @param ptImg1 身份证正面
* @param relationship 申请人与病人关系
* @param ptImg2 身份证反面
* @param ptImg3 手持身份证
* @param relationship 申请人与病人关系
* @param applyPtImg1 申请人身份证正面照片
* @param applyPtImg2 申请人身份证反面照片
* @param applicationImg 申请书图片
* @return 成功行数
*/
@Action("addMRReserve")
public Result addMRReserve(String openId, String patientId, String zyNum, String applyName, String relationship, String useToNo, String useToName, int getWay, String address, String phone, String ptImg1, String ptImg2, String applyPtImg1, String applyPtImg2, String applicationImg) {
public Result addMRReserve(String openId, String patientId, String zyNum, String applyName, String relationship, String useToNo, String useToName, int getWay, String address, String phone, String ptImg1, String ptImg2, String ptImg3, String applyPtImg1, String applyPtImg2, String applicationImg) {
try {
log.info("[病历复印]patientId-{},zyNum-{},applyName-{},useToNo-{},useToName-{},getWay-{},address-{},phone-{}", patientId, zyNum, applyName, useToNo, useToName, getWay, address, phone);
if (ObjectUtils.isEmpty(openId) || ObjectUtils.isEmpty(patientId)) {
@ -184,6 +185,7 @@ public class XBDAction extends BaseAction {
params.put("Phone", phone);
params.put("ptImg1", ptImg1);
params.put("ptImg2", ptImg2);
params.put("ptImg3", ptImg3);
params.put("applyPtImg1", applyPtImg1);
params.put("applyPtImg2", applyPtImg2);
params.put("ApplicationImg", applicationImg);

@ -183,7 +183,7 @@ public class RecipeDao {
ps.setString(21, recipe.getHospitalArea());
ps.setString(22, recipe.getFeeId());
ps.setString(23, recipe.getFeeInfo());
ps.setString(24,recipe.getOrderType());
ps.setString(24, recipe.getOrderType());
ps.addBatch();
}
});
@ -544,17 +544,31 @@ public class RecipeDao {
* 根据发订单号和处方号修改退费信息
*
* @param tradeNo His流水号
* @param refundResult 退款信息
* @param refundResult 退款结果
* @param refundReason 退款原因
* @return 是否成功
*/
public boolean updateRefundByTradeNo(String tradeNo, String refundResult) {
String sql = "update pay set refundResult=?, refundTime=now() where tradeNo=? and (refundResult is null or refundResult != 'OK')";
public boolean updateRefundByTradeNo(String tradeNo, String refundResult, String refundReason) {
String sql = "update pay set refundResult=?, refundReason=?, refundTime=now() where tradeNo=? and (refundResult is null or refundResult != 'OK')";
return DataBase.update(sql, ps -> {
ps.setString(1, refundResult);
ps.setString(2, tradeNo);
ps.setString(2, refundReason);
ps.setString(3, tradeNo);
}) > 0;
}
/**
* 根据发订单号和处方号修改退费信息
*
* @param tradeNo His流水号
* @param refundResult 退款信息
* @return 是否成功
*/
public boolean updateRefundByTradeNo(String tradeNo, String refundResult) {
return updateRefundByTradeNo(tradeNo, refundResult, null);
}
public List<Order> selectList(String begTime, String endTime) {
String sql = "select * from pay where updateTime between ? and DATE_ADD(?, INTERVAL 1 DAY)";
return DataBase.select(sql, Order.class, ps -> {

@ -13,7 +13,7 @@ import com.ynxbd.common.config.db.DataBase;
public class RefundDao {
/**
* 处方支付数据预存
* 退费数据记录
*
* @param orderRefund 支付信息
* @param refundDesc 退款描述
@ -43,7 +43,7 @@ public class RefundDao {
}
/**
* 处方支付数据预存
* 判断是否有退费记录
*
* @param outTradeNo 订单号
* @param tradeNo His订单号

@ -550,21 +550,36 @@ public class RegisterDao {
}) > 0;
}
/**
* 根据订单号修改退费信息
*
* @param tradeNo HIS交易流水号
* @param refundResult 退款信息
* @param refundReason 退款原因
* @return 是否成功
*/
public boolean updateRefundByTradeNo(String tradeNo, String refundResult) {
String sql = "update register set refundResult=?, refundTime=now() where tradeNo=? and (refundResult is null or refundResult != 'OK')";
public boolean updateRefundByTradeNo(String tradeNo, String refundResult, String refundReason) {
String sql = "update register set refundResult=?, refundReason=?, refundTime=now() where tradeNo=? and (refundResult is null or refundResult != 'OK')";
return DataBase.update(sql, ps -> {
ps.setString(1, refundResult);
ps.setString(2, tradeNo);
ps.setString(2, refundReason);
ps.setString(3, tradeNo);
}) > 0;
}
/**
* 根据订单号修改退费信息
*
* @param tradeNo HIS交易流水号
* @param refundResult 退款信息
* @return 是否成功
*/
public boolean updateRefundByTradeNo(String tradeNo, String refundResult) {
return updateRefundByTradeNo(tradeNo, refundResult, null);
}
/**
* 根据订单号修改退费信息
*

@ -643,7 +643,7 @@ public class RecipeService {
/**
* His系统处方手动退费
* His系统处方线下退费
*
* @param reason 退费原因
* @return 是否成功
@ -687,9 +687,13 @@ public class RecipeService {
MedicalOrder order = WxMedicalHelper.refund(outTradeNo, ("R" + payOrdId), payOrdId, cashFee, reason);
log.info("[医保]现金退费order={}", order);
String refundReason = "线下现金退费";
if (!ObjectUtils.isEmpty(reason)) {
refundReason = ":" + reason;
}
refundResult = order.isOk() ? WxPayHelper.OK : order.getMessage();
if (!recipeDao.updateRefundByTradeNo(payOrdId, refundResult)) {
if (!recipeDao.updateRefundByTradeNo(payOrdId, refundResult, refundReason)) {
log.error("[医保]现金退费修改数据库状态失败 payOrderId={}, refundResult={}", payOrdId, refundResult);
}
if (order.isOk()) {

@ -6,27 +6,21 @@ import com.ynxbd.ali.helper.AliHelper;
import com.ynxbd.ali.helper.AliMessageHelper;
import com.ynxbd.common.action.pay.PEnum;
import com.ynxbd.common.bean.RegSign;
import com.ynxbd.common.bean.enums.HospEnum;
import com.ynxbd.common.bean.enums.MerchantEnum;
import com.ynxbd.common.bean.pay.Order;
import com.ynxbd.common.bean.pay.Register;
import com.ynxbd.common.bean.sms.SmsRegTem;
import com.ynxbd.common.dao.RefundDao;
import com.ynxbd.common.dao.RegisterDao;
import com.ynxbd.common.dao.his.HisAccountDao;
import com.ynxbd.common.dao.his.HisRegisterDao;
import com.ynxbd.common.helper.common.CodeHelper;
import com.ynxbd.common.helper.common.DateHelper;
import com.ynxbd.common.helper.common.JsonHelper;
import com.ynxbd.common.helper.common.SmsHelper;
import com.ynxbd.common.helper.his.HisHelper;
import com.ynxbd.common.result.JsonResult;
import com.ynxbd.common.result.Result;
import com.ynxbd.common.result.ResultEnum;
import com.ynxbd.common.result.ServiceException;
import com.ynxbd.wx.config.MessagePushConfig;
import com.ynxbd.wx.config.MiddleOfficeConfig;
import com.ynxbd.wx.config.WeChatConfig;
import com.ynxbd.wx.utils.DateGenerate;
import com.ynxbd.wx.wxfactory.WxMedicalHelper;
import com.ynxbd.wx.wxfactory.WxPayHelper;
@ -274,9 +268,12 @@ public class RegService {
MedicalOrder order = WxMedicalHelper.refund(outTradeNo, ("R" + payOrdId), payOrdId, cashFee, reason);
log.info("[医保]挂号现金退费order={}", order);
String refundReason = "线下现金退费";
if (!ObjectUtils.isEmpty(reason)) {
refundReason = ":" + reason;
}
refundResult = order.isOk() ? WxPayHelper.OK : order.getMessage();
if (!regDao.updateRefundByTradeNo(payOrdId, refundResult)) {
if (!regDao.updateRefundByTradeNo(payOrdId, refundResult, refundReason)) {
log.error("[医保]挂号现金退费修改数据库状态失败 payOrderId={}, refundResult={}", payOrdId, refundResult);
}
if (order.isOk()) {

Loading…
Cancel
Save