432 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			432 lines
		
	
	
		
			21 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 Newtonsoft.Json.Linq;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace FineUIPro.Web.HSSE.Manager
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    public partial class MonthReportCEdit7 : PageBase
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        #region 定义项
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 月报告查主键
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        public string MonthReportId
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            get
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return (string)ViewState["MonthReportId"];
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            set
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ViewState["MonthReportId"] = value;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 项目主键
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        public string ProjectId
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            get
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return (string)ViewState["ProjectId"];
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            set
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ViewState["ProjectId"] = value;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private static DateTime startTime;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private static DateTime endTime;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private static DateTime yearStartTime;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        private static DateTime projectStartTime;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 定义集合
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 7.1 管理绩效数据统计集合(表一)
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private static List<Model.Manager_Month_AccidentDesciptionC> accidentDesciptions = new List<Model.Manager_Month_AccidentDesciptionC>();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 7.2 管理绩效数据统计集合(表二)
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private static List<Model.Manager_Month_AccidentDesciptionItemC> AccidentDesciptionItems = new List<Model.Manager_Month_AccidentDesciptionItemC>();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 加载
							 | 
						|||
| 
								 | 
							
								        protected void Page_Load(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (!IsPostBack)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                accidentDesciptions.Clear();
							 | 
						|||
| 
								 | 
							
								                AccidentDesciptionItems.Clear();
							 | 
						|||
| 
								 | 
							
								                this.MonthReportId = Request.Params["monthReportId"];
							 | 
						|||
| 
								 | 
							
								                this.ProjectId = this.CurrUser.LoginProjectId;
							 | 
						|||
| 
								 | 
							
								                DateTime months = Convert.ToDateTime(Request.Params["months"]);
							 | 
						|||
| 
								 | 
							
								                startTime = Convert.ToDateTime(Request.Params["startTime"]);
							 | 
						|||
| 
								 | 
							
								                endTime = Convert.ToDateTime(Request.Params["endTime"]);
							 | 
						|||
| 
								 | 
							
								                yearStartTime = Convert.ToDateTime(Request.Params["yearStartTime"]);
							 | 
						|||
| 
								 | 
							
								                Model.Manager_MonthReportC monthReport = BLL.MonthReportCService.GetMonthReportByMonths(months, this.CurrUser.LoginProjectId);
							 | 
						|||
| 
								 | 
							
								                Model.Manager_MonthReportC mr = BLL.MonthReportCService.GetLastMonthReportByDate(endTime, this.ProjectId);
							 | 
						|||
| 
								 | 
							
								                Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(ProjectId);
							 | 
						|||
| 
								 | 
							
								                if (project.StartDate != null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    projectStartTime = Convert.ToDateTime(project.StartDate);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (monthReport != null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    this.MonthReportId = monthReport.MonthReportId;
							 | 
						|||
| 
								 | 
							
								                    this.ProjectId = monthReport.ProjectId;
							 | 
						|||
| 
								 | 
							
								                    months = Convert.ToDateTime(monthReport.Months);
							 | 
						|||
| 
								 | 
							
								                    Model.SGGLDB db = Funs.DB;
							 | 
						|||
| 
								 | 
							
								                    //7.1 管理绩效数据统计(表一)
							 | 
						|||
| 
								 | 
							
								                    accidentDesciptions = (from x in db.Manager_Month_AccidentDesciptionC where x.MonthReportId == MonthReportId orderby x.SortIndex select x).ToList();
							 | 
						|||
| 
								 | 
							
								                    if (accidentDesciptions.Count > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        this.gvAccidentDesciption.DataSource = accidentDesciptions;
							 | 
						|||
| 
								 | 
							
								                        this.gvAccidentDesciption.DataBind();
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        GetAccidentDesciption();//管理绩效数据统计(表一)
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    //7.2 管理绩效数据统计(表二)
							 | 
						|||
| 
								 | 
							
								                    AccidentDesciptionItems = (from x in db.Manager_Month_AccidentDesciptionItemC where x.MonthReportId == MonthReportId orderby x.SortIndex select x).ToList();
							 | 
						|||
| 
								 | 
							
								                    if (AccidentDesciptionItems.Count > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        this.gvAccidentDesciptionItem.DataSource = AccidentDesciptionItems;
							 | 
						|||
| 
								 | 
							
								                        this.gvAccidentDesciptionItem.DataBind();
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        GetAccidentDesciptionItem();//管理绩效数据统计(表二)
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    this.txtAccidentDes.Text = monthReport.AccidentDes;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    GetAccidentDesciption();//管理绩效数据统计(表一)
							 | 
						|||
| 
								 | 
							
								                    GetAccidentDesciptionItem();//管理绩效数据统计(表二)
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 事故
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        ///加载显示初始值
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private void GetAccidentDesciption()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            System.Web.UI.WebControls.ListItem[] list = BLL.AccidentDesciptionCService.GetAccidentDesciptionList();
							 | 
						|||
| 
								 | 
							
								            var accidentPersonRecords = from x in Funs.DB.Accident_AccidentPersonRecord
							 | 
						|||
| 
								 | 
							
								                                        where x.ProjectId == this.CurrUser.LoginProjectId && x.AccidentDate >= startTime && x.AccidentDate < endTime
							 | 
						|||
| 
								 | 
							
								                                        select x;
							 | 
						|||
| 
								 | 
							
								            var yearAccidentPersonRecords = from x in Funs.DB.Accident_AccidentPersonRecord
							 | 
						|||
| 
								 | 
							
								                                            where x.ProjectId == this.CurrUser.LoginProjectId && x.AccidentDate >= yearStartTime && x.AccidentDate < endTime
							 | 
						|||
| 
								 | 
							
								                                            select x;
							 | 
						|||
| 
								 | 
							
								            var accidentHandles = from x in Funs.DB.Accident_AccidentHandle
							 | 
						|||
| 
								 | 
							
								                                  where x.ProjectId == this.CurrUser.LoginProjectId && x.AccidentDate >= startTime && x.AccidentDate < endTime
							 | 
						|||
| 
								 | 
							
								                                  select x;
							 | 
						|||
| 
								 | 
							
								            var yearAccidentHandles = from x in Funs.DB.Accident_AccidentHandle
							 | 
						|||
| 
								 | 
							
								                                      where x.ProjectId == this.CurrUser.LoginProjectId && x.AccidentDate >= yearStartTime && x.AccidentDate < endTime
							 | 
						|||
| 
								 | 
							
								                                      select x;
							 | 
						|||
| 
								 | 
							
								            if (list.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                for (int i = 0; i < list.Count(); i++)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Model.Manager_Month_AccidentDesciptionC des = new Model.Manager_Month_AccidentDesciptionC
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        AccidentDesId = SQLHelper.GetNewID(typeof(Model.Manager_Month_AccidentDesciptionC)),
							 | 
						|||
| 
								 | 
							
								                        Matter = list[i].Value
							 | 
						|||
| 
								 | 
							
								                    };
							 | 
						|||
| 
								 | 
							
								                    if (des.Matter == "百万工时伤害率" || des.Matter == "伤害严重率")
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        //百万工时伤害率:轻重死总累计人数*1000000/累计总人工时(保留2位小数)
							 | 
						|||
| 
								 | 
							
								                        //伤害严重率:事故损失工时数/9*1000000/累计总人工时(保留2位小数)
							 | 
						|||
| 
								 | 
							
								                        if (accidentHandles.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            decimal totalHseManhours = 0;
							 | 
						|||
| 
								 | 
							
								                            Model.Manager_MonthReportC monthReport = BLL.MonthReportCService.GetMonthReportByMonths(Convert.ToDateTime(Request.Params["months"]), this.CurrUser.LoginProjectId);
							 | 
						|||
| 
								 | 
							
								                            if (monthReport != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if (monthReport.TotalHseManhours != null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    totalHseManhours = monthReport.TotalHseManhours ?? 0;
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                Model.SitePerson_MonthReport mReport = BLL.Funs.DB.SitePerson_MonthReport.FirstOrDefault(x => x.CompileDate == Convert.ToDateTime(Request.Params["months"]));   //当月人工时月报
							 | 
						|||
| 
								 | 
							
								                                if (mReport != null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    totalHseManhours = (from x in Funs.DB.SitePerson_MonthReportDetail
							 | 
						|||
| 
								 | 
							
								                                                        join y in Funs.DB.SitePerson_MonthReportUnitDetail
							 | 
						|||
| 
								 | 
							
								                                                            on x.MonthReportDetailId equals y.MonthReportDetailId
							 | 
						|||
| 
								 | 
							
								                                                        where x.MonthReportId == mReport.MonthReportId
							 | 
						|||
| 
								 | 
							
								                                                        select y.PersonWorkTime ?? 0).Sum();
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            if (des.Matter == "百万工时伤害率")
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                int a = (from x in accidentHandles
							 | 
						|||
| 
								 | 
							
								                                         select x.MinorInjuriesPersonNum ?? 0).Sum();
							 | 
						|||
| 
								 | 
							
								                                int b = (from x in accidentHandles
							 | 
						|||
| 
								 | 
							
								                                         select x.InjuriesPersonNum ?? 0).Sum();
							 | 
						|||
| 
								 | 
							
								                                int c = (from x in accidentHandles
							 | 
						|||
| 
								 | 
							
								                                         select x.DeathPersonNum ?? 0).Sum();
							 | 
						|||
| 
								 | 
							
								                                if (totalHseManhours != 0)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    des.MonthDataNum = decimal.Round((Convert.ToDecimal(a + b + c) * 1000000 / totalHseManhours), 2);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    des.MonthDataNum = 0;
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                int ya = (from x in yearAccidentHandles
							 | 
						|||
| 
								 | 
							
								                                          select x.MinorInjuriesPersonNum ?? 0).Sum();
							 | 
						|||
| 
								 | 
							
								                                int yb = (from x in yearAccidentHandles
							 | 
						|||
| 
								 | 
							
								                                          select x.InjuriesPersonNum ?? 0).Sum();
							 | 
						|||
| 
								 | 
							
								                                int yc = (from x in yearAccidentHandles
							 | 
						|||
| 
								 | 
							
								                                          select x.DeathPersonNum ?? 0).Sum();
							 | 
						|||
| 
								 | 
							
								                                if (totalHseManhours != 0)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    des.YearDataNum = decimal.Round((Convert.ToDecimal(ya + yb + yc) * 1000000 / totalHseManhours), 2);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    des.YearDataNum = 0;
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else if (des.Matter == "伤害严重率")
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                decimal workHoursLoss = (from x in accidentHandles
							 | 
						|||
| 
								 | 
							
								                                                         select x.WorkHoursLoss ?? 0).Sum();
							 | 
						|||
| 
								 | 
							
								                                if (totalHseManhours != 0)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    des.MonthDataNum = decimal.Round((Convert.ToDecimal(workHoursLoss) / 9 * 1000000 / totalHseManhours), 2);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    des.MonthDataNum = 0;
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                decimal yearWorkHoursLoss = (from x in yearAccidentHandles
							 | 
						|||
| 
								 | 
							
								                                                         select x.WorkHoursLoss ?? 0).Sum();
							 | 
						|||
| 
								 | 
							
								                                if (totalHseManhours != 0)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    des.YearDataNum = decimal.Round((Convert.ToDecimal(yearWorkHoursLoss) / 9 * 1000000 / totalHseManhours), 2);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    des.YearDataNum = 0;
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        des.MonthDataNum = (from x in accidentPersonRecords
							 | 
						|||
| 
								 | 
							
								                                            join y in Funs.DB.Base_AccidentType
							 | 
						|||
| 
								 | 
							
								                                                on x.AccidentTypeId equals y.AccidentTypeId
							 | 
						|||
| 
								 | 
							
								                                            where y.AccidentTypeName.Contains(des.Matter)
							 | 
						|||
| 
								 | 
							
								                                            select x).Count();
							 | 
						|||
| 
								 | 
							
								                        des.YearDataNum = (from x in yearAccidentPersonRecords
							 | 
						|||
| 
								 | 
							
								                                           join y in Funs.DB.Base_AccidentType
							 | 
						|||
| 
								 | 
							
								                                               on x.AccidentTypeId equals y.AccidentTypeId
							 | 
						|||
| 
								 | 
							
								                                           where y.AccidentTypeName.Contains(des.Matter)
							 | 
						|||
| 
								 | 
							
								                                           select x).Count();
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    accidentDesciptions.Add(des);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            this.gvAccidentDesciption.DataSource = accidentDesciptions;
							 | 
						|||
| 
								 | 
							
								            this.gvAccidentDesciption.DataBind();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 检查并保存事故(表一)集合
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private void jerqueSaveAccidentDesciptionList()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            accidentDesciptions.Clear();
							 | 
						|||
| 
								 | 
							
								            JArray mergedData = gvAccidentDesciption.GetMergedData();
							 | 
						|||
| 
								 | 
							
								            foreach (JObject mergedRow in mergedData)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                string status = mergedRow.Value<string>("status");
							 | 
						|||
| 
								 | 
							
								                JObject values = mergedRow.Value<JObject>("values");
							 | 
						|||
| 
								 | 
							
								                int i = mergedRow.Value<int>("index");
							 | 
						|||
| 
								 | 
							
								                Model.Manager_Month_AccidentDesciptionC accidentDesciptionSort = new Model.Manager_Month_AccidentDesciptionC
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    AccidentDesId = this.gvAccidentDesciption.Rows[i].DataKeys[0].ToString(),
							 | 
						|||
| 
								 | 
							
								                    SortIndex = i,
							 | 
						|||
| 
								 | 
							
								                    Matter = values.Value<string>("Matter").ToString(),
							 | 
						|||
| 
								 | 
							
								                    MonthDataNum = Funs.GetNewDecimalOrZero(values.Value<string>("MonthDataNum").ToString()),
							 | 
						|||
| 
								 | 
							
								                    YearDataNum = Funs.GetNewDecimalOrZero(values.Value<string>("YearDataNum").ToString())
							 | 
						|||
| 
								 | 
							
								                };
							 | 
						|||
| 
								 | 
							
								                accidentDesciptions.Add(accidentDesciptionSort);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 加载显示初始值
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private void GetAccidentDesciptionItem()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            System.Web.UI.WebControls.ListItem[] list = BLL.AccidentDesciptionItemCService.GetMatterList();
							 | 
						|||
| 
								 | 
							
								            var accidentHandles = from x in Funs.DB.Accident_AccidentHandle
							 | 
						|||
| 
								 | 
							
								                                  where x.ProjectId == this.CurrUser.LoginProjectId && x.AccidentDate >= startTime && x.AccidentDate < endTime
							 | 
						|||
| 
								 | 
							
								                                  select x;
							 | 
						|||
| 
								 | 
							
								            if (list.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                for (int i = 0; i < list.Count(); i++)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    Model.Manager_Month_AccidentDesciptionItemC item = new Model.Manager_Month_AccidentDesciptionItemC
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        AccidentDesItemId = SQLHelper.GetNewID(typeof(Model.Manager_Month_AccidentDesciptionItemC)),
							 | 
						|||
| 
								 | 
							
								                        Matter = list[i].Value
							 | 
						|||
| 
								 | 
							
								                    };
							 | 
						|||
| 
								 | 
							
								                    if (accidentHandles.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (item.Matter == "轻伤人数")
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            item.Datas = (from x in accidentHandles
							 | 
						|||
| 
								 | 
							
								                                          select x.MinorInjuriesPersonNum ?? 0).Sum().ToString();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (item.Matter == "重伤人数")
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            item.Datas = (from x in accidentHandles
							 | 
						|||
| 
								 | 
							
								                                          select x.InjuriesPersonNum ?? 0).Sum().ToString();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (item.Matter == "死亡人数")
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            item.Datas = (from x in accidentHandles
							 | 
						|||
| 
								 | 
							
								                                          select x.DeathPersonNum ?? 0).Sum().ToString();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (item.Matter == "直接经济损失")
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            item.Datas = (from x in accidentHandles
							 | 
						|||
| 
								 | 
							
								                                          select x.MoneyLoss ?? 0).Sum().ToString();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (item.Matter == "事故失时数")
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            item.Datas = (from x in accidentHandles
							 | 
						|||
| 
								 | 
							
								                                          select x.WorkHoursLoss ?? 0).Sum().ToString();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        item.Datas = "无";
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    AccidentDesciptionItems.Add(item);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            this.gvAccidentDesciptionItem.DataSource = AccidentDesciptionItems;
							 | 
						|||
| 
								 | 
							
								            this.gvAccidentDesciptionItem.DataBind();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 检查并保存事故(表二)集合
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        private void jerqueSaveAccidentDesciptionItemList()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            AccidentDesciptionItems.Clear();
							 | 
						|||
| 
								 | 
							
								            JArray mergedData = gvAccidentDesciptionItem.GetMergedData();
							 | 
						|||
| 
								 | 
							
								            foreach (JObject mergedRow in mergedData)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                string status = mergedRow.Value<string>("status");
							 | 
						|||
| 
								 | 
							
								                JObject values = mergedRow.Value<JObject>("values");
							 | 
						|||
| 
								 | 
							
								                int i = mergedRow.Value<int>("index");
							 | 
						|||
| 
								 | 
							
								                Model.Manager_Month_AccidentDesciptionItemC accidentDesciptionItemSort = new Model.Manager_Month_AccidentDesciptionItemC
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    AccidentDesItemId = this.gvAccidentDesciptionItem.Rows[i].DataKeys[0].ToString(),
							 | 
						|||
| 
								 | 
							
								                    SortIndex = i,
							 | 
						|||
| 
								 | 
							
								                    Matter = values.Value<string>("Matter").ToString(),
							 | 
						|||
| 
								 | 
							
								                    Datas = values.Value<string>("Datas").ToString()
							 | 
						|||
| 
								 | 
							
								                };
							 | 
						|||
| 
								 | 
							
								                AccidentDesciptionItems.Add(accidentDesciptionItemSort);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 保存按钮
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 保存按钮
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="sender"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="e"></param>
							 | 
						|||
| 
								 | 
							
								        protected void btnSave_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Model.Manager_MonthReportC oldMonthReport = BLL.MonthReportCService.GetMonthReportByMonths(Convert.ToDateTime(Request.Params["months"]), this.CurrUser.LoginProjectId);
							 | 
						|||
| 
								 | 
							
								            if (oldMonthReport != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                oldMonthReport.AccidentDes = this.txtAccidentDes.Text.Trim();
							 | 
						|||
| 
								 | 
							
								                BLL.MonthReportCService.UpdateMonthReport(oldMonthReport);
							 | 
						|||
| 
								 | 
							
								                OperateAccidentDesciptionSort(MonthReportId);
							 | 
						|||
| 
								 | 
							
								                OperateAccidentDesciptionItemSort(MonthReportId);
							 | 
						|||
| 
								 | 
							
								                BLL.LogService.AddSys_Log(this.CurrUser, oldMonthReport.MonthReportCode, oldMonthReport.MonthReportId, BLL.Const.ProjectManagerMonthCMenuId, BLL.Const.BtnModify);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Model.Manager_MonthReportC monthReport = new Model.Manager_MonthReportC();
							 | 
						|||
| 
								 | 
							
								                string newKeyID = SQLHelper.GetNewID(typeof(Model.Manager_MonthReportC));
							 | 
						|||
| 
								 | 
							
								                monthReport.MonthReportId = newKeyID;
							 | 
						|||
| 
								 | 
							
								                monthReport.ProjectId = this.CurrUser.LoginProjectId;
							 | 
						|||
| 
								 | 
							
								                this.MonthReportId = newKeyID;
							 | 
						|||
| 
								 | 
							
								                monthReport.MonthReportCode = BLL.CodeRecordsService.ReturnCodeByMenuIdProjectId(BLL.Const.ProjectManagerMonthCMenuId, this.ProjectId, this.CurrUser.UnitId);
							 | 
						|||
| 
								 | 
							
								                monthReport.Months = Funs.GetNewDateTime(Request.Params["months"]);
							 | 
						|||
| 
								 | 
							
								                monthReport.ReportMan = this.CurrUser.UserId;
							 | 
						|||
| 
								 | 
							
								                monthReport.MonthReportDate = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                monthReport.AccidentDes = this.txtAccidentDes.Text.Trim();
							 | 
						|||
| 
								 | 
							
								                BLL.MonthReportCService.AddMonthReport(monthReport);
							 | 
						|||
| 
								 | 
							
								                OperateAccidentDesciptionSort(MonthReportId);
							 | 
						|||
| 
								 | 
							
								                OperateAccidentDesciptionItemSort(MonthReportId);
							 | 
						|||
| 
								 | 
							
								                BLL.LogService.AddSys_Log(this.CurrUser, monthReport.MonthReportCode, monthReport.MonthReportId, BLL.Const.ProjectManagerMonthCMenuId, BLL.Const.BtnAdd);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            ShowNotify("保存成功!", MessageBoxIcon.Success);
							 | 
						|||
| 
								 | 
							
								            PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 7.1 管理绩效数据统计 表一
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="monthReportId"></param>
							 | 
						|||
| 
								 | 
							
								        private void OperateAccidentDesciptionSort(string monthReportId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            BLL.AccidentDesciptionCService.DeleteAccidentDesciptionByMonthReportId(monthReportId);
							 | 
						|||
| 
								 | 
							
								            jerqueSaveAccidentDesciptionList();
							 | 
						|||
| 
								 | 
							
								            foreach (Model.Manager_Month_AccidentDesciptionC des in accidentDesciptions)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                des.MonthReportId = monthReportId;
							 | 
						|||
| 
								 | 
							
								                BLL.AccidentDesciptionCService.AddAccidentDesciption(des);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 7.2 管理绩效数据统计 表二
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="monthReportId"></param>
							 | 
						|||
| 
								 | 
							
								        private void OperateAccidentDesciptionItemSort(string monthReportId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            BLL.AccidentDesciptionItemCService.DeleteAccidentDesciptionItemByMonthReportId(monthReportId);
							 | 
						|||
| 
								 | 
							
								            jerqueSaveAccidentDesciptionItemList();
							 | 
						|||
| 
								 | 
							
								            foreach (Model.Manager_Month_AccidentDesciptionItemC item in AccidentDesciptionItems)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                item.MonthReportId = monthReportId;
							 | 
						|||
| 
								 | 
							
								                BLL.AccidentDesciptionItemCService.AddAccidentDesciptionItem(item);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |