342 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			342 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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 加载
 | |
|         /// <summary>
 | |
|         /// 加载页面
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         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 绑定数据
 | |
|         /// <summary>
 | |
|         /// 绑定数据
 | |
|         /// </summary>
 | |
|         //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<SqlParameter> listStr = new List<SqlParameter>();
 | |
|         //    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<SqlParameter> listStr = new List<SqlParameter>();
 | |
|                 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<SqlParameter> listStr = new List<SqlParameter>();
 | |
|                             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<SqlParameter> listStr = new List<SqlParameter>();
 | |
|                             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<SqlParameter> listStr = new List<SqlParameter>();
 | |
|                             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<SqlParameter> listStr = new List<SqlParameter>();
 | |
|                             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
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
 | |
|         {
 | |
|             BindGrid(ckState.SelectedValue, "");
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         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 双击行事件
 | |
|         /// <summary>
 | |
|         /// 双击事件
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         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 查询
 | |
|         /// <summary>
 | |
|         /// 查询
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void TextBox_TextChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             this.BindGrid(ckState.SelectedValue, "");
 | |
|         }
 | |
|         #endregion
 | |
|    
 | |
|         /// <summary>
 | |
|         /// 进入项目现场
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         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);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| } |