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) { this.ProjectId = this.CurrUser.LoginProjectId; Funs.DropDownPageSize(this.ddlPageSize); UnitService.InitUnitDownList(this.drpUnit, this.ProjectId, true); TeamGroupService.InitTeamGroupProjectUnitDropDownList(this.drpWorkTeam, this.ProjectId, null, true); WorkPostService.InitWorkPostDropDownList(this.drpWorkPost, true); 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 join u in db.Base_Unit on detail.UnitId equals u.UnitId join tg in db.ProjectData_TeamGroup on y.TeamGroupId equals tg.TeamGroupId where detail.IsIn == true select new { PersonId = record.PersonId, PersonName = y.PersonName, WorkPostId = y.WorkPostId, WorkPostName = z.WorkPostName, IdentityCard = y.IdentityCard, UnitId = y.UnitId, UnitName = u.UnitName, TeamGroupId = y.TeamGroupId, TeamGroupName = tg.TeamGroupName, ProjectId = record.ProjectId, ChangeTime = record.MaxChangeTime, PostType = z.PostType, IsIn = true, }; if (this.chManager.Checked) { finalQuery = finalQuery.Where(x => x.PostType == Const.PostType_1); } if (!string.IsNullOrWhiteSpace(this.txtPersonName.Text.Trim())) { finalQuery = finalQuery.Where(x => x.PersonName.Contains(this.txtPersonName.Text.Trim())); } if (this.drpUnit.SelectedValue != Const._Null && !string.IsNullOrEmpty(this.drpUnit.SelectedValue)) { finalQuery = finalQuery.Where(x => x.UnitId == this.drpUnit.SelectedValue); } if (this.drpWorkPost.SelectedValue != Const._Null && !string.IsNullOrEmpty(this.drpWorkPost.SelectedValue)) { finalQuery = finalQuery.Where(x => x.WorkPostId == this.drpWorkPost.SelectedValue); } if (this.drpWorkTeam.SelectedValue != Const._Null && !string.IsNullOrEmpty(this.drpWorkTeam.SelectedValue)) { finalQuery = finalQuery.Where(x => x.TeamGroupId == this.drpWorkTeam.SelectedValue); } 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 #region 导出 /// 导出按钮 /// /// /// protected void btnOut_Click(object sender, EventArgs e) { Response.ClearContent(); string filename = Funs.GetNewFileName(); Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("项目当前现场" + filename + DateTime.Now.ToString("yyyyMMddHHmmss"), System.Text.Encoding.UTF8) + ".xls"); Response.ContentType = "application/excel"; Response.ContentEncoding = System.Text.Encoding.UTF8; this.Grid1.PageSize = this.Grid1.RecordCount; BindGrid(); Response.Write(GetGridTableHtml(Grid1)); Response.End(); } #endregion } }