From 6cb70805f1bca316d052faa008625ed736039013 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Mon, 14 Sep 2026 16:26:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=94=B6=E6=AC=BE=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=BA=8B=E5=8A=A1;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/receiptManage/ReceiptManageApplicationService.java | 3 +++ .../com/mhd/bms/interfaces/facadeApi/ReceiptManageApi.java | 1 + 2 files changed, 4 insertions(+) diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/receiptManage/ReceiptManageApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/receiptManage/ReceiptManageApplicationService.java index d970e985f..c811eca75 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/receiptManage/ReceiptManageApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/receiptManage/ReceiptManageApplicationService.java @@ -18,6 +18,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.ArrayList; import java.util.Date; @@ -165,6 +166,8 @@ public class ReceiptManageApplicationService { throw new ServiceException("收款数据处理失败"); } } catch (Exception e) { + //自己try捕获的异常也要标记事务回滚,确保收款失败时全部回滚 + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); throw new ServiceException("第" + index + "笔收款失败:" + e.getMessage() + ",本次收款已全部回滚"); } index++; diff --git a/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/ReceiptManageApi.java b/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/ReceiptManageApi.java index 9b4fe8635..0bbc6bcf0 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/ReceiptManageApi.java +++ b/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/ReceiptManageApi.java @@ -170,6 +170,7 @@ public class ReceiptManageApi extends BaseController{ //事务内排队逐笔收款,任意一笔失败全部回滚 return toAjax(receiptManageApplicationService.queueBatchCollection(receiptManageDOList)); }catch (Exception e){ + //异常已在应用服务层事务内标记回滚(收款失败必回滚),此处仅返回失败结果 return AjaxResult.error("收款失败:" + e.getMessage()); }finally { if (redissonMultiLock != null && payInfoDetailLock) {