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

342 lines
17 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.ProjectStateProjectType.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.ProjectStateProjectType.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 Project.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);
}
}
}
}