Przeglądaj źródła

发起判断逻辑排除主管

hubin 1 rok temu
rodzic
commit
e7997327f9

+ 5 - 0
src/main/java/com/aizuda/boot/modules/flw/service/impl/FlwProcessServiceImpl.java

@@ -17,6 +17,7 @@ import com.aizuda.bpm.engine.ProcessService;
 import com.aizuda.bpm.engine.core.FlowCreator;
 import com.aizuda.bpm.engine.core.FlowLongContext;
 import com.aizuda.bpm.engine.core.enums.FlowState;
+import com.aizuda.bpm.engine.core.enums.NodeSetType;
 import com.aizuda.bpm.engine.entity.FlwInstance;
 import com.aizuda.bpm.engine.entity.FlwProcess;
 import com.aizuda.bpm.engine.model.*;
@@ -167,6 +168,10 @@ public class FlwProcessServiceImpl extends ServiceImpl<FlwProcessMapper, FlwProc
             Map<String, DynamicAssignee> assigneeMap = dto.getAssigneeMap();
             ApiAssert.fail(MapUtils.isEmpty(assigneeMap), "发起人自选节点未设置处理人员");
             unsetAssigneeNodes.forEach(t -> {
+                if (NodeSetType.supervisor.eq(t.getSetType()) || NodeSetType.multiLevelSupervisors.eq(t.getSetType())) {
+                    // 主管由 FlowTaskActorProvider 类提供,不认为非法逻辑
+                    return;
+                }
                 DynamicAssignee dynamicAssignee = assigneeMap.get(t.getNodeKey());
                 ApiAssert.fail(null == dynamicAssignee || CollectionUtils.isEmpty(dynamicAssignee.getAssigneeList()),
                         "节点【 " + t.getNodeName() + " 】未设置处理人员");