|
@@ -39,9 +39,10 @@ public class FlowTaskListener implements TaskListener {
|
|
|
@Resource
|
|
|
private ISysUserRoleService userRoleService;
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
- public boolean notify(TaskEventType eventType, Supplier<FlwTask> supplier, NodeModel nodeModel, FlowCreator flowCreator) {
|
|
|
+ public boolean notify(TaskEventType eventType, Supplier<FlwTask> supplier, List<FlwTaskActor> taskActors,
|
|
|
+ NodeModel nodeModel, FlowCreator flowCreator) {
|
|
|
+ // 获取当前任务信息
|
|
|
FlwTask flwTask = supplier.get();
|
|
|
|
|
|
// 不进行二次执行自动跳转逻辑,防止出现taskId不存在,退回需要发起人手动审批
|
|
@@ -51,16 +52,17 @@ public class FlowTaskListener implements TaskListener {
|
|
|
if (null != flwTask) {
|
|
|
// 创建人物,发起人自己,自动跳过
|
|
|
if (TaskEventType.create.eq(eventType) && NodeApproveSelf.AutoSkip.eq(currentNodeModel.getApproveSelf())) {
|
|
|
- boolean autoSkip;
|
|
|
if (NodeSetType.initiatorThemselves.eq(currentNodeModel.getSetType())) {
|
|
|
- autoSkip = true;
|
|
|
+ // 发起人自己,执行自动跳转逻辑
|
|
|
+ flowLongEngine.autoJumpTask(flwTask.getId(), flowCreator);
|
|
|
} else {
|
|
|
+ // 流程发起人自动跳过处理
|
|
|
final FlwInstance instance = flowLongEngine.queryService().getInstance(flwTask.getInstanceId());
|
|
|
- autoSkip = currentNodeModel.getNodeAssigneeList().stream().anyMatch(t -> Objects.equals(t.getId(), instance.getCreateId()));
|
|
|
- }
|
|
|
- if (autoSkip) {
|
|
|
- // 执行自动跳转逻辑
|
|
|
- flowLongEngine.autoJumpTask(flwTask.getId(), flowCreator);
|
|
|
+ if (taskActors.stream().anyMatch(t -> Objects.equals(t.getActorId(), instance.getCreateId()))) {
|
|
|
+ // 审批人与提交人为同一人时,执行自动跳转逻辑
|
|
|
+ flowLongEngine.autoJumpTask(flwTask.getId(), FlowCreator.of(instance.getTenantId(),
|
|
|
+ instance.getCreateId(), instance.getCreateBy()));
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
// 推送消息,需要勾选【审批提醒】
|