using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; namespace FineUIPro.Web.DataShow { public partial class ProjectSitePerson : PageBase { #region 项目主键 /// /// 项目主键 /// public string ProjectId { get { return (string)ViewState["ProjectId"]; } set { ViewState["ProjectId"] = value; } } #endregion #region 加载页面 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Funs.DropDownPageSize(this.ddlPageSize); this.ProjectId = this.CurrUser.LoginProjectId; this.Panel1.Title = $"项目当前现场人员({BLL.ProjectService.GetProjectNameByProjectId(this.ProjectId)})"; ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); //BLL.ProjectService.InitProjectDropDownList(this.drpProject, true); // 绑定表格t BindGrid(); } } /// /// 绑定数据 /// private void BindGrid() { if (!string.IsNullOrWhiteSpace(this.ProjectId)) { var db = Funs.DB; var startDate = DateTime.Now.Date; var endDate = startDate.AddDays(1); var query = from x in db.SitePerson_PersonInOutNow where x.ChangeTime >= startDate && x.ChangeTime < endDate && x.ProjectId == this.ProjectId group x by new { x.PersonId, x.ProjectId } into g select new { g.Key.PersonId, g.Key.ProjectId, MaxChangeTime = g.Max(x => x.ChangeTime) }; var finalQuery = from record in query join detail in db.SitePerson_PersonInOutNow on new { record.PersonId, record.ProjectId, record.MaxChangeTime } equals new { detail.PersonId, detail.ProjectId, MaxChangeTime = detail.ChangeTime } join y in db.SitePerson_Person on record.PersonId equals y.PersonId join z in db.Base_WorkPost on y.WorkPostId equals z.WorkPostId where detail.IsIn == true select new { PersonId = record.PersonId, PersonName = y.PersonName, WorkPostName = z.WorkPostName, ProjectId = record.ProjectId, ChangeTime = record.MaxChangeTime, PostType = z.PostType, IsIn = true, }; if (this.chManager.Checked) { finalQuery = finalQuery.Where(x => x.PostType == Const.PostType_1); } DataTable tb = this.LINQToDataTable(finalQuery); Grid1.RecordCount = tb.Rows.Count; var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); } } #endregion #region 查询 /// /// 查询 /// /// /// protected void TextBox_TextChanged(object sender, EventArgs e) { this.BindGrid(); } #endregion #region 表排序、分页、关闭窗口 /// /// 分页 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid(); } /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, GridSortEventArgs e) { BindGrid(); } /// /// 分页显示条数下拉框 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } /// /// 关闭弹出窗 /// /// /// protected void Window1_Close(object sender, WindowCloseEventArgs e) { BindGrid(); } #endregion } }