CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/Transfer/Chart/TransferChart.aspx.cs

1791 lines
93 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}
}