feat(bpm): 支持批量创建抄送流程实例
- 引入 Collectors 类以支持流式处理 - 将单个抄送流程创建改为批量创建 -为每个用户 ID 生成独立的抄送记录 - 使用 insertBatch 方法提高插入效率 -保持原有字段设置逻辑不变 - 修复可能的空指针异常风险
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user