diff --git a/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs b/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs index d6dd698..a7231f0 100644 --- a/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs +++ b/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs @@ -1625,7 +1625,37 @@ namespace APT.BaseData.Services.Services.FM private Guid? GetApproveUser(T_PF_APPROVE_TEMP_DETAIL approveTempDetail, List users, Guid loginUserId) { Guid? approveId = null; - if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType.Company) + var approveRole = this.GetEntity(t => t.ID == approveTempDetail.APPROVE_ROLE_ID); + if (approveRole != null && approveRole.NAME == "分管领导") + { + var user = users.FirstOrDefault(t => t.ID == loginUserId); + if (user.DEPARTMENT_ID != null) + { + List departmentIds = new List(); + GetDepartmentId((Guid)user.DEPARTMENT_ID, ref departmentIds); + if (departmentIds.Any()) + { + var dep = GetEntity(t => departmentIds.Contains(t.ID) && t.DEPARTMENT_TYPE == approveRole.DEPARTMENT_TYPE); + if (dep != null && dep.CHARGEUSER_ID != null) + { + approveId = dep.CHARGEUSER_ID; + } + else + { + return approveId; + } + } + else + { + return approveId; + } + } + else + { + return approveId; + } + } + else if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType.Company) { var approveIds = users.Where(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID).Select(t => t.ID).ToList(); if (approveIds.Count() == 0)