using BLL; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Web.UI.WebControls; namespace FineUIPro.Web.HSSE.SitePerson { public partial class DayReportDetailEdit : PageBase { #region 定义项 /// /// 工作月报明细主键 /// public string DayReportDetailId { get { return (string)ViewState["DayReportDetailId"]; } set { ViewState["DayReportDetailId"] = value; } } #endregion protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { btnClose.OnClientClick = ActiveWindow.GetHideReference(); this.DayReportDetailId = Request.Params["dayReportDetailId"]; this.txtWorkTime.Focus(); if (!string.IsNullOrEmpty(Request.Params["type"])) { this.btnSave.Hidden = true; this.txtWorkTime.Readonly = true; this.Grid1.AllowCellEditing = false; } var dayReportDetail = BLL.SitePerson_DayReportDetailService.GetDayReportDetailByDayReportDetailId(this.DayReportDetailId); if (dayReportDetail != null) { var unit = BLL.UnitService.GetUnitByUnitId(dayReportDetail.UnitId); if (unit != null) { this.lbStaffData.Text = unit.UnitName + "人员情况"; } this.txtStaffData.Text = dayReportDetail.StaffData; this.txtWorkTime.Text = dayReportDetail.WorkTime.ToString(); var viewDayReportUnitDetail = from x in Funs.DB.View_SitePerson_DayReportUnitDetail where x.DayReportDetailId == dayReportDetail.DayReportDetailId orderby x.WorkPostCode select x; if (viewDayReportUnitDetail.Count() > 0) { this.Grid1.DataSource = viewDayReportUnitDetail; this.Grid1.DataBind(); } } } } /// /// 保存按钮事件 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { //Grid1.CommitChanges(); var dayReportDetail = BLL.SitePerson_DayReportDetailService.GetDayReportDetailByDayReportDetailId(this.DayReportDetailId); int glAllPerson = 0, hsseAllPerson = 0, zyAllPerson = 0; if (dayReportDetail != null) { dayReportDetail.WorkTime = Funs.GetNewDecimalOrZero(this.txtWorkTime.Text.Trim()); int totalRealPersonNum = 0; decimal totalPersonWorkTime = 0; List dayReportUnitDetails = (from x in Funs.DB.SitePerson_DayReportUnitDetail where x.DayReportDetailId == this.DayReportDetailId select x).ToList(); JArray mergedData = Grid1.GetMergedData(); foreach (JObject mergedRow in mergedData) { string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); Model.SitePerson_DayReportUnitDetail dayReportUnitDetail = dayReportUnitDetails.FirstOrDefault(x => x.DayReportUnitDetailId == values.Value("DayReportUnitDetailId").ToString()); if (dayReportUnitDetail != null) { string postType = values.Value("WorkPostName"); string ishsse = values.Value("CheckPersonNum"); dayReportUnitDetail.RealPersonNum = Funs.GetNewIntOrZero(values.Value("RealPersonNum").ToString()); dayReportUnitDetail.PersonWorkTime = Funs.GetNewDecimalOrZero(values.Value("PersonWorkTime").ToString()); ; dayReportUnitDetail.Remark = values.Value("Remark").ToString(); BLL.SitePerson_DayReportUnitDetailService.UpdateDayReportUnitDetail(dayReportUnitDetail); totalPersonWorkTime += dayReportUnitDetail.PersonWorkTime ?? 0; totalRealPersonNum += dayReportUnitDetail.RealPersonNum ?? 0; if (ishsse == "1") ///安全专职人员集合 { hsseAllPerson += dayReportUnitDetail.RealPersonNum.Value; } else { if (postType == "1" || postType == "4") //一般管理岗位和特种管理人员 { glAllPerson += dayReportUnitDetail.RealPersonNum.Value; } if (postType == "2" || postType == "3") //特种作业人员和一般作业岗位 { zyAllPerson += dayReportUnitDetail.RealPersonNum.Value; } } } } dayReportDetail.RealPersonNum = totalRealPersonNum; dayReportDetail.PersonWorkTime = totalPersonWorkTime; string staffData = string.Empty; var unit = (from x in Funs.DB.Project_ProjectUnit where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitId == dayReportDetail.UnitId select x).FirstOrDefault(); if (unit != null) { if (unit.UnitType == "1") { staffData += "总人数:" + (glAllPerson + hsseAllPerson + zyAllPerson).ToString() + ",管理人员总数" + glAllPerson.ToString() + "人,专职安全人员共" + hsseAllPerson.ToString() + " 人。"; } else { staffData += "总人数:" + (glAllPerson + hsseAllPerson + zyAllPerson).ToString() + ",管理人员总数" + glAllPerson.ToString() + "人,持证专职安全人员共" + hsseAllPerson.ToString() + " 人,施工单位作业人员总数" + zyAllPerson.ToString() + "人。"; } } dayReportDetail.StaffData = staffData; BLL.SitePerson_DayReportDetailService.UpdateReportDetail(dayReportDetail); } PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } /// /// /// /// /// protected void txtWorkTime_TextChanged(object sender, EventArgs e) { decimal time = Funs.GetNewDecimalOrZero(this.txtWorkTime.Text.Trim()); List viwList = new List(); var viewDayReportUnitDetail = from x in Funs.DB.View_SitePerson_DayReportUnitDetail where x.DayReportDetailId == this.DayReportDetailId orderby x.WorkPostCode select x; JArray mergedData = Grid1.GetMergedData(); foreach (JObject mergedRow in mergedData) { JObject values = mergedRow.Value("values"); var item = viewDayReportUnitDetail.FirstOrDefault(x => x.DayReportUnitDetailId == values.Value("DayReportUnitDetailId").ToString()); if (item != null) { item.RealPersonNum = Funs.GetNewIntOrZero(values.Value("RealPersonNum").ToString()); item.PersonWorkTime = item.RealPersonNum * time; item.Remark = values.Value("Remark").ToString(); viwList.Add(item); } } this.Grid1.DataSource = viwList; this.Grid1.DataBind(); } } }