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