170 lines
8.3 KiB
C#
170 lines
8.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using BLL;
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
namespace FineUIPro.Web.HSSE.SitePerson
|
|
{
|
|
public partial class MonthReportDetailEdit : PageBase
|
|
{
|
|
#region 定义项
|
|
/// <summary>
|
|
/// 工作月报明细主键
|
|
/// </summary>
|
|
public string MonthReportDetailId
|
|
{
|
|
get
|
|
{
|
|
return (string)ViewState["MonthReportDetailId"];
|
|
}
|
|
set
|
|
{
|
|
ViewState["MonthReportDetailId"] = value;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
btnClose.OnClientClick = ActiveWindow.GetHideReference();
|
|
this.MonthReportDetailId = Request.Params["monthReportDetailId"];
|
|
this.txtWorkTime.Focus();
|
|
if (!string.IsNullOrEmpty(Request.Params["type"]))
|
|
{
|
|
this.btnSave.Hidden = true;
|
|
this.txtWorkTime.Readonly = true;
|
|
this.Grid1.AllowCellEditing = false;
|
|
this.txtRealPersonNum2.Readonly = true;
|
|
this.txtDayNum.Readonly = true;
|
|
}
|
|
var monthReportDetail = BLL.SitePerson_MonthReportDetailService.GetMonthReportDetailByMonthReportDetailId(this.MonthReportDetailId);
|
|
if (monthReportDetail != null)
|
|
{
|
|
var unit = BLL.UnitService.GetUnitByUnitId(monthReportDetail.UnitId);
|
|
if (unit != null)
|
|
{
|
|
this.lbStaffData.Text = unit.UnitName + "人员情况";
|
|
}
|
|
//是否按平均数取值
|
|
var sysSet = BLL.ConstValue.drpConstItemList(BLL.ConstValue.Group_IsMonthReportGetAVG).FirstOrDefault();
|
|
if (sysSet != null)
|
|
{
|
|
if (sysSet.ConstValue == "1")
|
|
{
|
|
this.trAVG.Hidden = false;
|
|
}
|
|
else
|
|
{
|
|
this.trAVG.Hidden = true;
|
|
}
|
|
}
|
|
this.txtStaffData.Text = monthReportDetail.StaffData;
|
|
this.txtWorkTime.Text = monthReportDetail.WorkTime.ToString();
|
|
if (monthReportDetail.RealPersonNum != null)
|
|
{
|
|
this.txtRealPersonNum2.Text = monthReportDetail.RealPersonNum.ToString();
|
|
}
|
|
if (monthReportDetail.DayNum != null)
|
|
{
|
|
this.txtDayNum.Text = monthReportDetail.DayNum.ToString();
|
|
}
|
|
var viewMonthReportUnitDetail = from x in Funs.DB.View_SitePerson_MonthReportUnitDetail
|
|
where x.MonthReportDetailId == monthReportDetail.MonthReportDetailId
|
|
orderby x.WorkPostCode
|
|
select x;
|
|
if (viewMonthReportUnitDetail.Count() > 0)
|
|
{
|
|
this.Grid1.DataSource = viewMonthReportUnitDetail;
|
|
this.Grid1.DataBind();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保存按钮事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnSave_Click(object sender, EventArgs e)
|
|
{
|
|
//Grid1.CommitChanges();
|
|
var monthReportDetail = BLL.SitePerson_MonthReportDetailService.GetMonthReportDetailByMonthReportDetailId(this.MonthReportDetailId);
|
|
if (monthReportDetail != null)
|
|
{
|
|
monthReportDetail.WorkTime = Funs.GetNewDecimalOrZero(this.txtWorkTime.Text.Trim());
|
|
monthReportDetail.DayNum = Funs.GetNewDecimalOrZero(this.txtDayNum.Text.Trim());
|
|
int totalRealPersonNum = 0;
|
|
decimal totalPersonWorkTime = 0;
|
|
List<Model.SitePerson_MonthReportUnitDetail> monthReportUnitDetails = (from x in Funs.DB.SitePerson_MonthReportUnitDetail where x.MonthReportDetailId == this.MonthReportDetailId select x).ToList();
|
|
|
|
JArray mergedData = Grid1.GetMergedData();
|
|
foreach (JObject mergedRow in mergedData)
|
|
{
|
|
string status = mergedRow.Value<string>("status");
|
|
JObject values = mergedRow.Value<JObject>("values");
|
|
Model.SitePerson_MonthReportUnitDetail monthReportUnitDetail = monthReportUnitDetails.FirstOrDefault(x => x.MonthReportUnitDetailId == values.Value<string>("MonthReportUnitDetailId").ToString());
|
|
if (monthReportUnitDetail != null)
|
|
{
|
|
monthReportUnitDetail.RealPersonNum = Funs.GetNewIntOrZero(values.Value<string>("RealPersonNum").ToString());
|
|
monthReportUnitDetail.PersonWorkTime = Funs.GetNewDecimalOrZero(values.Value<string>("PersonWorkTime").ToString()); ;
|
|
monthReportUnitDetail.Remark = values.Value<string>("Remark").ToString();
|
|
|
|
BLL.SitePerson_MonthReportUnitDetailService.UpdateMonthReportUnitDetail(monthReportUnitDetail);
|
|
totalPersonWorkTime += monthReportUnitDetail.PersonWorkTime ?? 0;
|
|
totalRealPersonNum += monthReportUnitDetail.RealPersonNum ?? 0;
|
|
}
|
|
}
|
|
|
|
monthReportDetail.RealPersonNum = totalRealPersonNum;
|
|
monthReportDetail.PersonWorkTime = totalPersonWorkTime;
|
|
//是否按平均数取值
|
|
var sysSet = BLL.ConstValue.drpConstItemList(BLL.ConstValue.Group_IsMonthReportGetAVG).FirstOrDefault();
|
|
if (sysSet != null)
|
|
{
|
|
if (sysSet.ConstValue == "1")
|
|
{
|
|
monthReportDetail.RealPersonNum = Funs.GetNewDecimalOrZero(this.txtRealPersonNum2.Text.Trim());
|
|
monthReportDetail.DayNum = Funs.GetNewDecimalOrZero(this.txtDayNum.Text.Trim());
|
|
monthReportDetail.PersonWorkTime = (monthReportDetail.RealPersonNum ?? 0) * (monthReportDetail.DayNum ?? 0) * (monthReportDetail.WorkTime ?? 0);
|
|
}
|
|
}
|
|
BLL.SitePerson_MonthReportDetailService.UpdateReportDetail(monthReportDetail);
|
|
}
|
|
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void txtWorkTime_TextChanged(object sender, EventArgs e)
|
|
{
|
|
decimal time = Funs.GetNewDecimalOrZero(this.txtWorkTime.Text.Trim());
|
|
int dayNum = Funs.GetNewIntOrZero(this.txtDayNum.Text.Trim());
|
|
List<Model.View_SitePerson_MonthReportUnitDetail> viwList = new List<Model.View_SitePerson_MonthReportUnitDetail>();
|
|
var viewDayReportUnitDetail = from x in Funs.DB.View_SitePerson_MonthReportUnitDetail where x.MonthReportDetailId == this.MonthReportDetailId orderby x.WorkPostCode select x;
|
|
|
|
JArray mergedData = Grid1.GetMergedData();
|
|
foreach (JObject mergedRow in mergedData)
|
|
{
|
|
JObject values = mergedRow.Value<JObject>("values");
|
|
var item = viewDayReportUnitDetail.FirstOrDefault(x => x.MonthReportUnitDetailId == values.Value<string>("MonthReportUnitDetailId").ToString());
|
|
if (item != null)
|
|
{
|
|
item.RealPersonNum = Funs.GetNewIntOrZero(values.Value<string>("RealPersonNum").ToString());
|
|
item.PersonWorkTime = item.RealPersonNum * time * dayNum;
|
|
item.Remark = values.Value<string>("Remark").ToString();
|
|
viwList.Add(item);
|
|
}
|
|
}
|
|
|
|
this.Grid1.DataSource = viwList;
|
|
this.Grid1.DataBind();
|
|
}
|
|
}
|
|
} |