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