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.SubCommissioningsystem })
 | |
|                     .Select(p => new { SubCommissioningsystem = p.Key.SubCommissioningsystem }).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.SubCommissioningsystem, t.SubCommissioningsystem));
 | |
|                     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.SubCommissioningsystem })
 | |
|                    .Select(p => new { SubCommissioningsystem = p.Key.SubCommissioningsystem }).ToList();
 | |
| 
 | |
|             if (!string.IsNullOrEmpty(ddlSystemNo.SelectedValue))
 | |
|             {
 | |
|                 systemCode= Funs.DB.Transfer_LHCSystemList
 | |
|                    .Where(x => x.ProjectId == CurrUser.LoginProjectId && x.SubCommissioningsystem == ddlSystemNo.SelectedValue)
 | |
|                    .GroupBy(p => new { p.SubCommissioningsystem })
 | |
|                    .Select(p => new { SubCommissioningsystem = p.Key.SubCommissioningsystem }).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.SubCommissioningsystem;
 | |
|                 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();
 | |
|         }
 | |
|     }
 | |
| } |