225 lines
11 KiB
C#
225 lines
11 KiB
C#
using BLL;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Web;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
|
|
namespace FineUIPro.Web.Transfer.Chart
|
|
{
|
|
public partial class SystemStatusSummary : PageBase
|
|
{
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
BindGrid1();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnSearch_Click(object sender, EventArgs e)
|
|
{
|
|
BindGrid1();
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 查询绑定数据
|
|
/// </summary>
|
|
public void BindGrid1()
|
|
{
|
|
|
|
List<SqlParameter> listStr = new List<SqlParameter>();
|
|
//计算本周日期段
|
|
DateTime today = DateTime.Today;
|
|
int dayOfWeek = (int)today.DayOfWeek;
|
|
DateTime startWeebTime = Convert.ToDateTime(today.AddDays(-dayOfWeek + 1).ToString("yyyy-MM-dd") + " 00:00:00");
|
|
DateTime endWeebTime = Convert.ToDateTime(today.AddDays(-dayOfWeek + 7).ToString("yyyy-MM-dd") + " 23:59:59");
|
|
|
|
StringBuilder strSql = new StringBuilder("");
|
|
strSql.AppendLine(" IF OBJECT_ID('tempdb..#AllLHCSystemListTemp') IS NOT NULL drop table #AllLHCSystemListTemp; ");
|
|
strSql.AppendLine(" IF OBJECT_ID('tempdb..#LHCSystemListTemp') IS NOT NULL drop table #LHCSystemListTemp; ");
|
|
strSql.AppendLine(" select * INTO #AllLHCSystemListTemp from Transfer_LHCSystemList(NOLOCK) where ProjectId =@ProjectId; ");
|
|
strSql.AppendLine(" select isnull([Type],'0') [Type],(CASE isnull([Type],'0') WHEN '1' THEN 'Non Process system' ELSE 'Process System' END) Category,count(1) System_Qty ");
|
|
strSql.AppendLine(",cast(0 as decimal(18,2)) Cumulative_Plan,cast(0 as decimal(18,2)) Cumulative_Actual ,cast(0 as decimal(18,2)) Week_Plan,cast(0 as decimal(18,2)) Week_Actual,cast('' as nvarchar(600)) Remarks ");
|
|
strSql.AppendLine(" INTO #LHCSystemListTemp from #AllLHCSystemListTemp group by isnull([Type],'0'); ");
|
|
strSql.AppendLine(" update a set a.Cumulative_Plan=(select count(1) from #AllLHCSystemListTemp b where isnull(b.[Type],'0')=a.[Type] AND isnull(b.PlanFinishofTestingDate,'')<>'') ");
|
|
strSql.AppendLine(" ,a.Cumulative_Actual=(select count(1) from #AllLHCSystemListTemp b where isnull(b.[Type],'0')=a.[Type] AND isnull(b.ActualFinishedDate,'')<>'') ");
|
|
strSql.AppendLine(" ,a.Week_Plan=(select count(1) from #AllLHCSystemListTemp b where isnull(b.[Type],'0')=a.[Type] AND b.PlanFinishofTestingDate>=@StartWeebTime AND b.PlanFinishofTestingDate<=@EndWeebTime) ");
|
|
strSql.AppendLine(" ,a.Week_Actual=(select count(1) from #AllLHCSystemListTemp b where isnull(b.[Type],'0')=a.[Type] AND b.ActualFinishedDate>=@StartWeebTime AND b.ActualFinishedDate<=@EndWeebTime) ");
|
|
strSql.AppendLine(" ,a.Remarks=(select top 1 Remarks from Transfer_SystemStatusRemarks b(NOLOCK) where a.Category=b.TypeName and b.ProjectId=@ProjectId) ");
|
|
strSql.AppendLine(" from #LHCSystemListTemp a; ");
|
|
strSql.AppendLine(" select * from #LHCSystemListTemp; ");
|
|
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
|
|
listStr.Add(new SqlParameter("@StartWeebTime", startWeebTime));
|
|
listStr.Add(new SqlParameter("@EndWeebTime", dayOfWeek));
|
|
SqlParameter[] parameter = listStr.ToArray();
|
|
DataTable tb = SQLHelper.GetDataTableRunText(strSql.ToString(), parameter);
|
|
Grid1.RecordCount = tb.Rows.Count;
|
|
Grid1.DataSource = tb;
|
|
Grid1.DataBind();
|
|
|
|
//合计
|
|
int Cumulative_Plan = 0;
|
|
int Cumulative_Actual = 0;
|
|
int Week_Plan = 0;
|
|
int Week_Actual = 0;
|
|
int System_Qty = 0;
|
|
foreach (DataRow row in tb.Rows)
|
|
{
|
|
System_Qty += Convert.ToInt32(row["System_Qty"]);
|
|
Cumulative_Plan += Convert.ToInt32(row["Cumulative_Plan"]);
|
|
Cumulative_Actual += Convert.ToInt32(row["Cumulative_Actual"]);
|
|
Week_Plan += Convert.ToInt32(row["Week_Plan"]);
|
|
Week_Actual += Convert.ToInt32(row["Week_Actual"]);
|
|
}
|
|
|
|
|
|
JObject summary = new JObject();
|
|
summary.Add("Category", "Total");
|
|
summary.Add("System_Qty", System_Qty.ToString());
|
|
summary.Add("Cumulative_Plan", Cumulative_Plan.ToString());
|
|
summary.Add("Cumulative_Actual", Cumulative_Actual.ToString());
|
|
summary.Add("Week_Plan", Week_Plan.ToString());
|
|
summary.Add("Week_Actual", Week_Actual.ToString());
|
|
|
|
|
|
Grid1.SummaryData = summary;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询绑定图表数据
|
|
/// </summary>
|
|
public void AnalyseData()
|
|
{
|
|
var forms = from x in Funs.DB.Transfer_LHCSystemList
|
|
where x.ProjectId == this.CurrUser.LoginProjectId
|
|
select x;
|
|
|
|
string _dateType = ddlDateType.SelectedValue;
|
|
#region 按照当前日期前一周数据
|
|
if (_dateType == "1")
|
|
{
|
|
///按单位统计
|
|
DataTable dtTime = new DataTable();
|
|
dtTime.Columns.Add("日期", typeof(string));
|
|
dtTime.Columns.Add("计划完成数量", typeof(string));
|
|
dtTime.Columns.Add("实际完成数量", typeof(string));
|
|
dtTime.Columns.Add("进行中移交包数量", typeof(string));
|
|
for (int i = 6; i >= 0; i--)
|
|
{
|
|
DataRow rowTime = dtTime.NewRow();
|
|
DateTime QueryTime = DateTime.Now.AddDays(i * -1);
|
|
rowTime["日期"] = QueryTime.ToString("yyyy/MM/dd");
|
|
DateTime startTime = Convert.ToDateTime(QueryTime.ToString("yyyy-MM-dd") + " 00:00:00");
|
|
DateTime endTime = Convert.ToDateTime(QueryTime.ToString("yyyy-MM-dd") + " 23:59:59");
|
|
rowTime["计划完成数量"] = forms.Where(x => x.PlanFinishofTestingDate <= endTime).Count();
|
|
rowTime["实际完成数量"] = forms.Where(x => x.ActualFinishedDate <= endTime).Count();
|
|
rowTime["进行中移交包数量"] = forms.Where(x => x.UpdateTime <= endTime && x.Status == "In progress").Count();
|
|
dtTime.Rows.Add(rowTime);
|
|
}
|
|
this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false));
|
|
}
|
|
#endregion
|
|
|
|
//按照当前月份到一月份的数据
|
|
if (_dateType == "2")
|
|
{
|
|
///按单位统计
|
|
DataTable dtTime = new DataTable();
|
|
dtTime.Columns.Add("月份", typeof(string));
|
|
dtTime.Columns.Add("计划完成数量", typeof(string));
|
|
dtTime.Columns.Add("实际完成数量", typeof(string));
|
|
dtTime.Columns.Add("进行中移交包数量", typeof(string));
|
|
for (int i = 1; i <= DateTime.Now.Month; i++)
|
|
{
|
|
DataRow rowTime = dtTime.NewRow();
|
|
DateTime QueryTime = Convert.ToDateTime($"{DateTime.Now.Year.ToString()}-{i}-1 00:00:00");
|
|
rowTime["月份"] = QueryTime.ToString("yyyy/MM");
|
|
DateTime startTime = QueryTime;
|
|
DateTime endTime = Convert.ToDateTime(QueryTime.AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd") + " 23:59:59");
|
|
rowTime["计划完成数量"] = forms.Where(x => x.PlanFinishofTestingDate <= endTime).Count();
|
|
rowTime["实际完成数量"] = forms.Where(x => x.ActualFinishedDate <= endTime).Count();
|
|
rowTime["进行中移交包数量"] = forms.Where(x => x.UpdateTime <= endTime && x.Status == "In progress").Count();
|
|
dtTime.Rows.Add(rowTime);
|
|
}
|
|
this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项完成统计分析", this.drpChartType.SelectedValue, 1300, 550, false));
|
|
}
|
|
}
|
|
|
|
protected void TabStrip1_TabIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (TabStrip1.ActiveTabIndex == 0)
|
|
{
|
|
BindGrid1();
|
|
}
|
|
else if (TabStrip1.ActiveTabIndex == 1)
|
|
{
|
|
AnalyseData();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 图形变换
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void drpChartType_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
this.AnalyseData();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 现在日期类型
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void ddlDateType_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
this.AnalyseData();
|
|
}
|
|
/// <summary>
|
|
/// 修改后事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Grid1_AfterEdit(object sender, GridAfterEditEventArgs e)
|
|
{
|
|
Dictionary<int, Dictionary<string, object>> modifiedDict = Grid1.GetModifiedDict();
|
|
|
|
foreach (int rowIndex in modifiedDict.Keys)
|
|
{
|
|
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
|
|
string remarks = modifiedDict[rowIndex]["Remarks"].ToString();
|
|
var updateRemarks = Funs.DB.Transfer_SystemStatusRemarks.FirstOrDefault(p => p.TypeName == rowID && p.ProjectId == this.CurrUser.LoginProjectId);
|
|
if (updateRemarks != null)
|
|
{
|
|
updateRemarks.Remarks = remarks;
|
|
Funs.DB.SubmitChanges();
|
|
}
|
|
else
|
|
{
|
|
Model.Transfer_SystemStatusRemarks AddRemarks = new Model.Transfer_SystemStatusRemarks();
|
|
AddRemarks.Id = Guid.NewGuid().ToString();
|
|
AddRemarks.ProjectId = this.CurrUser.LoginProjectId;
|
|
AddRemarks.TypeName= rowID;
|
|
AddRemarks.Remarks= remarks;
|
|
Funs.DB.Transfer_SystemStatusRemarks.InsertOnSubmit(AddRemarks);
|
|
Funs.DB.SubmitChanges();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
} |