feat(bpm): 支持批量创建抄送流程实例

- 引入 Collectors 类以支持流式处理
- 将单个抄送流程创建改为批量创建
-为每个用户 ID 生成独立的抄送记录
- 使用 insertBatch 方法提高插入效率
-保持原有字段设置逻辑不变
- 修复可能的空指针异常风险
This commit is contained in:
2025-10-27 09:10:10 +08:00
parent c49f34d228
commit a0e768d210

View File

@@ -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<BpmProcessInstanceCopyDO> 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