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