137 lines
5.1 KiB
C#
137 lines
5.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using BLL;
|
|
|
|
namespace FineUIPro.Web.Transfer.Chart
|
|
{
|
|
public partial class PunchlistFromChart : PageBase
|
|
{
|
|
#region 定义项
|
|
/// <summary>
|
|
/// 项目主键
|
|
/// </summary>
|
|
public string ProjectId
|
|
{
|
|
get
|
|
{
|
|
return (string)ViewState["ProjectId"];
|
|
}
|
|
set
|
|
{
|
|
ViewState["ProjectId"] = value;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 加载页面
|
|
/// <summary>
|
|
/// 加载页面
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
this.ProjectId = this.CurrUser.LoginProjectId;
|
|
if (!string.IsNullOrEmpty(Request.Params["projectId"]))
|
|
{
|
|
this.ProjectId = Request.Params["projectId"];
|
|
}
|
|
|
|
this.AnalyseData();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 统计分析
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void BtnAnalyse_Click(object sender, EventArgs e)
|
|
{
|
|
this.AnalyseData();
|
|
}
|
|
|
|
#region 统计
|
|
private void AnalyseData()
|
|
{
|
|
if (string.IsNullOrEmpty(ProjectId))
|
|
{
|
|
Alert.ShowInTop("项目未获取到,请刷新页面。", MessageBoxIcon.Warning);
|
|
return;
|
|
}
|
|
var forms = from x in Funs.DB.Transfer_PunchlistFrom
|
|
where x.ProjectId == this.CurrUser.LoginProjectId
|
|
select x;
|
|
var dates = (from x in forms where x.PUNCH_ITEM_FINISH_DATE != null orderby x.PUNCH_ITEM_FINISH_DATE select x.PUNCH_ITEM_FINISH_DATE).Distinct().ToList();
|
|
DataTable dtTime = new DataTable();
|
|
if (rblType.SelectedValue == "1")
|
|
{
|
|
dtTime.Columns.Add("日期", typeof(string));
|
|
dtTime.Columns.Add("Finished(%)", typeof(string));
|
|
if (dates.Count() > 0)
|
|
{
|
|
List<DateTime> months = new List<DateTime>();
|
|
DateTime startDate = Convert.ToDateTime(dates.First());
|
|
DateTime endDate = Convert.ToDateTime(dates.Last());
|
|
do
|
|
{
|
|
months.Add(startDate);
|
|
startDate = startDate.AddDays(15);
|
|
} while (startDate <= endDate);
|
|
var nums = forms.Count();
|
|
foreach (var item in months)
|
|
{
|
|
DataRow rowTime = dtTime.NewRow();
|
|
Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem();
|
|
rowTime["日期"] = string.Format("{0:yyyy-MM-dd}", item);
|
|
var finishedNums = forms.Count(x => x.PUNCH_ITEM_FINISH_DATE <= item && x.PUNCH_ITEM_STATUS == "Finished");
|
|
if (nums > 0)
|
|
{
|
|
rowTime["Finished(%)"] = 1.0 * finishedNums / nums;
|
|
}
|
|
dtTime.Rows.Add(rowTime);
|
|
}
|
|
this.ChartUc.CreateChartPunchlistFrom(BLL.ChartControlService.GetDataSourceChartByYijiao(dtTime, "PROGRESS REPORT", "Line", 1100, 600, false));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
dtTime.Columns.Add("日期", typeof(string));
|
|
dtTime.Columns.Add("Finished", typeof(string));
|
|
if (dates.Count() > 0)
|
|
{
|
|
List<DateTime> months = new List<DateTime>();
|
|
DateTime startDate = Convert.ToDateTime(dates.First());
|
|
DateTime endDate = Convert.ToDateTime(dates.Last());
|
|
do
|
|
{
|
|
months.Add(startDate);
|
|
startDate = startDate.AddDays(15);
|
|
} while (startDate <= endDate);
|
|
var nums = forms.Count();
|
|
foreach (var item in months)
|
|
{
|
|
DataRow rowTime = dtTime.NewRow();
|
|
Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem();
|
|
rowTime["日期"] = string.Format("{0:yyyy-MM-dd}", item);
|
|
var finishedNums = forms.Count(x => x.PUNCH_ITEM_FINISH_DATE <= item && x.PUNCH_ITEM_STATUS == "Finished");
|
|
rowTime["Finished"] = finishedNums;
|
|
dtTime.Rows.Add(rowTime);
|
|
}
|
|
this.ChartUc.CreateChart(BLL.ChartControlService.GetDataSourceChartByYijiao(dtTime, "PROGRESS REPORT", "Line", 1100, 600, false));
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
protected void rblType_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
this.AnalyseData();
|
|
}
|
|
}
|
|
} |