diff --git a/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs b/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs index a7af507..d6dd698 100644 --- a/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs +++ b/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs @@ -1572,7 +1572,50 @@ namespace APT.BaseData.Services.Services.FM } } } - + /// + /// 根据部门树查找审核人(新)去除层级 + /// + /// + /// + /// + private Guid? GetApproveUserNew(T_PF_APPROVE_TEMP_DETAIL approveTempDetail, List users, List departs, Guid loginUserId) + { + Guid? approveId = null; + var user = users.FirstOrDefault(t => t.ID == loginUserId); + var approveIds = users.Where(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID).Select(t => t.ID).ToList(); + if (approveIds.Count() == 0) + { + //当前审批节点未配人员,返回Null + return approveId; + } + else if (approveIds.Count() == 1) + { + //当前节点只有一个人 + approveId = approveIds.FirstOrDefault(); + } + else + { + //当前节点很多人,按当前登录人的层级及上级组织,只会取到一个 + if (user.DEPARTMENT_ID != null) + { + List departmentIds = new List(); + GetDepartmentId((Guid)user.DEPARTMENT_ID, ref departmentIds); + if (departmentIds.Any()) + { + var userTemp = users.FirstOrDefault(x => x.DEPARTMENT_ID!=null && x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && departmentIds.Contains((Guid)x.DEPARTMENT_ID) && approveIds.Contains(x.ID)); + if (userTemp != null) + { + approveId = userTemp.ID; + } + else + { + return approveId; + } + } + } + } + return approveId; + } /// /// 根据部门树查找审核人 ///