| 
									
										
										
										
											2024-07-29 18:06:25 +08:00
										 |  |  |  | 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) | 
					
						
							| 
									
										
										
										
											2024-12-03 19:00:05 +08:00
										 |  |  |  |                     .GroupBy(p => new { p.SubCommissioningsystem }) | 
					
						
							|  |  |  |  |                     .Select(p => new { SubCommissioningsystem = p.Key.SubCommissioningsystem }).ToList(); | 
					
						
							| 
									
										
										
										
											2024-07-29 18:06:25 +08:00
										 |  |  |  |                 int indexRow = 1; | 
					
						
							|  |  |  |  |                 ddlSystemNo.Items.Insert(0, new FineUIPro.ListItem("ALL", "")); | 
					
						
							|  |  |  |  |                 foreach (var t in systemCode) | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2024-12-03 19:00:05 +08:00
										 |  |  |  |                     ddlSystemNo.Items.Insert(indexRow, new FineUIPro.ListItem(t.SubCommissioningsystem, t.SubCommissioningsystem)); | 
					
						
							| 
									
										
										
										
											2024-07-29 18:06:25 +08:00
										 |  |  |  |                     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) | 
					
						
							| 
									
										
										
										
											2024-12-03 19:00:05 +08:00
										 |  |  |  |                    .GroupBy(p => new { p.SubCommissioningsystem }) | 
					
						
							|  |  |  |  |                    .Select(p => new { SubCommissioningsystem = p.Key.SubCommissioningsystem }).ToList(); | 
					
						
							| 
									
										
										
										
											2024-07-29 18:06:25 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |             if (!string.IsNullOrEmpty(ddlSystemNo.SelectedValue)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 systemCode= Funs.DB.Transfer_LHCSystemList | 
					
						
							| 
									
										
										
										
											2024-12-03 19:00:05 +08:00
										 |  |  |  |                    .Where(x => x.ProjectId == CurrUser.LoginProjectId && x.SubCommissioningsystem == ddlSystemNo.SelectedValue) | 
					
						
							|  |  |  |  |                    .GroupBy(p => new { p.SubCommissioningsystem }) | 
					
						
							|  |  |  |  |                    .Select(p => new { SubCommissioningsystem = p.Key.SubCommissioningsystem }).ToList(); | 
					
						
							| 
									
										
										
										
											2024-07-29 18:06:25 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |             #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(); | 
					
						
							| 
									
										
										
										
											2024-11-18 17:44:22 +08:00
										 |  |  |  |             //var list7 = Funs.DB.Transfer_Firefighting.Where(x => x.ProjectId == pid).ToList(); | 
					
						
							| 
									
										
										
										
											2024-07-29 18:06:25 +08:00
										 |  |  |  |             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) { | 
					
						
							| 
									
										
										
										
											2024-12-03 19:00:05 +08:00
										 |  |  |  |                 var scode = t.SubCommissioningsystem; | 
					
						
							| 
									
										
										
										
											2024-07-29 18:06:25 +08:00
										 |  |  |  |                 AllSystemNo += "'" + scode + "',"; | 
					
						
							|  |  |  |  |                 DataRow dr = dt.NewRow(); | 
					
						
							|  |  |  |  |                 dr["系统编号"] = scode; | 
					
						
							|  |  |  |  |                 #region 根据系统编号获取完成的数量 | 
					
						
							| 
									
										
										
										
											2024-11-18 17:44:22 +08:00
										 |  |  |  |                 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(); | 
					
						
							| 
									
										
										
										
											2024-07-29 18:06:25 +08:00
										 |  |  |  |                 #endregion | 
					
						
							|  |  |  |  |                 dr["完成数量"] = completedCount; | 
					
						
							|  |  |  |  |                 completed+= "'" + completedCount.ToString() + "',"; | 
					
						
							|  |  |  |  |                 #region 根据系统编号获取进行中数量 | 
					
						
							| 
									
										
										
										
											2024-11-18 17:44:22 +08:00
										 |  |  |  |                 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(); | 
					
						
							| 
									
										
										
										
											2024-07-29 18:06:25 +08:00
										 |  |  |  |                 #endregion | 
					
						
							|  |  |  |  |                 dr["进行中数量"] = InprogressCount; | 
					
						
							|  |  |  |  |                 Inprogress += "'" + InprogressCount.ToString() + "',"; | 
					
						
							|  |  |  |  |                 #region 根据系统编号获取未完成数量 | 
					
						
							| 
									
										
										
										
											2024-11-18 17:44:22 +08:00
										 |  |  |  |                 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(); | 
					
						
							| 
									
										
										
										
											2024-07-29 18:06:25 +08:00
										 |  |  |  |                 #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(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |