using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace FineUIPro.Web { public partial class SelectProject : PageBase { #region 加载 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Funs.DropDownPageSize(this.ddlPageSize); if (this.CurrUser != null && this.CurrUser.PageSize.HasValue) { Grid1.PageSize = this.CurrUser.PageSize.Value; } this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); // 绑定表格 this.BindGrid(ckState.SelectedValue, ""); } } #endregion #region 绑定数据 /// /// 绑定数据 /// //private void BindGrid() //{ // string strSql = @"SELECT distinct Project.ProjectId," // + @"Project.ProjectCode," // + @"Project.ProjectName," // + @"Project.ProjectState," // + @"ProjectType.ProjectTypeName AS ProjectTypeName," // + @"sysConst.ConstText as ProjectStateName2" // + @" FROM dbo.Project_ProjectUser AS ProjectUser " // + @" LEFT JOIN dbo.Sys_User AS Users ON ProjectUser.UserId = Users.UserId" // + @" LEFT JOIN dbo.Base_Project AS Project ON Project.ProjectId = ProjectUser.ProjectId" // + @" LEFT JOIN Base_ProjectType AS ProjectType ON Project.ProjectType =ProjectType.ProjectTypeId" // + @" LEFT JOIN Sys_Const AS sysConst ON Project.ProjectState2 =sysConst.ConstValue AND sysConst.GroupId= '" + BLL.ConstValue.GroupId_ProjectState + "' " // + @" WHERE 1=1"; // List listStr = new List(); // if (!string.IsNullOrEmpty(this.CurrUser.UserId) && this.CurrUser.UserId != BLL.Const.hfnbdId && this.CurrUser.UserId != BLL.Const.sysglyId) // { // strSql += " AND Users.UserId=@UserId"; // listStr.Add(new SqlParameter("@UserId", this.CurrUser.UserId)); // } // if (!string.IsNullOrEmpty(this.txtProjectName.Text.Trim())) // { // strSql += " AND ProjectName LIKE @ProjectName"; // listStr.Add(new SqlParameter("@ProjectName", "%" + this.txtProjectName.Text.Trim() + "%")); // } // if (this.ckState.SelectedValue != "0") // { // if (this.ckState.SelectedValue == "1") // { // strSql += " AND (ProjectState = '1' OR ProjectState IS NULL)"; // } // else // { // strSql += " AND (ProjectState = @states )"; // listStr.Add(new SqlParameter("@states", this.ckState.SelectedValue)); // } // } // SqlParameter[] parameter = listStr.ToArray(); // DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); // Grid1.RecordCount = tb.Rows.Count; // Grid1.DataSource = this.GetPagedDataTable(Grid1, tb); // Grid1.DataBind(); //} private void BindGrid(string proState, string urlType = "") { if (this.CurrUser.UserId == Const.sysglyId || this.CurrUser.UserId == Const.hfnbdId || this.CurrUser.UserId == Const.sedinId) { string strSql = @"select Project.ProjectId,Project.ProjectCode,Project.ProjectName,Project.ProjectState,ProjectType.ProjectTypeName AS ProjectTypeName,sysConst.ConstText as ProjectStateName2 from Base_Project as Project" + @" LEFT JOIN Base_ProjectType AS ProjectType ON Project.ProjectType =ProjectType.ProjectTypeId" + @" LEFT JOIN Sys_Const AS sysConst ON Project.ProjectState2 =sysConst.ConstValue AND sysConst.GroupId= '" + BLL.ConstValue.GroupId_ProjectState + "' " + @" WHERE 1=1"; List listStr = new List(); if (proState != "0") { if (proState == "2") { strSql += " AND (Project.ProjectState = '2' )"; } else if (proState == "3") { strSql += " AND (Project.ProjectState = '3' )"; } else { strSql += " AND (Project.ProjectState = '1' OR Project.ProjectState IS NULL)"; } } if (!string.IsNullOrEmpty(this.txtProjectName.Text.Trim())) { strSql += " AND ProjectName LIKE @ProjectName"; listStr.Add(new SqlParameter("@ProjectName", "%" + this.txtProjectName.Text.Trim() + "%")); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; Grid1.DataSource = this.GetPagedDataTable(Grid1, tb); Grid1.DataBind(); } else { var getUser = UserService.GetUserByUserId(this.CurrUser.UserId); if (getUser != null) { /// 获取角色类型 var getRoleP = Funs.DB.Sys_RolePower.FirstOrDefault(x => x.RoleId == getUser.RoleId && x.IsOffice == false); //如果是项目级别,获取到他的类型后,并且还要单位是五环的 if (!string.IsNullOrEmpty(urlType)) { //五环的能看所有项目,否则只能看项目用户中有自己或者所属单位是自己单位的 if (getRoleP != null && getUser.UnitId == Const.UnitId_CWCEC) { string strSql = @"select Project.ProjectId,Project.ProjectCode,Project.ProjectName,Project.ProjectState,ProjectType.ProjectTypeName AS ProjectTypeName,sysConst.ConstText as ProjectStateName2 from Base_Project as Project" + @" LEFT JOIN Base_ProjectType AS ProjectType ON Project.ProjectType =ProjectType.ProjectTypeId" + @" LEFT JOIN Sys_Const AS sysConst ON Project.ProjectState2 =sysConst.ConstValue AND sysConst.GroupId= '" + BLL.ConstValue.GroupId_ProjectState + "' " + @" WHERE 1=1"; List listStr = new List(); if (proState != "0") { if (proState == "2") { strSql += " AND (Project.ProjectState = '2' )"; } else if (proState == "3") { strSql += " AND (Project.ProjectState = '3' )"; } else { strSql += " AND (Project.ProjectState = '1' OR Project.ProjectState IS NULL)"; } } if (!string.IsNullOrEmpty(this.txtProjectName.Text.Trim())) { strSql += " AND ProjectName LIKE @ProjectName"; listStr.Add(new SqlParameter("@ProjectName", "%" + this.txtProjectName.Text.Trim() + "%")); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; Grid1.DataSource = this.GetPagedDataTable(Grid1, tb); Grid1.DataBind(); } else { string strSql = @"select distinct p.ProjectId,p.ProjectCode,p.ProjectName from Base_Project p left join Project_ProjectUser as pu on pu.ProjectId = p.ProjectId LEFT JOIN Base_ProjectType AS ProjectType ON p.ProjectType =ProjectType.ProjectTypeId LEFT JOIN Sys_Const AS sysConst ON p.ProjectState2 =sysConst.ConstValue AND sysConst.GroupId=@groupId where ((pu.UserId=@userId and pu.IsPost='true') or p.UnitId=@unitId) and p.ProjectState = @state" + @" WHERE 1=1"; List listStr = new List(); listStr.Add(new SqlParameter("@userId", this.CurrUser.UserId)); listStr.Add(new SqlParameter("@unitId", getUser.UnitId)); if (proState != "0") { listStr.Add(new SqlParameter("@state", proState)); } listStr.Add(new SqlParameter("@groupId", BLL.ConstValue.GroupId_ProjectState)); if (!string.IsNullOrEmpty(this.txtProjectName.Text.Trim())) { strSql += " AND p.ProjectName LIKE @ProjectName"; listStr.Add(new SqlParameter("@ProjectName", "%" + this.txtProjectName.Text.Trim() + "%")); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; Grid1.DataSource = this.GetPagedDataTable(Grid1, tb); Grid1.DataBind(); } } else { if (getRoleP != null) { string strSql = @"select Project.ProjectId,Project.ProjectCode,Project.ProjectName,Project.ProjectState,ProjectType.ProjectTypeName AS ProjectTypeName,sysConst.ConstText as ProjectStateName2 from Base_Project as Project" + @" LEFT JOIN Base_ProjectType AS ProjectType ON Project.ProjectType =ProjectType.ProjectTypeId" + @" LEFT JOIN Sys_Const AS sysConst ON Project.ProjectState2 =sysConst.ConstValue AND sysConst.GroupId= '" + BLL.ConstValue.GroupId_ProjectState + "' " + @" WHERE 1=1"; List listStr = new List(); if (proState != "0") { if (proState == "2") { strSql += " AND (Project.ProjectState = '2' )"; } else if (proState == "3") { strSql += " AND (Project.ProjectState = '3' )"; } else { strSql += " AND (Project.ProjectState = '1' OR Project.ProjectState IS NULL)"; } } if (!string.IsNullOrEmpty(this.txtProjectName.Text.Trim())) { strSql += " AND p.ProjectName LIKE @ProjectName"; listStr.Add(new SqlParameter("@ProjectName", "%" + this.txtProjectName.Text.Trim() + "%")); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; Grid1.DataSource = this.GetPagedDataTable(Grid1, tb); Grid1.DataBind(); } else { string strSql = @"select distinct p.ProjectId,p.ProjectCode,p.ProjectName from Base_Project p left join Project_ProjectUser as pu on pu.ProjectId = p.ProjectId LEFT JOIN Base_ProjectType AS ProjectType ON p.ProjectType =ProjectType.ProjectTypeId LEFT JOIN Sys_Const AS sysConst ON p.ProjectState2 =sysConst.ConstValue AND sysConst.GroupId= @groupId where pu.UserId=@userId and pu.IsPost='true' and p.ProjectState = @state"; List listStr = new List(); listStr.Add(new SqlParameter("@userId", this.CurrUser.UserId)); if (proState != "0") { listStr.Add(new SqlParameter("@state", proState)); } listStr.Add(new SqlParameter("@groupId", BLL.ConstValue.GroupId_ProjectState)); if (!string.IsNullOrEmpty(this.txtProjectName.Text.Trim())) { strSql += " AND p.ProjectName LIKE @ProjectName"; listStr.Add(new SqlParameter("@ProjectName", "%" + this.txtProjectName.Text.Trim() + "%")); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; Grid1.DataSource = this.GetPagedDataTable(Grid1, tb); Grid1.DataBind(); } } } } } #endregion #region Grid /// /// /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid(ckState.SelectedValue, ""); } /// /// /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(ckState.SelectedValue, ""); } protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) { BindGrid(ckState.SelectedValue, ""); } #endregion #region 双击行事件 /// /// 双击事件 /// /// /// protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) { if (!string.IsNullOrEmpty(Grid1.SelectedRowID)) { string url = "~/indexProject.aspx?projectId=" + Grid1.SelectedRowID; UserService.UpdateLastUserInfo(this.CurrUser.UserId, null, false, Grid1.SelectedRowID); PageContext.Redirect(url, "_top"); } else { ShowNotify("请选择项目进入!", MessageBoxIcon.Warning); } } #endregion #region 查询 /// /// 查询 /// /// /// protected void TextBox_TextChanged(object sender, EventArgs e) { this.BindGrid(ckState.SelectedValue, ""); } #endregion /// /// 进入项目现场 /// /// /// protected void btnEnter_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Grid1.SelectedRowID)) { string url = "~/indexProject.aspx?projectId=" + Grid1.SelectedRowID; UserService.UpdateLastUserInfo(this.CurrUser.UserId, null, false, Grid1.SelectedRowID); PageContext.Redirect(url, "_top"); } else { ShowNotify("请选择项目进入!", MessageBoxIcon.Warning); } } } }