Explorar o código

任务监听处理优化

caixiaofeng hai 6 meses
pai
achega
f5bd30396b

+ 7 - 5
flow-workflow/flow-workflow-biz/src/main/java/com/flow/listener/GlobalActivityEventListener.java

@@ -8,10 +8,7 @@ import com.flow.entity.Notify;
 import com.flow.entity.node.Node;
 import com.flow.entity.settings.CancelConfig;
 import com.flow.entity.settings.Settings;
-import com.flow.enums.ApprovalNobodyEnum;
-import com.flow.enums.AssigneeTypeEnum;
-import com.flow.enums.NotifyEnum;
-import com.flow.enums.ProcessStatus;
+import com.flow.enums.*;
 import com.flow.flowable.event.CustomFlowableEngineEvent;
 import com.flow.flowable.model.JumpServiceTask;
 import com.flow.flowable.utils.ProcessElementUtil;
@@ -23,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.flowable.bpmn.model.FlowElement;
 import org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent;
 import org.flowable.common.engine.api.delegate.event.FlowableEngineEvent;
+import org.flowable.engine.RuntimeService;
 import org.flowable.engine.TaskService;
 import org.flowable.engine.delegate.DelegateExecution;
 import org.flowable.engine.delegate.event.AbstractFlowableEngineEventListener;
@@ -52,6 +50,8 @@ public class GlobalActivityEventListener extends AbstractFlowableEngineEventList
     @Autowired
     private TaskService taskService;
     @Autowired
+    private RuntimeService runtimeService;
+    @Autowired
     private NotifyService notifyService;
     @Autowired
     private FlowInstanceService flowInstanceService;
@@ -74,12 +74,14 @@ public class GlobalActivityEventListener extends AbstractFlowableEngineEventList
             if (assigneeType.equals(AssigneeTypeEnum.AUTO_PASS.getType())) {
                 // 自动通过
                 flowTaskService.autoComplete(entity.getId());
+                return;
             } else if (assigneeType.equals(AssigneeTypeEnum.AUTO_REFUSE.getType())) {
                 // 自动拒绝
                 flowTaskService.autoRefuse(entity.getId());
+                return;
             }
-            return;
         }
+
         // 审批人为空方式
         if (StringUtils.isBlank(entity.getAssignee()) || "-000000".equals(entity.getAssignee())) {
             entity.setAssignee("admin");