mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-11-05 14:49:43 +08:00
update: 使用通用方法创建工作流上下文,简化上下文构建逻辑
This commit is contained in:
parent
710287533f
commit
0e8d63ca47
@ -148,8 +148,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
||||
if (CollUtil.isEmpty(flowCopyList)) {
|
||||
return;
|
||||
}
|
||||
WorkflowContext context = new WorkflowContext();
|
||||
context.setHandler(LoginHelper.getUserIdStr());
|
||||
WorkflowContext context = WorkflowContext.create(LoginHelper.getUserIdStr());
|
||||
context.setMessage("【抄送给】" + StreamUtils.join(flowCopyList, FlowCopyBo::getNickName));
|
||||
// 抄送留痕交给引擎:按「同一待办 + 同一人」幂等,抄送人挂在抄送历史主键上,办结后仍可补抄送。
|
||||
HisTask copyHis = taskService.copy(task.getId()
|
||||
@ -573,7 +572,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
||||
List<FlowNode> nextFlowNodes = BeanUtil.copyToList(nextNodeList, FlowNode.class);
|
||||
//构建以下节点数据
|
||||
List<Task> buildNextTaskList = StreamUtils.toList(nextNodeList, node -> taskService.addTask(node, instance
|
||||
, definition, new WorkflowContext(), SkipType.PASS.getKey()));
|
||||
, definition, WorkflowContext.create(), SkipType.PASS.getKey()));
|
||||
//办理人变量替换
|
||||
ExpressionUtil.evalVariable(buildNextTaskList, mergeVariable, null, false);
|
||||
Map<String, List<String>> map = StreamUtils.toMap(buildNextTaskList, Task::getNodeCode, Task::getPermissionList);
|
||||
|
||||
@ -191,7 +191,7 @@ public class WorkflowServiceImpl implements WorkflowService {
|
||||
throw new ServiceException("消息启动参数不能为空");
|
||||
}
|
||||
return FlowEngine.insService().startByMessage(request.getBusinessId(), request.getFlowCode(),
|
||||
request.getEventName(), request.getPayload(), eventContext(request.getHandler())).getId();
|
||||
request.getEventName(), request.getPayload(), WorkflowContext.create(request.getHandler())).getId();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -207,7 +207,7 @@ public class WorkflowServiceImpl implements WorkflowService {
|
||||
throw new ServiceException("消息事件参数不能为空");
|
||||
}
|
||||
return FlowEngine.insService().triggerMessage(request.getInstanceId(), request.getEventName(),
|
||||
request.getPayload(), eventContext(request.getHandler())).getId();
|
||||
request.getPayload(), WorkflowContext.create(request.getHandler())).getId();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -225,7 +225,7 @@ public class WorkflowServiceImpl implements WorkflowService {
|
||||
String businessId = StringUtils.isNotBlank(request.getBusinessId())
|
||||
? request.getBusinessId().trim() : String.valueOf(IdWorker.getId());
|
||||
return FlowEngine.insService().startByTimer(businessId, request.getDefinitionId(),
|
||||
request.getNodeCode(), request.getPayload(), eventContext(request.getHandler())).getId();
|
||||
request.getNodeCode(), request.getPayload(), WorkflowContext.create(request.getHandler())).getId();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -256,15 +256,4 @@ public class WorkflowServiceImpl implements WorkflowService {
|
||||
return FlowEngine.taskService().throwError(taskId, errorCode, errorMessage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建事件上下文
|
||||
*
|
||||
* @param handler 操作人
|
||||
* @return 事件上下文
|
||||
*/
|
||||
private WorkflowContext eventContext(String handler) {
|
||||
WorkflowContext context = new WorkflowContext();
|
||||
context.setHandler(StringUtils.isNotBlank(handler) ? handler : FlowEngine.getFlowConfig().getSystemHandler());
|
||||
return context;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user