1791 lines
		
	
	
		
			93 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			1791 lines
		
	
	
		
			93 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | ||
| using System.Collections.Generic;
 | ||
| using System.Data;
 | ||
| using System.Linq;
 | ||
| using BLL;
 | ||
| 
 | ||
| namespace FineUIPro.Web.Transfer.Chart
 | ||
| {
 | ||
|     public partial class TransferChart : PageBase
 | ||
|     {
 | ||
|         #region 定义项
 | ||
|         /// <summary>
 | ||
|         /// 项目主键
 | ||
|         /// </summary>
 | ||
|         public string ProjectId
 | ||
|         {
 | ||
|             get
 | ||
|             {
 | ||
|                 return (string)ViewState["ProjectId"];
 | ||
|             }
 | ||
|             set
 | ||
|             {
 | ||
|                 ViewState["ProjectId"] = value;
 | ||
|             }
 | ||
|         }
 | ||
|         #endregion
 | ||
| 
 | ||
|         #region 加载页面
 | ||
|         /// <summary>
 | ||
|         /// 加载页面
 | ||
|         /// </summary>
 | ||
|         /// <param name="sender"></param>
 | ||
|         /// <param name="e"></param>
 | ||
|         protected void Page_Load(object sender, EventArgs e)
 | ||
|         {
 | ||
|             if (!IsPostBack)
 | ||
|             {
 | ||
|                 this.ProjectId = this.CurrUser.LoginProjectId;
 | ||
|                 if (!string.IsNullOrEmpty(Request.Params["projectId"]))
 | ||
|                 {
 | ||
|                     this.ProjectId = Request.Params["projectId"];
 | ||
|                 }
 | ||
| 
 | ||
|                 //this.AnalyseData();
 | ||
|             }
 | ||
|         }
 | ||
|         #endregion
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 统计分析
 | ||
|         /// </summary>
 | ||
|         /// <param name="sender"></param>
 | ||
|         /// <param name="e"></param>
 | ||
|         protected void BtnAnalyse_Click(object sender, EventArgs e)
 | ||
|         {
 | ||
|             this.AnalyseData();
 | ||
|         }
 | ||
| 
 | ||
|         #region 统计
 | ||
|         private void AnalyseData() {
 | ||
|             if (string.IsNullOrEmpty(ProjectId))
 | ||
|             {
 | ||
|                 Alert.ShowInTop("项目未获取到,请刷新页面。", MessageBoxIcon.Warning);
 | ||
|                 return;
 | ||
|             }
 | ||
|             var sTime = DateTime.Now.AddDays(-7);
 | ||
|             var eTime = DateTime.Now;
 | ||
|             if (string.IsNullOrEmpty(txtStarTime.Text) || string.IsNullOrEmpty(txtEndTime.Text))
 | ||
|             {
 | ||
|                 Alert.ShowInTop("请选择日期。", MessageBoxIcon.Warning);
 | ||
|                 return;
 | ||
|             }
 | ||
|             else
 | ||
|             {
 | ||
|                 sTime = Convert.ToDateTime(txtStarTime.Text);
 | ||
| 
 | ||
|                 eTime = Convert.ToDateTime(txtEndTime.Text).AddMonths(1).AddDays(-1);
 | ||
|             }
 | ||
|             var AfinishedCountSum = 0;//总的实际完成数量
 | ||
|             var PfinishedCountSum = 0;//总的计划完成数量
 | ||
|             //获取总的实际完成数量和总的计划完成数量
 | ||
|             switch (drpType.SelectedValue)
 | ||
|             {
 | ||
|                 #region 全部
 | ||
|                 case "":
 | ||
|                     //根据当前计划完成日期 查询总的计划完成的数量
 | ||
|                     var systemListbyDate = Funs.DB.View_TransferDetail.Where(x => x.Projectid == ProjectId
 | ||
|                                  && x.FDate >= sTime
 | ||
|                                  && x.FDate <= eTime
 | ||
|                                  && x.Status.ToLower() == "finished").ToList();
 | ||
|                     //查询TestPackage 去重
 | ||
|                     var testpackageList = (from x in systemListbyDate select x.TestPackage).Distinct();
 | ||
| 
 | ||
|                     foreach (var item in testpackageList) {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 PfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else {
 | ||
|                             PfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
| 
 | ||
|                     //获取当前日期内实际完成的数量
 | ||
|                     systemListbyDate = Funs.DB.View_TransferDetail.Where(x => x.Projectid == ProjectId
 | ||
|                                  && x.ADate >= sTime
 | ||
|                                  && x.ADate <= eTime
 | ||
|                                  && x.Status.ToLower() == "finished").ToList();
 | ||
|                     testpackageList = (from x in systemListbyDate select x.TestPackage).Distinct();
 | ||
| 
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 AfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             AfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 #endregion
 | ||
| 
 | ||
|                 #region Piping
 | ||
| 
 | ||
|                 
 | ||
|                 case "Piping":
 | ||
|                     //根据当前计划完成日期 查询总的计划完成的数量
 | ||
|                      var systemListbyDate1 = Funs.DB.Transfer_Piping.Where(x => x.ProjectId == ProjectId
 | ||
|                                  && x.TestPackageFINISH >= sTime
 | ||
|                                  && x.TestPackageFINISH <= eTime
 | ||
|                                  && x.FINALStatus.ToLower() == "finished").ToList();
 | ||
|                     //查询TestPackage 去重
 | ||
|                      testpackageList = (from x in systemListbyDate1 select x.TestPackage).Distinct();
 | ||
| 
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 PfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             PfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
| 
 | ||
|                     //获取当前日期内实际完成的数量
 | ||
|                     systemListbyDate1 = Funs.DB.Transfer_Piping.Where(x => x.ProjectId == ProjectId
 | ||
|                                  && x.CompleteTime >= sTime
 | ||
|                                  && x.CompleteTime <= eTime
 | ||
|                                  && x.FINALStatus.ToLower() == "finished").ToList();
 | ||
|                     testpackageList = (from x in systemListbyDate1 select x.TestPackage).Distinct();
 | ||
| 
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 AfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             AfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 #endregion
 | ||
|                 #region Static Equipment
 | ||
| 
 | ||
|                
 | ||
|                 case "Static Equipment":
 | ||
|                     //根据当前计划完成日期 查询总的计划完成的数量
 | ||
|                     var systemListbyDate2 = Funs.DB.Transfer_StaticEquipment.Where(x => x.ProjectId == ProjectId
 | ||
|                                 && x.TestPackageFINISH >= sTime
 | ||
|                                 && x.TestPackageFINISH <= eTime
 | ||
|                                 && x.MechanicalFINALStatus.ToLower() == "finished").ToList();
 | ||
|                     //查询TestPackage 去重
 | ||
|                     testpackageList = (from x in systemListbyDate2 select x.TestPackage).Distinct();
 | ||
| 
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 PfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             PfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
| 
 | ||
|                     //获取当前日期内实际完成的数量
 | ||
|                     systemListbyDate2=Funs.DB.Transfer_StaticEquipment.Where(x => x.ProjectId == ProjectId
 | ||
|                                 && x.CompleteTime >= sTime
 | ||
|                                 && x.CompleteTime <= eTime
 | ||
|                                 && x.MechanicalFINALStatus.ToLower() == "finished").ToList();
 | ||
|                     testpackageList = (from x in systemListbyDate2 select x.TestPackage).Distinct();
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 AfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             AfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 #endregion
 | ||
|                 #region Rotating Equipment
 | ||
| 
 | ||
|                 
 | ||
|                 case "Rotating Equipment":
 | ||
|                     //根据当前计划完成日期 查询总的计划完成的数量
 | ||
|                     var systemListbyDate3 = Funs.DB.Transfer_RotatingEquipment.Where(x => x.ProjectId == ProjectId
 | ||
|                                 && x.TestPackageFINISH >= sTime
 | ||
|                                 && x.TestPackageFINISH <= eTime
 | ||
|                                 && x.MechanicalFINALStatus.ToLower() == "finished").ToList();
 | ||
|                     //查询TestPackage 去重
 | ||
|                     testpackageList = (from x in systemListbyDate3 select x.TestPackage).Distinct();
 | ||
| 
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 PfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             PfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
| 
 | ||
|                     //获取当前日期内实际完成的数量
 | ||
|                     systemListbyDate3 = Funs.DB.Transfer_RotatingEquipment.Where(x => x.ProjectId == ProjectId
 | ||
|                                   && x.CompleteTime >= sTime
 | ||
|                                   && x.CompleteTime <= eTime
 | ||
|                                   && x.MechanicalFINALStatus.ToLower() == "finished").ToList();
 | ||
| 
 | ||
|                     testpackageList = (from x in systemListbyDate3 select x.TestPackage).Distinct();
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 AfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             AfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 #endregion
 | ||
|                 #region Instrumentation
 | ||
| 
 | ||
|                
 | ||
|                 case "Instrumentation":
 | ||
|                     //根据当前计划完成日期 查询总的计划完成的数量
 | ||
|                     var systemListbyDate4 = Funs.DB.Transfer_Instrumentation.Where(x => x.ProjectId == ProjectId
 | ||
|                                 && x.Test_Package_FINISH >= sTime
 | ||
|                                 && x.Test_Package_FINISH <= eTime
 | ||
|                                 && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                     //查询TestPackage 去重
 | ||
|                     testpackageList = (from x in systemListbyDate4 select x.Test_Package).Distinct();
 | ||
| 
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 PfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             PfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
| 
 | ||
|                     //获取当前日期内实际完成的数量
 | ||
|                     systemListbyDate4 = Funs.DB.Transfer_Instrumentation.Where(x => x.ProjectId == ProjectId
 | ||
|                                && x.CompleteTime >= sTime
 | ||
|                                && x.CompleteTime <= eTime
 | ||
|                                && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
| 
 | ||
|                     testpackageList = (from x in systemListbyDate4 select x.Test_Package).Distinct();
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 AfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             AfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 #endregion
 | ||
|                 #region Electrical
 | ||
| 
 | ||
|               
 | ||
|                 case "Electrical":
 | ||
|                     //根据当前计划完成日期 查询总的计划完成的数量
 | ||
|                     var systemListbyDate5 = Funs.DB.Transfer_Electrical.Where(x => x.ProjectId == ProjectId
 | ||
|                                 && x.Test_Package_FINISH >= sTime
 | ||
|                                 && x.Test_Package_FINISH <= eTime
 | ||
|                                 && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                     //查询TestPackage 去重
 | ||
|                     testpackageList = (from x in systemListbyDate5 select x.Test_Package).Distinct();
 | ||
| 
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 PfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             PfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
| 
 | ||
|                     //获取当前日期内实际完成的数量
 | ||
|                     systemListbyDate5 = Funs.DB.Transfer_Electrical.Where(x => x.ProjectId == ProjectId
 | ||
|                                && x.CompleteTime >= sTime
 | ||
|                                && x.CompleteTime <= eTime
 | ||
|                                && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
| 
 | ||
|                     testpackageList = (from x in systemListbyDate5 select x.Test_Package).Distinct();
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 AfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             AfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 #endregion
 | ||
|                 #region Civil Structure
 | ||
| 
 | ||
|                
 | ||
|                 case "Civil Structure":
 | ||
|                     //根据当前计划完成日期 查询总的计划完成的数量
 | ||
|                     var systemListbyDate6 = Funs.DB.Transfer_Civil_Structure.Where(x => x.ProjectId == ProjectId
 | ||
|                                 && x.Test_Package_FINISH >= sTime
 | ||
|                                 && x.Test_Package_FINISH <= eTime
 | ||
|                                 && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                     //查询TestPackage 去重
 | ||
|                     testpackageList = (from x in systemListbyDate6 select x.Test_Package).Distinct();
 | ||
| 
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 PfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             PfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
| 
 | ||
|                     //获取当前日期内实际完成的数量
 | ||
|                     systemListbyDate6 = Funs.DB.Transfer_Civil_Structure.Where(x => x.ProjectId == ProjectId
 | ||
|                                && x.CompleteTime >= sTime
 | ||
|                                && x.CompleteTime <= eTime
 | ||
|                                && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
| 
 | ||
|                     testpackageList = (from x in systemListbyDate6 select x.Test_Package).Distinct();
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 AfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             AfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 #endregion
 | ||
|                 #region Firefighting
 | ||
| 
 | ||
|                 
 | ||
|                 case "Firefighting":
 | ||
|                     //根据当前计划完成日期 查询总的计划完成的数量
 | ||
|                     var systemListbyDate7 = Funs.DB.Transfer_Firefighting.Where(x => x.ProjectId == ProjectId
 | ||
|                                 && x.Test_Package_FINISH >= sTime
 | ||
|                                 && x.Test_Package_FINISH <= eTime
 | ||
|                                 && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                     //查询TestPackage 去重
 | ||
|                     testpackageList = (from x in systemListbyDate7 select x.Test_Package).Distinct();
 | ||
| 
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 PfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             PfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
| 
 | ||
|                     //获取当前日期内实际完成的数量
 | ||
|                     systemListbyDate7 = Funs.DB.Transfer_Firefighting.Where(x => x.ProjectId == ProjectId
 | ||
|                                && x.CompleteTime >= sTime
 | ||
|                                && x.CompleteTime <= eTime
 | ||
|                                && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
| 
 | ||
|                     testpackageList = (from x in systemListbyDate7 select x.Test_Package).Distinct();
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 AfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             AfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 #endregion
 | ||
|                 #region Telecom
 | ||
| 
 | ||
|               
 | ||
|                 case "Telecom":
 | ||
|                     //根据当前计划完成日期 查询总的计划完成的数量
 | ||
|                     var systemListbyDate8 = Funs.DB.Transfer_Telecom.Where(x => x.ProjectId == ProjectId
 | ||
|                                 && x.Test_Package_FINISH >= sTime
 | ||
|                                 && x.Test_Package_FINISH <= eTime
 | ||
|                                 && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                     //查询TestPackage 去重
 | ||
|                     testpackageList = (from x in systemListbyDate8 select x.Test_Package).Distinct();
 | ||
| 
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 PfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             PfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
| 
 | ||
|                     //获取当前日期内实际完成的数量
 | ||
|                     systemListbyDate8 = Funs.DB.Transfer_Telecom.Where(x => x.ProjectId == ProjectId
 | ||
|                                && x.CompleteTime >= sTime
 | ||
|                                && x.CompleteTime <= eTime
 | ||
|                                && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
| 
 | ||
|                     testpackageList = (from x in systemListbyDate8 select x.Test_Package).Distinct();
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 AfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             AfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 #endregion
 | ||
|                 #region Plumbing
 | ||
| 
 | ||
|                
 | ||
|                 case "Plumbing":
 | ||
|                     //根据当前计划完成日期 查询总的计划完成的数量
 | ||
|                     var systemListbyDate9 = Funs.DB.Transfer_Plumbing.Where(x => x.ProjectId == ProjectId
 | ||
|                                 && x.Test_Package_FINISH >= sTime
 | ||
|                                 && x.Test_Package_FINISH <= eTime
 | ||
|                                 && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                     //查询TestPackage 去重
 | ||
|                     testpackageList = (from x in systemListbyDate9 select x.Test_Package).Distinct();
 | ||
| 
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 PfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             PfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
| 
 | ||
|                     //获取当前日期内实际完成的数量
 | ||
|                     systemListbyDate9 = Funs.DB.Transfer_Plumbing.Where(x => x.ProjectId == ProjectId
 | ||
|                                && x.CompleteTime >= sTime
 | ||
|                                && x.CompleteTime <= eTime
 | ||
|                                && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
| 
 | ||
|                     testpackageList = (from x in systemListbyDate9 select x.Test_Package).Distinct();
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 AfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             AfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
|                     break;
 | ||
|                 #endregion
 | ||
|                 #region HVAC
 | ||
| 
 | ||
|                
 | ||
|                 case "HVAC":
 | ||
|                     //根据当前计划完成日期 查询总的计划完成的数量
 | ||
|                     var systemListbyDate10 = Funs.DB.Transfer_HVAC.Where(x => x.ProjectId == ProjectId
 | ||
|                                 && x.Test_Package_FINISH >= sTime
 | ||
|                                 && x.Test_Package_FINISH <= eTime
 | ||
|                                 && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                     //查询TestPackage 去重
 | ||
|                     testpackageList = (from x in systemListbyDate10 select x.Test_Package).Distinct();
 | ||
| 
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 PfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             PfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
| 
 | ||
|                     //获取当前日期内实际完成的数量
 | ||
|                     systemListbyDate10 = Funs.DB.Transfer_HVAC.Where(x => x.ProjectId == ProjectId
 | ||
|                                && x.CompleteTime >= sTime
 | ||
|                                && x.CompleteTime <= eTime
 | ||
|                                && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
| 
 | ||
|                     testpackageList = (from x in systemListbyDate10 select x.Test_Package).Distinct();
 | ||
|                     foreach (var item in testpackageList)
 | ||
|                     {
 | ||
|                         //查询第12个表的数量
 | ||
|                         var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                          && x.Test_Package == item
 | ||
|                         ).ToList();
 | ||
|                         //如果查到
 | ||
|                         if (punchlistFromList.Count > 0)
 | ||
|                         {
 | ||
|                             //12表当前日期完成的数量
 | ||
|                             var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                             //如果完成的数量等于总得数量,则是完成
 | ||
|                             if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                             {
 | ||
|                                 AfinishedCountSum += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             AfinishedCountSum += 1;
 | ||
|                         }
 | ||
| 
 | ||
|                     }
 | ||
|                     break;
 | ||
|                     #endregion
 | ||
|             }
 | ||
| 
 | ||
| 
 | ||
|             DataTable dtTime = new DataTable();
 | ||
|             dtTime.Columns.Add("日期", typeof(string));
 | ||
|             dtTime.Columns.Add("Actual Finished(%)", typeof(string));
 | ||
|             dtTime.Columns.Add("Plan Finished(%)", typeof(string));
 | ||
| 
 | ||
|             for (var i = sTime; i <= eTime; i = i.AddMonths(1)) {
 | ||
|                 var AfinishedCount = 0;//实际完成数量
 | ||
|                 var PfinishedCount = 0;//计划完成数量
 | ||
|                 DataRow rowTime = dtTime.NewRow();
 | ||
|                 rowTime["日期"] = string.Format("{0:yyyy-MM}", i);
 | ||
|                 switch (drpType.SelectedValue)
 | ||
|                 {
 | ||
|                     #region 全部
 | ||
|                     case "":
 | ||
|                         //递增形式,开始日期就是选中的开始日期
 | ||
|                         //根据当前计划完成日期 查询完成的数量
 | ||
|                         var systemListbyDate = Funs.DB.View_TransferDetail.Where(x => x.Projectid == ProjectId
 | ||
|                                      && x.FDate >= sTime
 | ||
|                                      && x.FDate < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.Status.ToLower()== "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         var testpackageList = (from x in systemListbyDate select x.TestPackage).Distinct();
 | ||
|                         foreach (var item in testpackageList) {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     PfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 PfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         var Pcount = ((Convert.ToDouble(PfinishedCount) / Convert.ToDouble(PfinishedCountSum)));
 | ||
|                         if (PfinishedCount==0)
 | ||
|                         {
 | ||
|                             Pcount = 0;
 | ||
|                         }
 | ||
|                         rowTime["Plan Finished(%)"] = Pcount;
 | ||
| 
 | ||
| 
 | ||
|                         //实际的完成数量
 | ||
|                         systemListbyDate = Funs.DB.View_TransferDetail.Where(x => x.Projectid == ProjectId
 | ||
|                                      && x.ADate >= sTime
 | ||
|                                      && x.ADate < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate select x.TestPackage).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     AfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 AfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         var Acount = ((Convert.ToDouble(AfinishedCount) / Convert.ToDouble(AfinishedCountSum)));
 | ||
|                         if (AfinishedCount==0)
 | ||
|                         {
 | ||
|                             Acount = 0;
 | ||
|                         }
 | ||
|                         rowTime["Actual Finished(%)"] = Acount;
 | ||
|                         dtTime.Rows.Add(rowTime);
 | ||
|                         continue;
 | ||
|                     #endregion
 | ||
| 
 | ||
|                     #region Piping
 | ||
|                     case "Piping":
 | ||
|                         //递增形式,开始日期就是选中的开始日期
 | ||
|                         //根据当前计划完成日期 查询完成的数量
 | ||
|                         var systemListbyDate1 = Funs.DB.Transfer_Piping.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.TestPackageFINISH >= sTime
 | ||
|                                      && x.TestPackageFINISH < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINALStatus.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate1 select x.TestPackage).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     PfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 PfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         Pcount = ((Convert.ToDouble(PfinishedCount) / Convert.ToDouble(PfinishedCountSum)));
 | ||
|                         if (PfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Pcount = 0;
 | ||
|                         }
 | ||
|                         rowTime["Plan Finished(%)"] = Pcount;
 | ||
| 
 | ||
| 
 | ||
|                         //实际的完成数量
 | ||
|                         systemListbyDate1 = Funs.DB.Transfer_Piping.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.CompleteTime >= sTime
 | ||
|                                      && x.CompleteTime < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINALStatus.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate1 select x.TestPackage).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     AfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 AfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         if (AfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Acount = 0;
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         else {
 | ||
|                             Acount = ((Convert.ToDouble(AfinishedCount) / Convert.ToDouble(AfinishedCountSum)));
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         
 | ||
|                         continue;
 | ||
|                     #endregion
 | ||
| 
 | ||
|                     #region Static Equipment
 | ||
|                     case "Static Equipment":
 | ||
|                         //递增形式,开始日期就是选中的开始日期
 | ||
|                         //根据当前计划完成日期 查询完成的数量
 | ||
|                         var systemListbyDate2 = Funs.DB.Transfer_StaticEquipment.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.TestPackageFINISH >= sTime
 | ||
|                                      && x.TestPackageFINISH < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.MechanicalFINALStatus.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate2 select x.TestPackage).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     PfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 PfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         Pcount = ((Convert.ToDouble(PfinishedCount) / Convert.ToDouble(PfinishedCountSum)));
 | ||
|                         if (PfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Pcount = 0;
 | ||
|                         }
 | ||
|                         rowTime["Plan Finished(%)"] = Pcount;
 | ||
| 
 | ||
| 
 | ||
|                         //实际的完成数量
 | ||
|                         systemListbyDate2 = Funs.DB.Transfer_StaticEquipment.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.CompleteTime >= sTime
 | ||
|                                      && x.CompleteTime < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.MechanicalFINALStatus.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate2 select x.TestPackage).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     AfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 AfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         if (AfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Acount = 0;
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             Acount = ((Convert.ToDouble(AfinishedCount) / Convert.ToDouble(AfinishedCountSum)));
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         continue;
 | ||
|                     #endregion
 | ||
| 
 | ||
|                     #region Rotating Equipment
 | ||
|                     case "Rotating Equipment":
 | ||
|                         //递增形式,开始日期就是选中的开始日期
 | ||
|                         //根据当前计划完成日期 查询完成的数量
 | ||
|                         var systemListbyDate3 = Funs.DB.Transfer_RotatingEquipment.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.TestPackageFINISH >= sTime
 | ||
|                                      && x.TestPackageFINISH < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.MechanicalFINALStatus.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate3 select x.TestPackage).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     PfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 PfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         Pcount = ((Convert.ToDouble(PfinishedCount) / Convert.ToDouble(PfinishedCountSum)));
 | ||
|                         if (PfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Pcount = 0;
 | ||
|                         }
 | ||
|                         rowTime["Plan Finished(%)"] = Pcount;
 | ||
| 
 | ||
| 
 | ||
|                         //实际的完成数量
 | ||
|                         systemListbyDate3 = Funs.DB.Transfer_RotatingEquipment.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.CompleteTime >= sTime
 | ||
|                                      && x.CompleteTime < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.MechanicalFINALStatus.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate3 select x.TestPackage).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     AfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 AfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         if (AfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Acount = 0;
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             Acount = ((Convert.ToDouble(AfinishedCount) / Convert.ToDouble(AfinishedCountSum)));
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         continue;
 | ||
|                     #endregion
 | ||
| 
 | ||
|                     #region Instrumentation
 | ||
|                     case "Transfer_Instrumentation":
 | ||
|                         //递增形式,开始日期就是选中的开始日期
 | ||
|                         //根据当前计划完成日期 查询完成的数量
 | ||
|                         var systemListbyDate4 = Funs.DB.Transfer_Instrumentation.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.Test_Package_FINISH >= sTime
 | ||
|                                      && x.Test_Package_FINISH < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate4 select x.Test_Package).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     PfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 PfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         Pcount = ((Convert.ToDouble(PfinishedCount) / Convert.ToDouble(PfinishedCountSum)));
 | ||
|                         if (PfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Pcount = 0;
 | ||
|                         }
 | ||
|                         rowTime["Plan Finished(%)"] = Pcount;
 | ||
| 
 | ||
| 
 | ||
|                         //实际的完成数量
 | ||
|                         systemListbyDate4 = Funs.DB.Transfer_Instrumentation.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.CompleteTime >= sTime
 | ||
|                                      && x.CompleteTime < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate4 select x.Test_Package).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     AfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 AfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         if (AfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Acount = 0;
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             Acount = ((Convert.ToDouble(AfinishedCount) / Convert.ToDouble(AfinishedCountSum)));
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         continue;
 | ||
|                     #endregion
 | ||
| 
 | ||
|                     #region Electrical
 | ||
|                     case "Electrical":
 | ||
|                         //递增形式,开始日期就是选中的开始日期
 | ||
|                         //根据当前计划完成日期 查询完成的数量
 | ||
|                         var systemListbyDate5 = Funs.DB.Transfer_Electrical.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.Test_Package_FINISH >= sTime
 | ||
|                                      && x.Test_Package_FINISH < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate5 select x.Test_Package).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     PfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 PfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         Pcount = ((Convert.ToDouble(PfinishedCount) / Convert.ToDouble(PfinishedCountSum)));
 | ||
|                         if (PfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Pcount = 0;
 | ||
|                         }
 | ||
|                         rowTime["Plan Finished(%)"] = Pcount;
 | ||
| 
 | ||
| 
 | ||
|                         //实际的完成数量
 | ||
|                         systemListbyDate5 = Funs.DB.Transfer_Electrical.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.CompleteTime >= sTime
 | ||
|                                      && x.CompleteTime < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate5 select x.Test_Package).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     AfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 AfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         if (AfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Acount = 0;
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             Acount = ((Convert.ToDouble(AfinishedCount) / Convert.ToDouble(AfinishedCountSum)));
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         continue;
 | ||
|                     #endregion
 | ||
| 
 | ||
|                     #region Civil Structure
 | ||
|                     case "Civil Structure":
 | ||
|                         //递增形式,开始日期就是选中的开始日期
 | ||
|                         //根据当前计划完成日期 查询完成的数量
 | ||
|                         var systemListbyDate6 = Funs.DB.Transfer_Civil_Structure.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.Test_Package_FINISH >= sTime
 | ||
|                                      && x.Test_Package_FINISH < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate6 select x.Test_Package).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     PfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 PfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         Pcount = ((Convert.ToDouble(PfinishedCount) / Convert.ToDouble(PfinishedCountSum)));
 | ||
|                         if (PfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Pcount = 0;
 | ||
|                         }
 | ||
|                         rowTime["Plan Finished(%)"] = Pcount;
 | ||
| 
 | ||
| 
 | ||
|                         //实际的完成数量
 | ||
|                         systemListbyDate6 = Funs.DB.Transfer_Civil_Structure.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.CompleteTime >= sTime
 | ||
|                                      && x.CompleteTime < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate6 select x.Test_Package).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     AfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 AfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         if (AfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Acount = 0;
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             Acount = ((Convert.ToDouble(AfinishedCount) / Convert.ToDouble(AfinishedCountSum)));
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         continue;
 | ||
|                     #endregion
 | ||
| 
 | ||
|                     #region Firefighting
 | ||
|                     case "Firefighting":
 | ||
|                         //递增形式,开始日期就是选中的开始日期
 | ||
|                         //根据当前计划完成日期 查询完成的数量
 | ||
|                         var systemListbyDate8 = Funs.DB.Transfer_Firefighting.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.Test_Package_FINISH >= sTime
 | ||
|                                      && x.Test_Package_FINISH < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate8 select x.Test_Package).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     PfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 PfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         Pcount = ((Convert.ToDouble(PfinishedCount) / Convert.ToDouble(PfinishedCountSum)));
 | ||
|                         if (PfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Pcount = 0;
 | ||
|                         }
 | ||
|                         rowTime["Plan Finished(%)"] = Pcount;
 | ||
| 
 | ||
| 
 | ||
|                         //实际的完成数量
 | ||
|                         systemListbyDate8 = Funs.DB.Transfer_Firefighting.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.CompleteTime >= sTime
 | ||
|                                      && x.CompleteTime < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate8 select x.Test_Package).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     AfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 AfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         if (AfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Acount = 0;
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             Acount = ((Convert.ToDouble(AfinishedCount) / Convert.ToDouble(AfinishedCountSum)));
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         continue;
 | ||
|                     #endregion
 | ||
| 
 | ||
|                     #region Telecom
 | ||
|                     case "Telecom":
 | ||
|                         //递增形式,开始日期就是选中的开始日期
 | ||
|                         //根据当前计划完成日期 查询完成的数量
 | ||
|                         var systemListbyDate9 = Funs.DB.Transfer_Telecom.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.Test_Package_FINISH >= sTime
 | ||
|                                      && x.Test_Package_FINISH < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate9 select x.Test_Package).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     PfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 PfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         Pcount = ((Convert.ToDouble(PfinishedCount) / Convert.ToDouble(PfinishedCountSum)));
 | ||
|                         if (PfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Pcount = 0;
 | ||
|                         }
 | ||
|                         rowTime["Plan Finished(%)"] = Pcount;
 | ||
| 
 | ||
| 
 | ||
|                         //实际的完成数量
 | ||
|                         systemListbyDate9 = Funs.DB.Transfer_Telecom.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.CompleteTime >= sTime
 | ||
|                                      && x.CompleteTime < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate9 select x.Test_Package).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     AfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 AfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         if (AfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Acount = 0;
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             Acount = ((Convert.ToDouble(AfinishedCount) / Convert.ToDouble(AfinishedCountSum)));
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         continue;
 | ||
|                     #endregion
 | ||
| 
 | ||
|                     #region Plumbing
 | ||
|                     case "Plumbing":
 | ||
|                         //递增形式,开始日期就是选中的开始日期
 | ||
|                         //根据当前计划完成日期 查询完成的数量
 | ||
|                         var systemListbyDate10 = Funs.DB.Transfer_Plumbing.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.Test_Package_FINISH >= sTime
 | ||
|                                      && x.Test_Package_FINISH < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate10 select x.Test_Package).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     PfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 PfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         Pcount = ((Convert.ToDouble(PfinishedCount) / Convert.ToDouble(PfinishedCountSum)));
 | ||
|                         if (PfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Pcount = 0;
 | ||
|                         }
 | ||
|                         rowTime["Plan Finished(%)"] = Pcount;
 | ||
| 
 | ||
| 
 | ||
|                         //实际的完成数量
 | ||
|                         systemListbyDate10 = Funs.DB.Transfer_Plumbing.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.CompleteTime >= sTime
 | ||
|                                      && x.CompleteTime < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate10 select x.Test_Package).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     AfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 AfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         if (AfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Acount = 0;
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             Acount = ((Convert.ToDouble(AfinishedCount) / Convert.ToDouble(AfinishedCountSum)));
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         continue;
 | ||
|                     #endregion
 | ||
| 
 | ||
|                     #region HVAC
 | ||
|                     case "HVAC":
 | ||
|                         //递增形式,开始日期就是选中的开始日期
 | ||
|                         //根据当前计划完成日期 查询完成的数量
 | ||
|                         var systemListbyDate11 = Funs.DB.Transfer_HVAC.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.Test_Package_FINISH >= sTime
 | ||
|                                      && x.Test_Package_FINISH < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate11 select x.Test_Package).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     PfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 PfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         Pcount = ((Convert.ToDouble(PfinishedCount) / Convert.ToDouble(PfinishedCountSum)));
 | ||
|                         if (PfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Pcount = 0;
 | ||
|                         }
 | ||
|                         rowTime["Plan Finished(%)"] = Pcount;
 | ||
| 
 | ||
| 
 | ||
|                         //实际的完成数量
 | ||
|                         systemListbyDate11 = Funs.DB.Transfer_HVAC.Where(x => x.ProjectId == ProjectId
 | ||
|                                      && x.CompleteTime >= sTime
 | ||
|                                      && x.CompleteTime < Convert.ToDateTime(rowTime["日期"]).AddMonths(1)
 | ||
|                                      && x.FINAL_Status.ToLower() == "finished").ToList();
 | ||
|                         //查询TestPackage的总数量,状态是完成的。
 | ||
|                         testpackageList = (from x in systemListbyDate11 select x.Test_Package).Distinct();
 | ||
|                         foreach (var item in testpackageList)
 | ||
|                         {
 | ||
|                             //查询第12个表的数量
 | ||
|                             var punchlistFromList = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == ProjectId
 | ||
|                              && x.Test_Package == item
 | ||
|                             ).ToList();
 | ||
|                             //如果查到
 | ||
|                             if (punchlistFromList.Count > 0)
 | ||
|                             {
 | ||
|                                 //12表当前日期完成的数量
 | ||
|                                 var punchlistFromFinshCount = punchlistFromList.Where(x => x.PUNCH_ITEM_STATUS.ToLower() == "finished").ToList().Count();
 | ||
|                                 //如果完成的数量等于总得数量,则是完成
 | ||
|                                 if (punchlistFromFinshCount == punchlistFromList.Count)
 | ||
|                                 {
 | ||
|                                     AfinishedCount += 1;
 | ||
|                                 }
 | ||
|                             }
 | ||
|                             else
 | ||
|                             {
 | ||
|                                 AfinishedCount += 1;
 | ||
|                             }
 | ||
|                         }
 | ||
|                         //完成的数量:xx完成/总的完成 *100
 | ||
|                         if (AfinishedCount == 0)
 | ||
|                         {
 | ||
|                             Acount = 0;
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             Acount = ((Convert.ToDouble(AfinishedCount) / Convert.ToDouble(AfinishedCountSum)));
 | ||
|                             rowTime["Actual Finished(%)"] = Acount;
 | ||
|                             dtTime.Rows.Add(rowTime);
 | ||
|                         }
 | ||
|                         continue;
 | ||
|                         #endregion
 | ||
| 
 | ||
|                 }
 | ||
| 
 | ||
| 
 | ||
|             }
 | ||
|             this.ChartUc.CreateChartBaifenbi(BLL.ChartControlService.GetDataSourceChartByYijiao(dtTime, "PROGRESS REPORT", "Line", 1300, 600, false));
 | ||
|         }
 | ||
|         #endregion
 | ||
|     }
 | ||
| } |