xinjiang/SGGL/FineUIPro.Web/HSSE/SitePerson/DayReportView.aspx.cs

248 lines
9.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using System.IO;
using Newtonsoft.Json.Linq;
namespace FineUIPro.Web.SitePerson
{
public partial class DayReportView : PageBase
{
#region
/// <summary>
/// 主键
/// </summary>
public string DayReportId
{
get
{
return (string)ViewState["DayReportId"];
}
set
{
ViewState["DayReportId"] = value;
}
}
public string nowData
{
get
{
return (string)ViewState["nowData"];
}
set
{
ViewState["nowData"] = value;
}
}
/// <summary>
/// 主键
/// </summary>
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
btnClose.OnClientClick = ActiveWindow.GetHideReference();
this.ProjectId = this.CurrUser.LoginProjectId;
this.DayReportId = Request.Params["DayReportId"];
this.nowData = Request.Params["nowData"];
DateTime cDate = DateTime.Now;
if (this.nowData == "-1")
{
var dayReport = Funs.DB.SitePerson_DayReport.FirstOrDefault(x => x.DayReportId == this.DayReportId);
if (dayReport != null)
{
this.ProjectId = dayReport.ProjectId;
this.txtDayReportCode.Text = BLL.CodeRecordsService.ReturnCodeByDataId(this.DayReportId);
var user = BLL.UserService.GetUserByUserId(dayReport.CompileMan);
if (user != null)
{
this.txtCompileMan.Text = user.UserName;
}
if (dayReport.CompileDate.HasValue)
{
cDate = dayReport.CompileDate.Value;
this.txtCompileDate.Text = String.Format("{0:yyyy-MM-dd}", dayReport.CompileDate);
}
}
}
else
{
var dayReport = BLL.SitePerson_DayReportService.GetDayReportByDayReportId(this.DayReportId);
if (dayReport != null)
{
this.ProjectId = dayReport.ProjectId;
this.txtDayReportCode.Text = BLL.CodeRecordsService.ReturnCodeByDataId(this.DayReportId);
var user = BLL.UserService.GetUserByUserId(dayReport.CompileMan);
if (user != null)
{
this.txtCompileMan.Text = user.UserName;
}
if (dayReport.CompileDate.HasValue)
{
cDate = dayReport.CompileDate.Value;
this.txtCompileDate.Text = String.Format("{0:yyyy-MM-dd}", dayReport.CompileDate);
}
}
}
getDayReportDetails = (from x in Funs.DB.SitePerson_DayReportDetail
join y in Funs.DB.SitePerson_DayReport on x.DayReportId equals y.DayReportId
where y.ProjectId == this.CurrUser.LoginProjectId && y.CompileDate <=cDate
select x).ToList();
getYearDayReportDetails =( from x in getDayReportDetails
join y in Funs.DB.SitePerson_DayReport on x.DayReportId equals y.DayReportId
where y.CompileDate.Value.Year == cDate.Year && y.DayReportId != null
select x).ToList();
BindGrid();
///初始化审核菜单
// this.ctlAuditFlow.MenuId = BLL.Const.DayReportMenuId;
// this.ctlAuditFlow.DataId = this.DayReportId;
}
}
#endregion
private static List<Model.SitePerson_DayReportDetail> getDayReportDetails;
private static List<Model.SitePerson_DayReportDetail> getYearDayReportDetails;
#region
/// <summary>
/// 绑定明细数据
/// </summary>
private void BindGrid()
{
Model.SGGLDB db = Funs.DB;
if (this.nowData == "-1")
{
var q = (from x in db.SitePerson_DayReportDetail
join a in db.SitePerson_DayReport on x.DayReportId equals a.DayReportId
join b in db.Base_Unit on x.UnitId equals b.UnitId
where x.DayReportId == this.DayReportId
orderby b.UnitCode
select new
{
x.DayReportDetailId,
x.DayReportId,
x.UnitId,
x.StaffData,
x.DayNum,
x.WorkTime,
x.CheckPersonNum,
x.RealPersonNum,
x.PersonWorkTime,
YearPersonWorkTime = getYears(x.UnitId),
TotalPersonWorkTime = getTotals(x.UnitId),
x.Remark,
b.UnitName,
}).ToList();
Grid1.DataSource = q;
Grid1.DataBind();
}
else
{
var q = (from x in db.SitePerson_DayReportDetail
join a in db.SitePerson_DayReport on x.DayReportId equals a.DayReportId
join b in db.Base_Unit on x.UnitId equals b.UnitId
where x.DayReportId == this.DayReportId
orderby b.UnitCode
select new
{
x.DayReportDetailId,
x.DayReportId,
x.UnitId,
x.StaffData,
x.DayNum,
x.WorkTime,
x.CheckPersonNum,
x.RealPersonNum,
x.PersonWorkTime,
YearPersonWorkTime = getYears(x.UnitId),
TotalPersonWorkTime = getTotals(x.UnitId),
x.Remark,
b.UnitName,
}).ToList();
Grid1.DataSource = q;
Grid1.DataBind();
}
}
private decimal getYears(string UnitId)
{
return getYearDayReportDetails.Where(z => z.UnitId == UnitId).Sum(z => z.PersonWorkTime ?? 0);
}
private decimal getTotals(string UnitId)
{
return getDayReportDetails.Where(z => z.UnitId == UnitId).Sum(z => z.PersonWorkTime ?? 0);
}
#endregion
#region
/// <summary>
/// 关闭弹出窗
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, EventArgs e)
{
BindGrid();
}
#endregion
#region Grid双击事件
/// <summary>
/// Grid行双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
{
if (this.nowData != "-1")
{
btnMenuEdit_Click(null, null);
}
}
#endregion
#region
/// <summary>
/// 编辑按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuEdit_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
}
string dayReportDetailId = Grid1.SelectedRowID;
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("DayReportDetailEdit.aspx?DayReportDetailId={0}&type=view", dayReportDetailId, "查看 - ")));
}
#endregion
}
}