CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/TestRun/DriverReport/MonthReportNewEdit.aspx.cs

431 lines
20 KiB
C#

using BLL;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.TestRun.DriverReport
{
public partial class MonthReportNewEdit : PageBase
{
#region
/// <summary>
/// 工作包完成情况统计
/// </summary>
public static List<Model.TestRun_MonthReportItem> monthReportItems = new List<Model.TestRun_MonthReportItem>();
/// <summary>
/// 开车绩效测量数据
/// </summary>
public static List<Model.TestRun_MonthReportItem2> monthReportItems2 = new List<Model.TestRun_MonthReportItem2>();
#endregion
#region
/// <summary>
/// 页面加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.lblProjectName.Text = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId).ProjectName;
string id = Request.Params["id"];
if (!string.IsNullOrEmpty(id))
{
Model.TestRun_MonthReport data = BLL.TestRun_MonthReportService.GetMonthReportById(id);
if (data != null)
{
this.hdId.Text = id;
if (data.SortId != null)
{
this.txtPeriod.Text = Convert.ToString(data.SortId);
}
if (data.StartDate != null)
{
this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", data.StartDate);
}
if (data.EndDate != null)
{
this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", data.EndDate);
}
//this.txtPeriod.Text = data.MonthReportCode;
//this.txtStartDate.Text = data.MonthReportDate.HasValue ? string.Format("{0:yyyy-MM-dd}", data.MonthReportDate) : "";
this.txtProjectOverview.Text = data.ProjectOverview;
this.txtProjectBaseInfo.Text = data.ProjectBaseInfo;
this.txtEngineeringPlant.Text = data.EngineeringPlant;
this.txtProjectContract.Text = data.ProjectContract;
this.txtMilestone.Text = data.Milestone;
this.txtCompleteWork.Text = data.CompleteWork;
this.txtProblemSituation.Text = data.ProblemSituation;
this.txtBudget.Text = data.Budget.HasValue ? data.Budget.ToString() : "";
this.txtBudgetTotal.Text = data.BudgetTotal.HasValue ? data.BudgetTotal.ToString() : "";
this.txtActualCost.Text = data.ActualCost.HasValue ? data.ActualCost.ToString() : "";
this.txtActualCostTotal.Text = data.ActualCostTotal.HasValue ? data.ActualCostTotal.ToString() : "";
this.txtPublicationStatus.Text = data.PublicationStatus;
this.txtImplementationStatus.Text = data.ImplementationStatus;
this.txtHSEManageSituation.Text = data.HSEManageSituation;
this.txtNextMonthMilestone.Text = data.NextMonthMilestone;
this.txtNextMonthCompleteWork.Text = data.NextMonthCompleteWork;
this.txtNextMonthSchedule.Text = data.NextMonthSchedule;
this.txtNextMonthDrivingCost.Text = data.NextMonthDrivingCost;
this.txtProblemsMeasures.Text = data.ProblemsMeasures;
this.txtSolvedProblems.Text = data.SolvedProblems;
}
var items = BLL.TestRun_MonthReportItemService.GetMonthReportItemByReportId(this.hdId.Text);
if (items.Count > 0)
{
this.Grid1.DataSource = items;
this.Grid1.DataBind();
}
var items2 = BLL.TestRun_MonthReportItem2Service.GetMonthReportItem2ByReportId(this.hdId.Text, "1");
if (items2.Count > 0)
{
this.Grid2.DataSource = items2;
this.Grid2.DataBind();
}
var items3 = BLL.TestRun_MonthReportItem2Service.GetMonthReportItem2ByReportId(this.hdId.Text, "2");
if (items3.Count > 0)
{
this.Grid3.DataSource = items3;
this.Grid3.DataBind();
}
WindowAtt_Close(null, null);
}
else
{
this.txtEndDate.Text = string.IsNullOrEmpty(Request.Params["enddate"]) ? (DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-25") : Request.Params["enddate"];
this.txtStartDate.Text = string.IsNullOrEmpty(Request.Params["startdate"]) ? string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(this.txtEndDate.Text.Trim()).AddMonths(-1).AddDays(1)) : Request.Params["startdate"];
//新增月报时填充上一条月报的项目概况内容
var report = BLL.TestRun_MonthReportService.GetReportByMaxDate(this.CurrUser.LoginProjectId);
if (report != null)
{
this.txtProjectOverview.Text = report.ProjectOverview;
this.txtProjectBaseInfo.Text = report.ProjectBaseInfo;
this.txtEngineeringPlant.Text = report.EngineeringPlant;
this.txtProjectContract.Text = report.ProjectContract;
}
#region
monthReportItems2.Clear();
Model.TestRun_MonthReportItem2 newItem = new Model.TestRun_MonthReportItem2();
newItem.MonthReportItem2Id = SQLHelper.GetNewID(typeof(Model.TestRun_MonthReportItem2));
newItem.TypeName = "设计";
monthReportItems2.Add(newItem);
Model.TestRun_MonthReportItem2 newItem2 = new Model.TestRun_MonthReportItem2();
newItem2.MonthReportItem2Id = SQLHelper.GetNewID(typeof(Model.TestRun_MonthReportItem2));
newItem2.TypeName = "采购";
monthReportItems2.Add(newItem2);
Model.TestRun_MonthReportItem2 newItem3 = new Model.TestRun_MonthReportItem2();
newItem3.MonthReportItem2Id = SQLHelper.GetNewID(typeof(Model.TestRun_MonthReportItem2));
newItem3.TypeName = "施工";
monthReportItems2.Add(newItem3);
Model.TestRun_MonthReportItem2 newItem4 = new Model.TestRun_MonthReportItem2();
newItem4.MonthReportItem2Id = SQLHelper.GetNewID(typeof(Model.TestRun_MonthReportItem2));
newItem4.TypeName = "开车";
monthReportItems2.Add(newItem4);
Model.TestRun_MonthReportItem2 newItem5 = new Model.TestRun_MonthReportItem2();
newItem5.MonthReportItem2Id = SQLHelper.GetNewID(typeof(Model.TestRun_MonthReportItem2));
newItem5.TypeName = "项目";
monthReportItems2.Add(newItem5);
this.Grid2.DataSource = monthReportItems2;
this.Grid2.DataBind();
this.Grid3.DataSource = monthReportItems2;
this.Grid3.DataBind();
#endregion
}
int nextMonth = 1;
if (!string.IsNullOrEmpty(this.txtStartDate.Text))
{
nextMonth = Convert.ToDateTime(this.txtStartDate.Text).AddMonths(1).Month;
}
Panel18.Title = "下月开车计划要点(" + nextMonth + "月份)";
}
}
#endregion
#region
/// <summary>
/// 新增
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnNew_Click(object sender, EventArgs e)
{
jerqueSaveList();
Model.TestRun_MonthReportItem newItem = new Model.TestRun_MonthReportItem
{
MonthReportItemId = SQLHelper.GetNewID(typeof(Model.TestRun_MonthReportItem))
};
monthReportItems.Add(newItem);
this.Grid1.DataSource = monthReportItems;
this.Grid1.DataBind();
}
#endregion
#region
/// <summary>
/// 删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
{
jerqueSaveList();
string rowID = this.Grid1.DataKeys[e.RowIndex][0].ToString();
if (e.CommandName == "Delete")
{
foreach (var item in monthReportItems)
{
if (item.MonthReportItemId == rowID)
{
monthReportItems.Remove(item);
break;
}
}
Grid1.DataSource = monthReportItems;
Grid1.DataBind();
ShowNotify("删除数据成功!", MessageBoxIcon.Success);
}
}
#endregion
#region
/// <summary>
/// 附件上传
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAttach_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.hdId.Text)) //新增记录
{
this.hdId.Text = SQLHelper.GetNewID(typeof(Model.TestRun_MonthReport));
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/TestRun/DriverReport/MonthReport&menuId={1}", this.hdId.Text, BLL.Const.MonthReportMenuId)));
}
protected void WindowAtt_Close(object sender, WindowCloseEventArgs e)
{
this.lbtnAttach.Text = string.Empty;
string url = string.Empty;
var attLists = BLL.AttachFileService.Getfiles(this.hdId.Text, BLL.Const.MonthReportMenuId);
if (attLists != null)
{
List<string> lists = Funs.GetStrListByStr(attLists.AttachUrl, ',');
if (lists.Count > 0)
{
foreach (var item in lists)
{
url += item.Substring(item.IndexOf('_') + 1) + "\r\n";
}
}
if (!string.IsNullOrEmpty(url))
{
this.lbtnAttach.Text = url;
}
}
}
#endregion
#region
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.txtPeriod.Text.Trim()))
{
ShowNotify("周期不能为空!", MessageBoxIcon.Warning);
return;
}
string id = Request.Params["id"];
Model.TestRun_MonthReport newData = new Model.TestRun_MonthReport();
//newData.MonthReportCode = this.txtPeriod.Text.Trim();
//newData.MonthReportDate = Funs.GetNewDateTime(this.txtStartDate.Text.Trim());
newData.SortId = this.txtPeriod.Text.Trim();
newData.StartDate = Funs.GetNewDateTime(this.txtStartDate.Text);
newData.EndDate = Funs.GetNewDateTime(this.txtEndDate.Text);
newData.ProjectId = this.CurrUser.LoginProjectId;
newData.ProjectOverview = this.txtProjectOverview.Text.Trim();
newData.ProjectBaseInfo = this.txtProjectBaseInfo.Text.Trim();
newData.EngineeringPlant = this.txtEngineeringPlant.Text.Trim();
newData.ProjectContract = this.txtProjectContract.Text.Trim();
newData.Milestone = this.txtMilestone.Text.Trim();
newData.CompleteWork = this.txtCompleteWork.Text.Trim();
newData.ProblemSituation = this.txtProblemSituation.Text.Trim();
newData.Budget = Funs.GetNewDecimal(this.txtBudget.Text.Trim());
newData.BudgetTotal = Funs.GetNewDecimal(this.txtBudgetTotal.Text.Trim());
newData.ActualCost = Funs.GetNewDecimal(this.txtActualCost.Text.Trim());
newData.ActualCostTotal = Funs.GetNewDecimal(this.txtActualCostTotal.Text.Trim());
newData.PublicationStatus = this.txtPublicationStatus.Text.Trim();
newData.ImplementationStatus = this.txtImplementationStatus.Text.Trim();
newData.HSEManageSituation = this.txtHSEManageSituation.Text.Trim();
newData.NextMonthMilestone = this.txtNextMonthMilestone.Text.Trim();
newData.NextMonthCompleteWork = this.txtNextMonthCompleteWork.Text.Trim();
newData.NextMonthSchedule = this.txtNextMonthSchedule.Text.Trim();
newData.NextMonthDrivingCost = this.txtNextMonthDrivingCost.Text.Trim();
newData.ProblemsMeasures = this.txtProblemsMeasures.Text.Trim();
newData.SolvedProblems = this.txtSolvedProblems.Text.Trim();
if (!string.IsNullOrEmpty(id))
{
newData.MonthReportId = id;
BLL.TestRun_MonthReportService.UpdateMonthReport(newData);
}
else
{
if (!string.IsNullOrEmpty(this.hdId.Text))
{
newData.MonthReportId = this.hdId.Text.Trim();
}
else
{
newData.MonthReportId = SQLHelper.GetNewID(typeof(Model.TestRun_MonthReport));
this.hdId.Text = newData.MonthReportId;
}
BLL.TestRun_MonthReportService.AddMonthReport(newData);
}
#region
BLL.TestRun_MonthReportItemService.DeleteMonthReportItemByMonthReportId(this.hdId.Text);
jerqueSaveList();
foreach (var item in monthReportItems)
{
item.MonthReportId = this.hdId.Text;
BLL.TestRun_MonthReportItemService.AddMonthReportItem(item);
}
#endregion
#region
BLL.TestRun_MonthReportItem2Service.DeleteMonthReportItem2ByReportId(this.hdId.Text);
jerqueSaveList2();
foreach (var item in monthReportItems2)
{
item.MonthReportId = this.hdId.Text;
BLL.TestRun_MonthReportItem2Service.AddMonthReportItem2(item);
}
#endregion
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
/// <summary>
/// 保存工作包完成情况统计
/// </summary>
private void jerqueSaveList()
{
monthReportItems.Clear();
JArray mergedData = Grid1.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.TestRun_MonthReportItem item = new Model.TestRun_MonthReportItem
{
MonthReportItemId = this.Grid1.Rows[i].DataKeys[0].ToString(),
SortIndex = values.Value<string>("SortIndex").ToString(),
WorkPackageType = values.Value<string>("WorkPackageType").ToString(),
Unit = values.Value<string>("Unit").ToString(),
DesignCount = Funs.GetNewInt(values.Value<string>("DesignCount").ToString()),
MonthPlan = Funs.GetNewInt(values.Value<string>("MonthPlan").ToString()),
MonthActual = values.Value<string>("MonthActual").ToString(),
TotalPlan = Funs.GetNewInt(values.Value<string>("TotalPlan").ToString()),
TatalActual = Funs.GetNewInt(values.Value<string>("TatalActual").ToString()),
CompletionRate = values.Value<string>("CompletionRate").ToString(),
};
monthReportItems.Add(item);
}
}
/// <summary>
/// 保存开车绩效测量数据
/// </summary>
private void jerqueSaveList2()
{
monthReportItems2.Clear();
int index = 1;
JArray mergedData = Grid2.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.TestRun_MonthReportItem2 item = new Model.TestRun_MonthReportItem2
{
MonthReportItem2Id = SQLHelper.GetNewID(typeof(Model.TestRun_MonthReportItem2)),
ReportType = "1",
TypeName = values.Value<string>("TypeName").ToString(),
PV = values.Value<string>("PV").ToString(),
EV = values.Value<string>("EV").ToString(),
AC = values.Value<string>("AC").ToString(),
CV = values.Value<string>("CV").ToString(),
SV = values.Value<string>("SV").ToString(),
CPI = values.Value<string>("CPI").ToString(),
SPI = values.Value<string>("SPI").ToString(),
SortIndex = index++,
};
monthReportItems2.Add(item);
}
int index2 = 1;
JArray mergedData2 = Grid3.GetMergedData();
foreach (JObject mergedRow in mergedData2)
{
string status = mergedRow.Value<string>("status");
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
Model.TestRun_MonthReportItem2 item = new Model.TestRun_MonthReportItem2
{
MonthReportItem2Id = SQLHelper.GetNewID(typeof(Model.TestRun_MonthReportItem2)),
ReportType = "2",
TypeName = values.Value<string>("TypeName").ToString(),
PV = values.Value<string>("PV").ToString(),
EV = values.Value<string>("EV").ToString(),
AC = values.Value<string>("AC").ToString(),
CV = values.Value<string>("CV").ToString(),
SV = values.Value<string>("SV").ToString(),
CPI = values.Value<string>("CPI").ToString(),
SPI = values.Value<string>("SPI").ToString(),
SortIndex = index2++,
};
monthReportItems2.Add(item);
}
}
#endregion
#region
/// <summary>
/// 开始时间选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.txtStartDate.Text.Trim()) && !string.IsNullOrEmpty(this.txtEndDate.Text.Trim()))
{
if (Funs.GetNewDateTime(this.txtStartDate.Text.Trim()) > Funs.GetNewDateTime(this.txtEndDate.Text.Trim()))
{
Alert.ShowInTop("开始时间不能大于结束时间!", MessageBoxIcon.Warning);
return;
}
PageContext.RegisterStartupScript("refresh();");
}
}
#endregion
}
}