From 86d231908b34f5e2b78b259ec481441e68d11f4d Mon Sep 17 00:00:00 2001
From: lml <1297555865@qq.com>
Date: Mon, 26 Oct 2026 18:05:19 +0800
Subject: [PATCH] =?UTF-8?q?feat(online):=20=E6=96=B0=E5=A2=9E=E6=89=B9?=
=?UTF-8?q?=E9=87=8F=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3=EF=BC=8C=E4=B8=80?=
=?UTF-8?q?=E6=AC=A1=E6=8F=90=E4=BA=A4=E5=A4=9A=E5=BC=A0=E6=96=B0=E5=8D=95?=
=?UTF-8?q?=E6=8D=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 新增 /executePluginBatch:masterData 为数组,每个元素一张单据;
slaveData 可整批共享一个对象,也可传与表头等长的数组(下标对应)
- OnlineOperationService 新增 executePluginBatch / executeBatchSaveInTransaction
- executeBatchSaveInTransaction 单独暴露并经 Spring 代理调用,
保证 @Transactional 真正生效:逐条保存,任一条失败整批回滚
- 补齐主键:表头与分录主键统一由 IdGeneratorWrapper 发号,
分录 parent_id 挂到对应表头主键上,避免多单之间串行;
发号结果进入 newIdSet 防御重复主键
- 批量前期校验:按钮必须绑定保存插件、slaveData 格式与条数需与表头一致
- SaveOperationServicePlugIn 支持多单保存:优先取插件参数集合、为空退回 model,
去重后逐条保存并各自触发反写;仅一条时保持原有行为
- DeleteOperationServicePlugIn 修复 EAS 分支批量删除只删第一条:
改为汇总集合内全部主键后下发
---
.../controller/OnlineOperationController.java | 19 ++
.../plugin/pre/DeleteOperationServicePlugIn.java | 22 +-
.../plugin/pre/SaveOperationServicePlugIn.java | 66 ++++-
.../online/service/OnlineOperationService.java | 36 ++-
.../service/impl/OnlineOperationServiceImpl.java | 323 ++++++++++++++++++++-
5 files changed, 448 insertions(+), 18 deletions(-)
diff --git a/common/common-online/src/main/java/apelet/common/online/controller/OnlineOperationController.java b/common/common-online/src/main/java/apelet/common/online/controller/OnlineOperationController.java
index 27d9551..290294a 100644
--- a/common/common-online/src/main/java/apelet/common/online/controller/OnlineOperationController.java
+++ b/common/common-online/src/main/java/apelet/common/online/controller/OnlineOperationController.java
@@ -179,6 +179,25 @@ public class OnlineOperationController {
}
/**
+ * 批量执行功能插件(用于批量新增:一次提交多张新单据)。
+ *
+ *
与 /executePlugin 的区别只在 masterData 是数组、每个元素一张单据;
+ * 分录数据 slaveData 可整批共享一个对象,也可传与 masterData 等长的数组(下标对应)。
+ *
+ * @param onlinePluginExecuteDto 操作按钮等参数。
+ * @param masterData 表头数据数组。
+ * @param slaveData 分录数据。
+ * @return 操作结果。
+ */
+ @PostMapping("/executePluginBatch")
+ public ResponseResult