From a0e768d2101bb6e6227b96f4ba277b128af5a689 Mon Sep 17 00:00:00 2001 From: yang chen Date: Mon, 27 Oct 2025 09:10:10 +0800 Subject: [PATCH] =?UTF-8?q?feat(bpm):=20=E6=94=AF=E6=8C=81=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E5=88=9B=E5=BB=BA=E6=8A=84=E9=80=81=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 引入 Collectors 类以支持流式处理 - 将单个抄送流程创建改为批量创建 -为每个用户 ID 生成独立的抄送记录 - 使用 insertBatch 方法提高插入效率 -保持原有字段设置逻辑不变 - 修复可能的空指针异常风险 --- .../BpmProcessInstanceCopyServiceImpl.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/jeelowcode-service/jeelowcode-service-bpm-biz/src/main/java/com/jeelowcode/service/bpm/service/impl/BpmProcessInstanceCopyServiceImpl.java b/jeelowcode-service/jeelowcode-service-bpm-biz/src/main/java/com/jeelowcode/service/bpm/service/impl/BpmProcessInstanceCopyServiceImpl.java index 0966801..bfd3f72 100644 --- a/jeelowcode-service/jeelowcode-service-bpm-biz/src/main/java/com/jeelowcode/service/bpm/service/impl/BpmProcessInstanceCopyServiceImpl.java +++ b/jeelowcode-service/jeelowcode-service-bpm-biz/src/main/java/com/jeelowcode/service/bpm/service/impl/BpmProcessInstanceCopyServiceImpl.java @@ -30,6 +30,7 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; import static com.jeelowcode.tool.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -124,13 +125,17 @@ public class BpmProcessInstanceCopyServiceImpl implements IBpmProcessInstanceCop } // 2. 创建抄送流程 - BpmProcessInstanceCopyDO copy = new BpmProcessInstanceCopyDO() - .setTaskId(reqVO.getTaskId()).setTaskName(task.getName()) - .setProcessInstanceId(processInstanceId).setStartUserId(Long.valueOf(processInstance.getStartUserId())) - .setProcessInstanceName(processInstance.getName()) - .setCategory(null) // TODO 芋艿:貌似新版本,没 processInstance.getProcessDefinitionCategory() 字段? - .setReason(reqVO.getReason()); - processInstanceCopyMapper.insert(copy); + List copyList = + reqVO.getUserIds().stream().map(singleUserId -> + new BpmProcessInstanceCopyDO() + .setTaskId(reqVO.getTaskId()).setTaskName(task.getName()) + .setProcessInstanceId(processInstanceId).setStartUserId(Long.valueOf(processInstance.getStartUserId())) + .setProcessInstanceName(processInstance.getName()) + .setUserId(singleUserId) + .setCategory(null) // TODO 芋艿:貌似新版本,没 processInstance.getProcessDefinitionCategory() 字段? + .setReason(reqVO.getReason()) + ).collect(Collectors.toList()); + processInstanceCopyMapper.insertBatch(copyList); } @Override