/// <summary>
        /// 按条件分页查询
        /// </summary>
        /// <param name="userId">查看用户</param>
        /// <param name="auditStatus">审核状态</param>
        /// <param name="searchValue">查询字段</param>
        /// <param name="recordCount">记录数</param>
        /// <param name="pageIndex">当前页</param>
        /// <param name="pageSize">每页显示</param>
        /// <param name="sortExpression">排序字段</param>
        /// <param name="sortDire">排序方向</param>
        /// <returns>数据表</returns>
        public DataTable GetDataTableByPage(string userId, string searchValue, out int recordCount, int pageIndex = 1, int pageSize = 20, string sortExpression = "CreateOn", string sortDire = "DESC")
        {
            string whereConditional = CustomerTable.FieldDeleteMark + " = 0 ";
            // 可以看自己公司的数据
            // whereConditional += " AND " + CustomerEntity.FieldCompanyId + " = '" + this.UserInfo.CompanyId + "'";
            // 用户在某个部门
            PiUserManager userManager = new PiUserManager(this.UserInfo);

            if (userManager.IsInOrganize(this.UserInfo.Id, "技术组") || userManager.IsInOrganize(this.UserInfo.Id, "管理组"))
            {
                // 可以看全部
            }
            else if (!string.IsNullOrEmpty(userId))
            {
                // 只能看自己的
                whereConditional += " AND (" + CustomerTable.FieldCreateUserId + " = '" + userId + "')";
            }
            else
            {
                // 可以看自己部门的数据
                // whereConditional += " AND " + CustomerEntity.FieldDepartmentId + " = '" + this.UserInfo.DepartmentId + "'";
            }

            //auditStatus = auditStatus.Trim();
            //if (!string.IsNullOrEmpty(auditStatus))
            //{
            //    auditStatus = this.DBProvider.SqlSafe(auditStatus);
            //    whereConditional += " AND (" + CustomerTable.FieldAuditStatus + " = '" + auditStatus + "')";
            //}

            searchValue = searchValue.Trim();
            if (!string.IsNullOrEmpty(searchValue))
            {
                searchValue = this.DBProvider.SqlSafe(searchValue);
                if (searchValue.IndexOf("%") < 0)
                {
                    searchValue = "'%" + searchValue + "%'";
                }
                whereConditional += " AND (" + CustomerTable.FieldCreateBy + " LIKE " + searchValue;

                whereConditional += " OR " + CustomerTable.FieldFullName + " LIKE " + searchValue;
                whereConditional += " OR " + CustomerTable.FieldShortName + " LIKE " + searchValue;
                whereConditional += " OR " + CustomerTable.FieldCompanyName + " LIKE " + searchValue;
                whereConditional += " OR " + CustomerTable.FieldCompanyAddress + " LIKE " + searchValue;
                whereConditional += " OR " + CustomerTable.FieldPostalCode + " LIKE " + searchValue;
                whereConditional += " OR " + CustomerTable.FieldCompanyPhone + " LIKE " + searchValue;
                whereConditional += " OR " + CustomerTable.FieldCompanyFax + " LIKE " + searchValue;
                whereConditional += " OR " + CustomerTable.FieldWebAddress + " LIKE " + searchValue;
                whereConditional += " OR " + CustomerTable.FieldLicenceNo + " LIKE " + searchValue;
                whereConditional += " OR " + CustomerTable.FieldChieftain + " LIKE " + searchValue;
                whereConditional += " OR " + CustomerTable.FieldBank + " LIKE " + searchValue;
                whereConditional += " OR " + CustomerTable.FieldBankAccount + " LIKE " + searchValue;
                whereConditional += " OR " + CustomerTable.FieldLocalTaxNo + " LIKE " + searchValue;
                whereConditional += " OR " + CustomerTable.FieldNationalTaxNo + " LIKE " + searchValue;
                whereConditional += " OR " + CustomerTable.FieldDescription + " LIKE " + searchValue;

                whereConditional += " OR " + CustomerTable.FieldModifiedBy + " LIKE " + searchValue + ")";
            }
            return(GetDTByPage(out recordCount, pageIndex, pageSize, sortExpression, sortDire, this.CurrentTableName, whereConditional, "*"));
        }
        /// <summary>
        /// 按条件分页查询
        /// </summary>
        /// <param name="userId">查看用户</param>
        /// <param name="searchValue">查询字段</param>
        /// <param name="recordCount">记录数</param>
        /// <param name="pageIndex">当前页</param>
        /// <param name="pageSize">每页显示</param>
        /// <param name="sortExpression">排序字段</param>
        /// <param name="sortDire">排序方向</param>
        /// <returns>数据表</returns>
        public DataTable GetDataTableByPage(string userId, string searchValue, out int recordCount, int pageIndex = 1, int pageSize = 20, string sortExpression = "CreateOn", string sortDire = "DESC")
        {
            string whereConditional = LinkManTable.FieldDeleteMark + " = 0 ";
            // 可以看自己公司的数据
            // whereConditional += " AND " + LinkManTable.FieldCompanyId + " = '" + this.UserInfo.CompanyId + "'";
            // 用户在某个部门
            PiUserManager userManager = new PiUserManager(this.UserInfo);

            if (userManager.IsInOrganize(this.UserInfo.Id, "技术组") || userManager.IsInOrganize(this.UserInfo.Id, "管理组"))
            {
                // 可以看全部
            }
            else if (!string.IsNullOrEmpty(userId))
            {
                // 只能看自己的
                whereConditional += " AND (" + LinkManTable.FieldCreateUserId + " = '" + userId + "')";
            }
            else
            {
                // 可以看自己部门的数据
                // whereConditional += " AND " + LinkManEntity.FieldDepartmentId + " = '" + this.UserInfo.DepartmentId + "'";
            }

            //auditStatus = auditStatus.Trim();
            //if (!string.IsNullOrEmpty(auditStatus))
            //{
            //    auditStatus = this.DBProvider.SqlSafe(auditStatus);
            //    whereConditional += " AND (" + LinkManTable.FieldAuditStatus + " = '" + auditStatus + "')";
            //}

            searchValue = searchValue.Trim();
            if (!string.IsNullOrEmpty(searchValue))
            {
                searchValue = this.DBProvider.SqlSafe(searchValue);
                if (searchValue.IndexOf("%") < 0)
                {
                    searchValue = "'%" + searchValue + "%'";
                }
                whereConditional += " AND (" + LinkManTable.FieldCreateBy + " LIKE " + searchValue;

                whereConditional += " OR " + LinkManTable.FieldName + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldSex + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldPostion + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldDepartment + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldMobilePhone + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldTelephone + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldShortNumber + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldIDCard + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldOfficeAddress + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldOfficeFax + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldHomePhone + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldEducation + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldSchool + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldDegree + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldHomeZipCode + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldHomeAddress + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldHomeFax + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldNativePlace + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldParty + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldNation + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldNationality + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldMajor + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldEducationalBackground + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldBloodType + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldQQ + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldEmail + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldInterest + " LIKE " + searchValue;
                whereConditional += " OR " + LinkManTable.FieldDescription + " LIKE " + searchValue;

                whereConditional += " OR " + LinkManTable.FieldModifiedBy + " LIKE " + searchValue + ")";
            }

            return(GetDTByPage(out recordCount, pageIndex, pageSize, sortExpression, sortDire, this.CurrentTableName, whereConditional, "*"));
        }
    // 用户是否在某个部门(按编号,按名称的,按简称的)

    #region public bool UserIsInOrganize(string organizeName)
    /// <summary>
    /// 用户是否在某个组织架构里的判断
    /// </summary>
    /// <param name="organizeName">角色编号</param>
    /// <returns>是否在某个角色里</returns>
    public bool UserIsInOrganize(string organizeName)
    {
        var userManager = new PiUserManager(this.RDIFrameworkDbProvider, userInfo);

        return(userManager.IsInOrganize(this.UserInfo.Id, organizeName));
    }