public List<FlowUserInfo> GetFlowUserInfoByRoleID(string roleID) { using (SysUserBLL bll = new SysUserBLL()) { Tracer.Debug("流程调用了GetFlowUserInfoByRoleID:"+ roleID); return bll.GetFlowUserInfoByRoleID(roleID); } }
/// <summary> /// 通过状态代码查询下一处理人(对服务操作) /// </summary> /// <param name="RoleId">状态代码(角色ID(RoleName))</param> /// <returns></returns> private List<UserInfo> TmGetUserByRoleId(string RoleId, string UserID, string PostID, ref bool isHigher) { try { string CurrentRoleId = RoleId == "EndFlow" ? "End" : RoleId; //取得当前状态 List<UserInfo> listUser = new List<UserInfo>(); if (CurrentRoleId != "End") { string WFCurrentRoleId = ""; int isDirect = 0; #region 是否是直接上级,隔级上级,部门负责人 foreach (Higher c in Enum.GetValues(typeof(Higher))) { if (CurrentRoleId.ToUpper() == c.ToString().ToUpper()) { isDirect = (int)c;//== 1 ? true : false; WFCurrentRoleId = CurrentRoleId; isHigher = true; } } #endregion if (WFCurrentRoleId != "") { //PermissionService #region 如果是直接上级,隔级上级,部门负责人 Tracer.Debug("UserID=" + UserID + " 开始调用 直接上级,隔级上级,部门负责人:WcfPersonnel.GetEmployeeLeaders(岗位ID=" + PostID + ", isDirect=" + isDirect + ")"); List<SMT.HRM.CustomModel.V_EMPLOYEEVIEW> User = new List<SMT.HRM.CustomModel.V_EMPLOYEEVIEW>(); using (EmployeeBLL bll = new EmployeeBLL()) { User = bll.GetEmployeeLeaders(PostID, isDirect); } //V_EMPLOYEEVIEW[] User = WcfPersonnel.GetEmployeeLeaders(PostID, isDirect); string strtemp = "UserID=" + UserID + " 结束调用 直接上级,隔级上级,部门负责人:WcfPersonnel.GetEmployeeLeaders(岗位ID=" + PostID + ", isDirect=" + isDirect + ")"; if (User != null && User.Count > 0) { for (int i = 0; i < User.Count; i++) { UserInfo tmp = new UserInfo(); tmp.UserID = User[i].EMPLOYEEID; tmp.UserName = User[i].EMPLOYEECNAME; tmp.CompanyID = User[i].OWNERCOMPANYID; tmp.DepartmentID = User[i].OWNERDEPARTMENTID; tmp.PostID = User[i].OWNERPOSTID; tmp.CompanyName = User[i].COMPANYNAME; tmp.DepartmentName = User[i].DEPARTMENTNAME; tmp.PostName = User[i].POSTNAME; tmp.Roles = new List<TM_SaaS_OA_EFModel.T_SYS_ROLE>(); listUser.Add(tmp); strtemp += "公司ID = " + User[i].EMPLOYEEID + "\r\n"; strtemp += "部门ID = " + User[i].OWNERDEPARTMENTID + "\r\n"; strtemp += "岗位ID = " + User[i].OWNERPOSTID + "\r\n"; strtemp += "员工ID = " + User[i].EMPLOYEEID + "\r\n"; strtemp += "公司名称 = " + User[i].COMPANYNAME + "\r\n"; strtemp += "部门名称 = " + User[i].DEPARTMENTNAME + "\r\n"; strtemp += "岗位名称 = " + User[i].POSTNAME + "\r\n"; strtemp += "员工姓名 = " + User[i].EMPLOYEECNAME + "\r\n"; } } #endregion Tracer.Debug(strtemp); } else { #region 根据角色ID查找人 Tracer.Debug("UserID=" + UserID + " 开始调用 检索本状态(角色)对应用户:WcfPermissionService.GetFlowUserInfoByRoleID(角色ID=" + WFCurrentRoleId + ")"); WFCurrentRoleId = new Guid(CurrentRoleId).ToString("D"); try { List<SMT.HRM.CustomModel.Permission.FlowUserInfo> User = new List<HRM.CustomModel.Permission.FlowUserInfo>();//新的接口 using (SysUserBLL bll = new SysUserBLL()) { User= bll.GetFlowUserInfoByRoleID(WFCurrentRoleId); } string strRole = "UserID=" + UserID + " 结束调用 检索本状态(角色)对应用户:WcfPermissionService.GetFlowUserInfoByRoleID(角色ID=" + WFCurrentRoleId + ")\r\n"; if (User != null && User.Count > 0) { for (int i = 0; i < User.Count; i++) { #region UserInfo tmp = new UserInfo(); strRole += "公司ID = " + User[i].CompayID + "\r\n"; strRole += "部门ID = " + User[i].DepartmentID + "\r\n"; strRole += "岗位ID = " + User[i].PostID + "\r\n"; strRole += "员工ID = " + User[i].UserID + "\r\n"; strRole += "公司名称 = " + User[i].CompayName + "\r\n"; strRole += "部门名称 = " + User[i].DepartmentName + "\r\n"; strRole += "岗位名称 = " + User[i].PostName + "\r\n"; strRole += "员工姓名 = " + User[i].EmployeeName + "\r\n"; tmp.UserID = User[i].UserID; tmp.UserName = User[i].EmployeeName; tmp.CompanyID = User[i].CompayID; tmp.DepartmentID = User[i].DepartmentID; tmp.PostID = User[i].PostID; tmp.CompanyName = User[i].CompayName; tmp.DepartmentName = User[i].DepartmentName; tmp.PostName = User[i].PostName; tmp.Roles = new List<TM_SaaS_OA_EFModel.T_SYS_ROLE>(); foreach (var role in User[i].Roles) { tmp.Roles.Add(role); strRole += "角色ID = " + role.ROLEID + "\r\n"; strRole += "角色名称 = " + role.ROLENAME + "\r\n"; } listUser.Add(tmp); strRole += "\r\n"; strRole += "==================================================================================\r\n"; #endregion } } Tracer.Debug(strRole); } catch (Exception ex) { Tracer.Debug("权限服务GetSysUserByRole异常信息 角色id:" + WFCurrentRoleId + "" + ex.ToString()); throw new Exception("下一审核人为空,请联系公司权限管理员检查角色下的人员,角色id:" + WFCurrentRoleId); } #endregion } } else { //已经到流程结束状态 UserInfo tmp = new UserInfo(); tmp.UserID = "End"; tmp.UserName = "******"; listUser.Add(tmp); } return listUser; } catch (Exception ex) { Tracer.Debug("通过状态代码调用权限服务出错查询下一处理人(对服务操作) GetUserByStateCode异常信息 :" + ex.ToString()); throw new Exception("调用权限服务出错,请联系管理员!"); // return null ; } //finally //{ // WcfPermissionService.Close(); // WcfPermissionService = null; // WcfPersonnel.Close(); // WcfPersonnel = null; //} }