431 lines
20 KiB
C#
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
|
|
}
|
|
} |