124 lines
7.6 KiB
C#
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();
|
|
}
|
|
}
|
|
} |