/// <summary>
        /// 获取内部组织机构
        /// </summary>
        /// <param name="userInfo">用户</param>
        /// <returns>数据表</returns>
        public DataTable GetInnerOrganizeDT(UserInfo userInfo)
        {
            var parameter = ParameterUtil.CreateWithLog(userInfo, MethodBase.GetCurrentMethod());

            ServiceUtil.ProcessRDIWriteDbWithLock(userInfo, parameter, locker, (dbProvider, getOnLine) =>
            {
                var organizeManager = new PiOrganizeManager(dbProvider, userInfo);
                if (MessageService.LastCheckOrgTime == DateTime.MinValue)
                {
                    getOnLine = true;
                }
                else
                {
                    TimeSpan timeSpan = DateTime.Now - MessageService.LastCheckOrgTime;
                    if ((timeSpan.Minutes * 60 + timeSpan.Seconds) >= SystemInfo.OnLineCheck * 100)
                    {
                        getOnLine = true;
                    }
                }
                if (OnLineStateDT == null || getOnLine)
                {
                    string commandText = " SELECT * "
                                         + " FROM " + PiOrganizeTable.TableName
                                         + " WHERE " + PiOrganizeTable.FieldDeleteMark + " = 0 "
                                         + " AND " + PiOrganizeTable.FieldIsInnerOrganize + " = 1 "
                                         + " AND " + PiOrganizeTable.FieldEnabled + " = 1 "
                                         + " ORDER BY " + PiOrganizeTable.FieldSortCode;
                    InnerOrganizeDT                 = organizeManager.Fill(commandText);
                    InnerOrganizeDT.TableName       = PiOrganizeTable.TableName;
                    MessageService.LastCheckOrgTime = DateTime.Now;
                }
                return(getOnLine);
            });

            return(InnerOrganizeDT);
        }