248 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			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 | |||
|  |     } | |||
|  | } |