hubin 1 жил өмнө
parent
commit
b815f6f60a

+ 8 - 0
src/main/java/com/aizuda/boot/modules/flw/flow/FlowTaskActorProvider.java

@@ -53,11 +53,17 @@ public class FlowTaskActorProvider implements TaskActorProvider {
 
     @Override
     public List<FlwTaskActor> getTaskActors(NodeModel nodeModel, Execution execution) {
+        if (TaskType.callProcess.eq(nodeModel.getType())) {
+            // 子流程情况
+            return null;
+        }
+
         final FlowCreator flowCreator = execution.getFlowCreator();
         if (TaskType.major.eq(nodeModel.getType())) {
             // 发起人审批,经过 isAllowed 验证合法,直接返回当前执行人
             return Collections.singletonList(FlwTaskActor.ofFlowCreator(flowCreator));
         }
+
         if (TaskType.approval.eq(nodeModel.getType())) {
             /*
              * 审核人类型
@@ -97,6 +103,7 @@ public class FlowTaskActorProvider implements TaskActorProvider {
                 return getDepartmentHeadInfo(flowCreator, nodeModel.getExamineLevel(), true, () -> "未找到任何主管信息");
             }
         }
+
         List<NodeAssignee> nodeAssigneeList = nodeModel.getNodeAssigneeList();
         if (ObjectUtils.isNotEmpty(nodeAssigneeList)) {
             if (null == nodeModel.getSetType() || NodeSetType.specifyMembers.eq(nodeModel.getSetType())) {
@@ -110,6 +117,7 @@ public class FlowTaskActorProvider implements TaskActorProvider {
                         .collect(Collectors.toList());
             }
         }
+
         ApiAssert.fail( "请选择设置流程处理人信息");
         return null;
     }

+ 2 - 1
src/main/java/com/aizuda/boot/modules/flw/flow/FlowTaskListener.java

@@ -28,7 +28,8 @@ public class FlowTaskListener implements TaskListener {
     @Override
     public boolean notify(EventType eventType, Supplier<FlwTask> supplier, NodeModel nodeModel, FlowCreator flowCreator) {
         FlwTask flwTask = supplier.get();
-        if (EventType.create.eq(eventType) || EventType.recreate.eq(eventType)) {
+        // 不进行二次执行自动跳转逻辑,防止出现taskId不存在,退回需要发起人手动审批
+        if (EventType.create.eq(eventType)) {
             // 获取当前节点信息
             NodeModel currentNodeModel = this.getNodeModel(flwTask, nodeModel);
             if (null != flwTask) {

+ 2 - 1
src/main/java/com/aizuda/boot/modules/flw/service/impl/FlwFormCategoryServiceImpl.java

@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 
@@ -38,7 +39,7 @@ public class FlwFormCategoryServiceImpl extends BaseServiceImpl<FlwFormCategoryM
     public List<FlwFormCategoryVO> listTree(FlwFormCategory flwFormCategory) {
         List<FlwFormCategory> sysDepartmentList = super.list(Wrappers.lambdaQuery(flwFormCategory));
         if (CollectionUtils.isEmpty(sysDepartmentList)) {
-            return null;
+            return Collections.emptyList();
         }
         return sysDepartmentList.stream().filter(e -> Objects.equals(0L, e.getPid())).map(e -> {
             FlwFormCategoryVO vo = e.convert(FlwFormCategoryVO.class);