CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/Transfer/Chart/SystemstatusChart.aspx.cs

124 lines
7.6 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.Services.Description;
using BLL;
using NPOI.SS.Formula.Functions;
namespace FineUIPro.Web.Transfer.Chart
{
public partial class SystemstatusChart : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
var systemCode = Funs.DB.Transfer_LHCSystemList
.Where(x => x.ProjectId == CurrUser.LoginProjectId)
.GroupBy(p => new { p.Commissioningsystemcode })
.Select(p => new { Commissioningsystemcode = p.Key.Commissioningsystemcode }).ToList();
int indexRow = 1;
ddlSystemNo.Items.Insert(0, new FineUIPro.ListItem("ALL", ""));
foreach (var t in systemCode)
{
ddlSystemNo.Items.Insert(indexRow, new FineUIPro.ListItem(t.Commissioningsystemcode, t.Commissioningsystemcode));
indexRow++;
}
AnalyseData();
}
}
public string AllSystemNo;
public string completed;
public string Inprogress;
public string NotStart;
public void AnalyseData() {
var pid = CurrUser.LoginProjectId;
#region
var systemCode = Funs.DB.Transfer_LHCSystemList
.Where(x => x.ProjectId == CurrUser.LoginProjectId)
.GroupBy(p => new { p.Commissioningsystemcode })
.Select(p => new { Commissioningsystemcode = p.Key.Commissioningsystemcode }).ToList();
if (!string.IsNullOrEmpty(ddlSystemNo.SelectedValue))
{
systemCode= Funs.DB.Transfer_LHCSystemList
.Where(x => x.ProjectId == CurrUser.LoginProjectId && x.Commissioningsystemcode == ddlSystemNo.SelectedValue)
.GroupBy(p => new { p.Commissioningsystemcode })
.Select(p => new { Commissioningsystemcode = p.Key.Commissioningsystemcode }).ToList();
}
#region
var list1 = Funs.DB.Transfer_Piping.Where(x => x.ProjectId == pid).ToList();
var list2= Funs.DB.Transfer_StaticEquipment.Where(x => x.ProjectId == pid).ToList();
var list3= Funs.DB.Transfer_RotatingEquipment.Where(x => x.ProjectId == pid).ToList();
var list4 = Funs.DB.Transfer_Instrumentation.Where(x => x.ProjectId == pid).ToList();
var list5 = Funs.DB.Transfer_Electrical.Where(x => x.ProjectId == pid).ToList();
var list6 = Funs.DB.Transfer_Civil_Structure.Where(x => x.ProjectId == pid).ToList();
//var list7 = Funs.DB.Transfer_Firefighting.Where(x => x.ProjectId == pid).ToList();
var list8 = Funs.DB.Transfer_Telecom.Where(x => x.ProjectId == pid).ToList();
var list9 = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == pid).ToList();
#endregion
DataTable dt = new DataTable();
dt.Columns.Add("系统编号", typeof(string));
dt.Columns.Add("完成数量", typeof(string));
dt.Columns.Add("进行中数量", typeof(string));
dt.Columns.Add("未完成数量", typeof(string));
foreach (var t in systemCode) {
var scode = t.Commissioningsystemcode;
AllSystemNo += "'" + scode + "',";
DataRow dr = dt.NewRow();
dr["系统编号"] = scode;
#region
var completedCount = list1.Where(x => x.TestPackage == scode && x.FINALStatus == "Completed").ToList().Count()
+ list2.Where(x => x.TestPackage == scode && x.MechanicalFINALStatus == "Completed").ToList().Count()
+ list3.Where(x => x.TestPackage == scode && x.MechanicalFINALStatus == "Completed").ToList().Count()
+ list4.Where(x => x.Test_Package == scode && x.FINAL_Status == "Completed").ToList().Count()
+ list5.Where(x => x.Test_Package == scode && x.FINAL_Status == "Completed").ToList().Count()
+ list6.Where(x => x.Test_Package == scode && x.FINAL_Status == "Completed").ToList().Count()
//+ list7.Where(x => x.SystemName == scode && x.FINAL_Status == "Completed").ToList().Count()
+ list8.Where(x => x.Test_Package == scode && x.FINAL_Status == "Completed").ToList().Count()
+ list9.Where(x => x.Sub_Sys_No == scode && x.Status == "Completed").ToList().Count();
#endregion
dr["完成数量"] = completedCount;
completed+= "'" + completedCount.ToString() + "',";
#region
var InprogressCount = list1.Where(x => x.TestPackage == scode && x.FINALStatus == "In progress").ToList().Count()
+ list2.Where(x => x.TestPackage == scode && x.MechanicalFINALStatus == "In progress").ToList().Count()
+ list3.Where(x => x.TestPackage == scode && x.MechanicalFINALStatus == "In progress").ToList().Count()
+ list4.Where(x => x.Test_Package == scode && x.FINAL_Status == "In progress").ToList().Count()
+ list5.Where(x => x.Test_Package == scode && x.FINAL_Status == "In progress").ToList().Count()
+ list6.Where(x => x.Test_Package == scode && x.FINAL_Status == "In progress").ToList().Count()
//+ list7.Where(x => x.SystemName == scode && x.FINAL_Status == "In progress").ToList().Count()
+ list8.Where(x => x.Test_Package == scode && x.FINAL_Status == "In progress").ToList().Count()
+ list9.Where(x => x.Sub_Sys_No == scode && x.Status == "In progress").ToList().Count();
#endregion
dr["进行中数量"] = InprogressCount;
Inprogress += "'" + InprogressCount.ToString() + "',";
#region
var NotStartCount = list1.Where(x => x.TestPackage == scode && x.FINALStatus == "Not Start").ToList().Count()
+ list2.Where(x => x.TestPackage == scode && x.MechanicalFINALStatus == "Not Start").ToList().Count()
+ list3.Where(x => x.TestPackage == scode && x.MechanicalFINALStatus == "Not Start").ToList().Count()
+ list4.Where(x => x.Test_Package == scode && x.FINAL_Status == "Not Start").ToList().Count()
+ list5.Where(x => x.Test_Package == scode && x.FINAL_Status == "Not Start").ToList().Count()
+ list6.Where(x => x.Test_Package == scode && x.FINAL_Status == "Not Start").ToList().Count()
//+ list7.Where(x => x.SystemName == scode && x.FINAL_Status == "Not Start").ToList().Count()
+ list8.Where(x => x.Test_Package == scode && x.FINAL_Status == "Not Start").ToList().Count()
+ list9.Where(x => x.Sub_Sys_No == scode && x.Status == "Not Start").ToList().Count();
#endregion
dr["未完成数量"] = NotStartCount;
NotStart += "'" + NotStartCount.ToString() + "',";
dt.Rows.Add(dr);
}
//this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dt, "移交状态统计", "Column", 1300, 550, false));
#endregion
}
protected void ddlSystemNo_SelectedIndexChanged(object sender, EventArgs e)
{
this.AnalyseData();
}
}
}