feat(REQ-5965) - 添加前加签代码逻辑,自测流程引擎内部是否正常

This commit is contained in:
wangli 2025-10-10 15:27:19 +08:00
parent 678e19c3a6
commit f461d17d2c

View File

@ -11,6 +11,7 @@ import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.flowable.bpmn.model.BpmnModel;
import org.flowable.common.engine.impl.cfg.IdGenerator;
import org.flowable.common.engine.impl.interceptor.CommandContext;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.TaskService;
@ -27,6 +28,7 @@ import org.springframework.util.CollectionUtils;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -157,6 +159,7 @@ public class CustomCountersignUserTaskCmd extends AbstractCommand<Void> implemen
private void forwardCountSign(CommandContext commandContext, TaskEntity task, List<BpmnTaskDelegateAssigner> valuTargetAssigneeList) {
ProcessEngineConfigurationImpl processEngineConfiguration =
CommandContextUtil.getProcessEngineConfiguration(commandContext);
IdGenerator idGenerator = processEngineConfiguration.getIdGenerator();
TaskService taskService = processEngineConfiguration.getTaskService();
if (task instanceof TaskEntityImpl) {
TaskEntityImpl taskEntity = (TaskEntityImpl) task;
@ -168,6 +171,20 @@ public class CustomCountersignUserTaskCmd extends AbstractCommand<Void> implemen
valuTargetAssigneeList.forEach(e -> {
// TODO 创建新的任务
TaskEntityImpl subTask = (TaskEntityImpl) taskService.newTask(idGenerator.getNextId());
subTask.setName(task.getName());
subTask.setDescription(task.getDescription());
subTask.setCategory(task.getCategory());
subTask.setParentTaskId(task.getId());
subTask.setProcessDefinitionId(task.getProcessDefinitionId());
subTask.setProcessInstanceId(task.getProcessInstanceId());
subTask.setTaskDefinitionKey(task.getTaskDefinitionKey());
subTask.setTaskDefinitionId(task.getTaskDefinitionId());
subTask.setPriority(task.getPriority());
subTask.setCreateTime(new Date());
subTask.setTenantId(task.getTenantId());
subTask.setAssignee(e.buildAssigneeId());
taskService.saveTask(subTask);
});
}
}