diff --git a/OpenAuth.App/FlowApproverApp/FlowApproverApp.cs b/OpenAuth.App/FlowApproverApp/FlowApproverApp.cs index 26ebc074..63335d5d 100644 --- a/OpenAuth.App/FlowApproverApp/FlowApproverApp.cs +++ b/OpenAuth.App/FlowApproverApp/FlowApproverApp.cs @@ -103,22 +103,23 @@ namespace OpenAuth.App /// public FlowApprover[] GetApprovers(QueryApproverReq req) { - var query= Repository.AsQueryable() + // 一次查询,内存中处理,避免 ISugarQueryable 状态污染 + var all = Repository.AsQueryable() .Where(u => u.InstanceId == req.FlowInstanceId - && u.ActivityId == req.ActivityId && u.Status == 0); //本节点待审批的加签人 - if (query.Count() == 0) + && u.ActivityId == req.ActivityId && u.Status == 0) + .OrderBy(u => u.OrderNo) + .ToArray(); + + if (all.Length == 0) return null; + + // 顺序执行:只返回第一个 + if (all[0].ApproveType == Define.APPROVE_TYPE_SEQUENTIAL) { - return null; + return new[] { all[0] }; } - - //如果是顺序执行,取第一个人 - if (query.First().ApproveType == Define.APPROVE_TYPE_SEQUENTIAL) - { - var result = query.OrderBy(u => u.OrderNo).First(); - return new[] { result }; - } - //否则并行且/并行或都是返回所有加签人 - return query.ToArray(); + + // 并行且/并行或:返回全部 + return all; } ///