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();
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |