Exemple #1
0
        /// <summary>
        /// 根据组织Id集合获取组织集合,包括为0的组织,为0的组织表示"本部门",
        /// 为-1的表示全部
        /// </summary>
        /// <param name="orgIds">组织Id集合</param>
        /// <returns></returns>
        public static List <TempOrganization> GetFormatOrgs(List <string> orgIds)
        {
            if (orgIds == null || orgIds.Count == 0)
            {
                return(new List <TempOrganization>());
            }
            List <TempOrganization> orgs = new List <TempOrganization>();

            foreach (string orgId in orgIds)
            {
                if (orgId == Guid.Empty.ToString())
                {
                    orgs.Add(new TempOrganization()
                    {
                        Id = "0", Name = "本部门", Des = "本部门"
                    });
                }
                else if (orgId == "-1")
                {
                    orgs.Add(new TempOrganization()
                    {
                        Id = "-1", Name = "全部", Des = "全部"
                    });
                }
                Sys_Organization org = GetOrg(orgId.ObjToGuid());
                if (org != null)
                {
                    orgs.Add(new TempOrganization()
                    {
                        Id = org.Id.ToString(), Name = org.Name, Des = org.Des
                    });
                }
            }
            return(orgs);
        }
Exemple #2
0
 /// <summary>
 /// 操作完成后
 /// </summary>
 /// <param name="operateType"></param>
 /// <param name="t"></param>
 /// <param name="result"></param>
 /// <param name="currUser"></param>
 /// <param name="otherParams"></param>
 public void OperateCompeletedHandle(ModelRecordOperateType operateType, OrgM_EmpDeptDuty t, bool result, UserInfo currUser, object[] otherParams = null)
 {
     if (result)
     {
         string errMsg = string.Empty;
         if (operateType == ModelRecordOperateType.Add || operateType == ModelRecordOperateType.Edit)
         {
             if (t.OrgM_EmpId.HasValue && t.OrgM_EmpId.Value != Guid.Empty && t.OrgM_DeptId.HasValue && t.OrgM_DeptId.Value != Guid.Empty)
             {
                 OrgM_Dept dept     = OrgMOperate.GetDeptById(t.OrgM_DeptId.Value);
                 string    username = OrgMOperate.GetUserNameByEmpId(t.OrgM_EmpId.Value);
                 if (!string.IsNullOrEmpty(username) && dept != null)
                 {
                     Sys_User         user = UserOperate.GetUser(username);
                     Sys_Organization org  = UserOperate.GetAllOrgs(x => x.Name == dept.Name && x.Flag == dept.Id.ToString()).FirstOrDefault();
                     if (user != null && org != null && user.Sys_OrganizationId != org.Id)
                     {
                         user.Sys_OrganizationId = org.Id;
                         CommonOperate.OperateRecord <Sys_User>(user, ModelRecordOperateType.Edit, out errMsg, new List <string>()
                         {
                             "Sys_OrganizationId"
                         }, false);
                     }
                 }
             }
         }
     }
 }
 /// <summary>
 /// 部门操作完成
 /// </summary>
 /// <param name="operateType"></param>
 /// <param name="t"></param>
 /// <param name="result"></param>
 /// <param name="currUser"></param>
 /// <param name="otherParams"></param>
 public void OperateCompeletedHandle(ModelRecordOperateType operateType, OrgM_Dept t, bool result, UserInfo currUser, object[] otherParams = null)
 {
     if (result)
     {
         string errMsg   = string.Empty;
         Guid?  parentId = null;
         if (t.ParentId.HasValue && t.ParentId.Value != Guid.Empty)
         {
             OrgM_Dept parentDept = OrgMOperate.GetParentDept(t.ParentId.Value);
             if (parentDept != null && !string.IsNullOrEmpty(parentDept.Name))
             {
                 Sys_Organization parentOrg = CommonOperate.GetEntity <Sys_Organization>(x => x.Name == parentDept.Name && x.Flag == parentDept.Id.ToString() && !x.IsDeleted, null, out errMsg);
                 if (parentOrg != null)
                 {
                     parentId = parentOrg.Id;
                 }
             }
         }
         //部门新增后增加到系统组织中
         if (operateType == ModelRecordOperateType.Add)
         {
             Sys_Organization org = new Sys_Organization()
             {
                 Name           = t.Name,
                 ParentId       = parentId,
                 Flag           = t.Id.ToString(),
                 Des            = t.Alias,
                 CreateUserId   = t.CreateUserId,
                 CreateUserName = t.CreateUserName,
                 ModifyUserId   = t.ModifyUserId,
                 ModifyUserName = t.ModifyUserName
             };
             CommonOperate.OperateRecord <Sys_Organization>(org, ModelRecordOperateType.Add, out errMsg, null, false);
         }
         else if (operateType == ModelRecordOperateType.Edit)
         {
             Sys_Organization org = CommonOperate.GetEntity <Sys_Organization>(x => x.Name == t.Name && x.Flag == t.Id.ToString() && !x.IsDeleted, null, out errMsg);
             if (org != null)
             {
                 org.ParentId       = parentId;
                 org.ModifyDate     = DateTime.Now;
                 org.ModifyUserId   = t.ModifyUserId;
                 org.ModifyUserName = t.ModifyUserName;
                 List <string> fileNames = new List <string>()
                 {
                     "ParentId", "ModifyDate", "ModifyUserId", "ModifyUserName"
                 };
                 CommonOperate.OperateRecord <Sys_Organization>(org, ModelRecordOperateType.Edit, out errMsg, fileNames, false);
             }
         }
     }
 }
Exemple #4
0
        /// <summary>
        /// 组织用户树
        /// </summary
        /// <param name="orgId">组织根结点ID,为空是加载整棵树</param>
        /// <param name="isAsync">是否异步方式</param>
        /// <param name="expression">过滤表达式</param>
        /// <returns></returns>
        public static TreeNode LoadOrgUserTree(Guid?orgId, bool isAsync = false, Expression <Func <Sys_User, bool> > expression = null)
        {
            TreeNode         node    = null;
            Sys_Organization orgRoot = GetOrgRoot();
            Sys_Organization root    = orgId.HasValue && orgId.Value != Guid.Empty ? GetOrg(orgId.Value) : orgRoot;
            List <TreeNode>  list    = new List <TreeNode>();

            if (root != null)
            {
                if (expression == null)
                {
                    //组织根结点
                    node = new TreeNode()
                    {
                        id      = root.Id.ToString(),
                        text    = root.Name,
                        iconCls = "eu-icon-dept",
                        state   = isAsync ? "closed" : "open"
                    };
                    //加载用户节点
                    List <Sys_User> listUsers = GetOrgUsers(root.Id, true, expression); //该组织下用户
                    if (listUsers != null && listUsers.Count > 0)
                    {
                        List <TreeNode> empNodes = listUsers.Select(x => new TreeNode()
                        {
                            id      = x.Id.ToString(),
                            text    = string.IsNullOrEmpty(x.AliasName) ? x.UserName : string.Format("{0}({1})", x.UserName, x.AliasName),
                            iconCls = "eu-icon-user"
                        }).ToList();
                        list.AddRange(empNodes);
                    }
                    //加载组织子结点
                    List <Sys_Organization> listOrgs = GetChildOrgs(root.Id, true);
                    if (!isAsync) //同步方式
                    {
                        foreach (Sys_Organization org in listOrgs)
                        {
                            TreeNode tempNode = LoadOrgUserTree(org.Id, isAsync, expression);
                            if (tempNode != null && tempNode.children != null && tempNode.children.ToList().Count > 0)
                            {
                                list.Add(tempNode);
                            }
                        }
                    }
                    else //异步方式
                    {
                        list.AddRange(listOrgs.Select(x => new TreeNode()
                        {
                            id = x.Id.ToString(), text = x.Name, iconCls = "eu-icon-dept", state = isAsync ? "closed" : "open"
                        }));
                    }
                    node.children = list;
                    if (orgRoot != null && orgRoot.Id == root.Id)
                    {
                        Expression <Func <Sys_User, bool> > exp = x => x.Sys_OrganizationId == null || x.Sys_OrganizationId == Guid.Empty;
                        if (expression != null)
                        {
                            exp = ExpressionExtension.And(exp, expression);
                        }
                        //加载没有组织的用户
                        List <Sys_User> noOrgUsers = GetAllUsers(exp);
                        if (noOrgUsers.Count > 0)
                        {
                            TreeNode tempNode = new TreeNode()
                            {
                                id      = Guid.Empty.ToString(),
                                text    = "根结点",
                                iconCls = "eu-icon-dept"
                            };
                            List <TreeNode> tempChildren = new List <TreeNode>()
                            {
                                node
                            };
                            List <TreeNode> noUserNodes = noOrgUsers.Select(x => new TreeNode()
                            {
                                id      = x.Id.ToString(),
                                text    = string.IsNullOrEmpty(x.AliasName) ? x.UserName : string.Format("{0}({1})", x.UserName, x.AliasName),
                                iconCls = "eu-icon-user"
                            }).ToList();
                            tempChildren.AddRange(noUserNodes);
                            tempNode.children = tempChildren;
                            node = tempNode;
                        }
                    }
                }
                else
                {
                    node = new TreeNode()
                    {
                        id      = root.Id.ToString(),
                        text    = root.Name,
                        iconCls = "eu-icon-dept"
                    };
                    List <Sys_User> listUsers = GetAllUsers(expression);
                    if (listUsers != null && listUsers.Count > 0)
                    {
                        List <TreeNode> empNodes = listUsers.Select(x => new TreeNode()
                        {
                            id      = x.Id.ToString(),
                            text    = string.IsNullOrEmpty(x.AliasName) ? x.UserName : string.Format("{0}({1})", x.UserName, x.AliasName),
                            iconCls = "eu-icon-user"
                        }).ToList();
                        list.AddRange(empNodes);
                        node.children = list;
                    }
                }
            }
            else
            {
                //加载用户节点
                List <Sys_User> listUsers = GetAllUsers(expression);
                if (listUsers != null && listUsers.Count > 0)
                {
                    node = new TreeNode()
                    {
                        id      = Guid.Empty.ToString(),
                        text    = "根结点",
                        iconCls = "eu-icon-dept"
                    };
                    List <TreeNode> empNodes = listUsers.Select(x => new TreeNode()
                    {
                        id      = x.Id.ToString(),
                        text    = string.IsNullOrEmpty(x.AliasName) ? x.UserName : string.Format("{0}({1})", x.UserName, x.AliasName),
                        iconCls = "eu-icon-user"
                    }).ToList();
                    list.AddRange(empNodes);
                    node.children = list;
                }
            }
            return(node);
        }