CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/SelectProject.aspx.cs

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);
}
}
}
}