Beispiel #1
0
        /// <summary>
        /// 按公司获取员工列表
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <param name="organizationId">组织主键</param>
        /// <param name="containChildren">含子部门</param>
        /// <returns>数据表</returns>
        public DataTable GetDataTableByOrganization(BaseUserInfo userInfo, string organizationId, bool containChildren)
        {
            var dt        = new DataTable(BaseStaffEntity.CurrentTableName);
            var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) =>
            {
                // 用户已经不存在的需要整理干净,防止数据不完整。
                var sql = "UPDATE BaseStaff SET UserId = NULL WHERE (UserId NOT IN (SELECT Id FROM BaseUser))";
                dbHelper.ExecuteNonQuery(sql);
                dbHelper.Close();
                // 这里是读取的服务器连接
                dbHelper.Open(BaseSystemInfo.UserCenterReadDbConnection);
                var manager = new BaseStaffManager(dbHelper, userInfo);
                if (containChildren)
                {
                    dt = manager.GetChildrenStaffs(organizationId);
                }
                else
                {
                    dt = manager.GetDataTableByOrganization(organizationId);
                }
                dt.TableName = BaseStaffEntity.CurrentTableName;
            });
            return(dt);
        }