From 42c6318dc16668bc59a5aa130d8d51d8b01bc276 Mon Sep 17 00:00:00 2001 From: wangsq <944414428@qq.com> Date: Wed, 30 Jul 2025 11:10:45 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E7=BA=BF=E4=B8=8B=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=8C=BB=E4=BF=9D=E9=80=80=E8=B4=B9=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=96=B0=E5=A2=9E=E8=AE=B0=E5=BD=95=E9=80=80=E8=B4=B9?= =?UTF-8?q?=E5=8E=9F=E5=9B=A0=E3=80=82=202=E3=80=81=E7=97=85=E6=A1=88?= =?UTF-8?q?=E5=A4=8D=E5=8D=B0=E9=A2=84=E7=BA=A6=E6=8E=A5=E5=8F=A3=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=89=8B=E6=8C=81=E8=BA=AB=E4=BB=BD=E8=AF=81=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E7=9A=84=E5=85=A5=E5=8F=82=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ynxbd/common/action/XBDAction.java | 6 +++-- .../java/com/ynxbd/common/dao/RecipeDao.java | 24 +++++++++++++++---- .../java/com/ynxbd/common/dao/RefundDao.java | 4 ++-- .../com/ynxbd/common/dao/RegisterDao.java | 21 +++++++++++++--- .../ynxbd/common/service/RecipeService.java | 8 +++++-- .../com/ynxbd/common/service/RegService.java | 13 ++++------ 6 files changed, 54 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/ynxbd/common/action/XBDAction.java b/src/main/java/com/ynxbd/common/action/XBDAction.java index c2e1ded..ffcad11 100644 --- a/src/main/java/com/ynxbd/common/action/XBDAction.java +++ b/src/main/java/com/ynxbd/common/action/XBDAction.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); diff --git a/src/main/java/com/ynxbd/common/dao/RecipeDao.java b/src/main/java/com/ynxbd/common/dao/RecipeDao.java index b298f5a..34696a9 100644 --- a/src/main/java/com/ynxbd/common/dao/RecipeDao.java +++ b/src/main/java/com/ynxbd/common/dao/RecipeDao.java @@ -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 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 -> { diff --git a/src/main/java/com/ynxbd/common/dao/RefundDao.java b/src/main/java/com/ynxbd/common/dao/RefundDao.java index 323e814..82c1918 100644 --- a/src/main/java/com/ynxbd/common/dao/RefundDao.java +++ b/src/main/java/com/ynxbd/common/dao/RefundDao.java @@ -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订单号 diff --git a/src/main/java/com/ynxbd/common/dao/RegisterDao.java b/src/main/java/com/ynxbd/common/dao/RegisterDao.java index 8310b95..c59d0f2 100644 --- a/src/main/java/com/ynxbd/common/dao/RegisterDao.java +++ b/src/main/java/com/ynxbd/common/dao/RegisterDao.java @@ -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); + } + /** * 根据订单号修改退费信息 * diff --git a/src/main/java/com/ynxbd/common/service/RecipeService.java b/src/main/java/com/ynxbd/common/service/RecipeService.java index e5fff7c..861c201 100644 --- a/src/main/java/com/ynxbd/common/service/RecipeService.java +++ b/src/main/java/com/ynxbd/common/service/RecipeService.java @@ -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()) { diff --git a/src/main/java/com/ynxbd/common/service/RegService.java b/src/main/java/com/ynxbd/common/service/RegService.java index c9ee8e3..a575eff 100644 --- a/src/main/java/com/ynxbd/common/service/RegService.java +++ b/src/main/java/com/ynxbd/common/service/RegService.java @@ -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()) {