0110-gaofei

This commit is contained in:
gaofei
2022-01-10 10:55:18 +08:00
parent 93996822ec
commit d02cd7ff74
9 changed files with 673 additions and 68 deletions
+90 -34
View File
@@ -141,7 +141,7 @@ namespace BLL
{
if (cnProfessionId != Const.ACCNProfessionalId.ToString() && cnProfessionId != Const.GECNProfessionalId.ToString() && cnProfessionId != Const.UPCNProfessionalId.ToString() && cnProfessionId != Const.TFCNProfessionalId.ToString() && cnProfessionId != Const.GLCNProfessionalId.ToString())
{
newList = (from x in newList where (x.WBSType == "Installation" && x.Name != "防腐绝热" && x.Name != "地勘" && x.Name != "全厂地下主管网" && x.Name != "临时设施" && x.Name != "总图") || (x.WBSType != "Installation" && x.OldCnProfessionId.ToString() == cnProfessionId) select x).ToList();
newList = (from x in newList where (x.WBSType == "Installation" && !x.Name.Contains("防腐绝热") && !x.Name.Contains("地勘") && !x.Name.Contains("全厂地下主管网") && !x.Name.Contains("临时设施") && !x.Name.Contains("总图")) || (x.WBSType != "Installation" && x.OldCnProfessionId.ToString() == cnProfessionId) select x).ToList();
var cn = cnProfessionInits.FirstOrDefault(x => x.CnProfessionId.ToString() == cnProfessionId);
parentRow = table.NewRow();
parentRow[0] = cn.CnProfessionId.ToString();
@@ -196,6 +196,7 @@ namespace BLL
row[3] = item.ProjectId;
if (item.WBSType == "Installation")
{
decimal ind10 = 0, ind11 = 0, ind12 = 0, ind15 = 0, ind16 = 0, ind17 = 0;
if (item.SupId == "0")
{
row[1] = cn.CnProfessionId.ToString();
@@ -204,25 +205,52 @@ namespace BLL
{
row[1] = item.SupId;
}
string cnId = BLL.CnProfessionService.GetCnProfessionIdByInstallationIdAndOldId(item.Id, cnProfessionId);
Model.View_WBS_CostControlParentDetail parentDetail = parentDetails.FirstOrDefault(x => x.ParentId == cnId && x.Months == months);
if (parentDetail != null)
List<string> cnIds = BLL.CnProfessionService.GetCnProfessionIdsByInstallationIdAndOldId(item.Id, cnProfessionId);
foreach (var cnId in cnIds)
{
row[10] = decimal.Round(Convert.ToDecimal(parentDetail.ThisRealCost), 2);//本月实际成本
row[11] = decimal.Round(Convert.ToDecimal(parentDetail.ThisPlanValue), 2);//本月计划完成预算
row[12] = decimal.Round(Convert.ToDecimal(parentDetail.ThisPlanCost), 2);//本月完成预算
row[15] = decimal.Round(Convert.ToDecimal(parentDetail.TotalRealCost), 2);//累计完成成本
row[16] = decimal.Round(Convert.ToDecimal(parentDetail.TotalPlanValue), 2);//累计计划完成预算
row[17] = decimal.Round(Convert.ToDecimal(parentDetail.TotalPlanCost), 2);//累计完成预算
Model.View_WBS_CostControlParentDetail parentDetail = parentDetails.FirstOrDefault(x => x.ParentId == cnId && x.Months == months);
if (parentDetail != null)
{
ind10 += decimal.Round(Convert.ToDecimal(parentDetail.ThisRealCost), 2);
ind11 += decimal.Round(Convert.ToDecimal(parentDetail.ThisPlanValue), 2);
ind12 += decimal.Round(Convert.ToDecimal(parentDetail.ThisPlanCost), 2);
ind15 += decimal.Round(Convert.ToDecimal(parentDetail.TotalRealCost), 2);
ind16 += decimal.Round(Convert.ToDecimal(parentDetail.TotalPlanValue), 2);
ind17 += decimal.Round(Convert.ToDecimal(parentDetail.TotalPlanCost), 2);
}
else
{
Model.View_WBS_CostControlParentDetail parentLastDetail = parentDetails.OrderByDescending(x => x.Months).FirstOrDefault(x => x.ParentId == cnId);
if (parentLastDetail != null && parentLastDetail.Months <= months)
{
ind15 += decimal.Round(Convert.ToDecimal(parentLastDetail.TotalRealCost), 2);
ind16 += decimal.Round(Convert.ToDecimal(parentLastDetail.TotalPlanValue), 2);
ind17 += decimal.Round(Convert.ToDecimal(parentLastDetail.TotalPlanCost), 2);
}
}
}
if (ind10 != 0)
{
row[10] = decimal.Round(ind10, 2);//本月实际成本
row[11] = decimal.Round(ind11, 2);//本月计划完成预算
row[12] = decimal.Round(ind12, 2);//本月完成预算
row[15] = decimal.Round(ind15, 2);//累计完成成本
row[16] = decimal.Round(ind16, 2);//累计计划完成预算
row[17] = decimal.Round(ind17, 2);//累计完成预算
}
else
{
Model.View_WBS_CostControlParentDetail parentLastDetail = parentDetails.OrderByDescending(x => x.Months).FirstOrDefault(x => x.ParentId == cnId);
if (parentLastDetail != null && parentLastDetail.Months <= months)
if (ind15 > 0)
{
row[15] = decimal.Round(Convert.ToDecimal(parentLastDetail.TotalRealCost), 2);//累计完成成本
row[16] = decimal.Round(Convert.ToDecimal(parentLastDetail.TotalPlanValue), 2);//累计计划完成预算
row[17] = decimal.Round(Convert.ToDecimal(parentLastDetail.TotalPlanCost), 2);//累计完成预算
row[15] = decimal.Round(ind15, 2);//累计完成成本
}
if (ind16 > 0)
{
row[16] = decimal.Round(ind16, 2);//累计计划完成预算
}
if (ind17 > 0)
{
row[17] = decimal.Round(ind17, 2);//累计完成预算
}
}
}
@@ -491,7 +519,7 @@ namespace BLL
{
if (cnProfessionId != Const.ACCNProfessionalId.ToString() && cnProfessionId != Const.GECNProfessionalId.ToString() && cnProfessionId != Const.UPCNProfessionalId.ToString() && cnProfessionId != Const.TFCNProfessionalId.ToString() && cnProfessionId != Const.GLCNProfessionalId.ToString())
{
newList = (from x in newList where (x.WBSType == "Installation" && x.Name != "防腐绝热" && x.Name != "地勘" && x.Name != "全厂地下主管网" && x.Name != "临时设施" && x.Name != "总图") || (x.WBSType == "CnProfession" && x.OldCnProfessionId.ToString() == cnProfessionId) || (x.WBSType != "Installation" && x.WBSType != "CnProfession" && x.OldCnProfessionId.ToString() == cnProfessionId && x.OldUnitProjectCode == unitProjectCode) select x).ToList();
newList = (from x in newList where (x.WBSType == "Installation" && !x.Name.Contains("防腐绝热") && !x.Name.Contains("地勘") && !x.Name.Contains("全厂地下主管网") && !x.Name.Contains("临时设施") && !x.Name.Contains("总图")) || (x.WBSType == "CnProfession" && x.OldCnProfessionId.ToString() == cnProfessionId) || (x.WBSType != "Installation" && x.WBSType != "CnProfession" && x.OldCnProfessionId.ToString() == cnProfessionId && x.OldUnitProjectCode == unitProjectCode) select x).ToList();
var up = unitProjectInits.FirstOrDefault(x => x.UnitProjectCode == unitProjectCode);
parentRow = table.NewRow();
parentRow[0] = up.UnitProjectCode;
@@ -858,7 +886,7 @@ namespace BLL
{
if (cnProfessionId != Const.ACCNProfessionalId.ToString() && cnProfessionId != Const.GECNProfessionalId.ToString() && cnProfessionId != Const.UPCNProfessionalId.ToString() && cnProfessionId != Const.TFCNProfessionalId.ToString() && cnProfessionId != Const.GLCNProfessionalId.ToString())
{
newList = (from x in newList where (x.WBSType == "Installation" && x.Name != "防腐绝热" && x.Name != "地勘" && x.Name != "全厂地下主管网" && x.Name != "临时设施" && x.Name != "总图") || (x.WBSType == "CnProfession" && x.OldCnProfessionId.ToString() == cnProfessionId) || (x.WBSType == "UnitProject" && x.OldCnProfessionId.ToString() == cnProfessionId && x.OldUnitProjectCode == unitProjectCode) || (x.WBSType != "Installation" && x.WBSType != "CnProfession" && x.WBSType != "UnitProject" && x.OldCnProfessionId.ToString() == cnProfessionId && x.OldUnitProjectCode == unitProjectCode && x.OldWbsSetCode == wbsSetCode) select x).ToList();
newList = (from x in newList where (x.WBSType == "Installation" && !x.Name.Contains("防腐绝热") && !x.Name.Contains("地勘") && !x.Name.Contains("全厂地下主管网") && !x.Name.Contains("临时设施") && !x.Name.Contains("总图")) || (x.WBSType == "CnProfession" && x.OldCnProfessionId.ToString() == cnProfessionId) || (x.WBSType == "UnitProject" && x.OldCnProfessionId.ToString() == cnProfessionId && x.OldUnitProjectCode == unitProjectCode) || (x.WBSType != "Installation" && x.WBSType != "CnProfession" && x.WBSType != "UnitProject" && x.OldCnProfessionId.ToString() == cnProfessionId && x.OldUnitProjectCode == unitProjectCode && x.OldWbsSetCode == wbsSetCode) select x).ToList();
var wb = wbsSetInits.FirstOrDefault(x => x.WbsSetCode == wbsSetCode);
parentRow = table.NewRow();
parentRow[0] = wb.WbsSetCode;
@@ -1349,7 +1377,7 @@ namespace BLL
{
if (cnProfessionId != Const.ACCNProfessionalId.ToString() && cnProfessionId != Const.GECNProfessionalId.ToString() && cnProfessionId != Const.UPCNProfessionalId.ToString() && cnProfessionId != Const.TFCNProfessionalId.ToString() && cnProfessionId != Const.GLCNProfessionalId.ToString())
{
newList = (from x in newList where (x.WBSType == "Installation" && x.Name != "防腐绝热" && x.Name != "地勘" && x.Name != "全厂地下主管网" && x.Name != "临时设施" && x.Name != "总图") || (x.WBSType != "Installation" && x.OldCnProfessionId.ToString() == cnProfessionId) select x).ToList();
newList = (from x in newList where (x.WBSType == "Installation" && !x.Name.Contains("防腐绝热") && !x.Name.Contains("地勘") && !x.Name.Contains("全厂地下主管网") && !x.Name.Contains("临时设施") && !x.Name.Contains("总图")) || (x.WBSType != "Installation" && x.OldCnProfessionId.ToString() == cnProfessionId) select x).ToList();
var cn = cnProfessionInits.FirstOrDefault(x => x.CnProfessionId.ToString() == cnProfessionId);
parentRow = table.NewRow();
parentRow[0] = cn.CnProfessionId.ToString();
@@ -1404,6 +1432,7 @@ namespace BLL
row[3] = item.ProjectId;
if (item.WBSType == "Installation")
{
decimal ind10 = 0, ind11 = 0, ind12 = 0, ind15 = 0, ind16 = 0, ind17 = 0;
if (item.SupId == "0")
{
row[1] = cn.CnProfessionId.ToString();
@@ -1412,25 +1441,52 @@ namespace BLL
{
row[1] = item.SupId;
}
string cnId = BLL.CnProfessionService.GetCnProfessionIdByInstallationIdAndOldId(item.Id, cnProfessionId);
Model.View_WBS_CostControlParentDetail parentDetail = parentDetails.FirstOrDefault(x => x.ParentId == cnId && x.Months == months && x.StartDate == start);
if (parentDetail != null)
List<string> cnIds = BLL.CnProfessionService.GetCnProfessionIdsByInstallationIdAndOldId(item.Id, cnProfessionId);
foreach (var cnId in cnIds)
{
row[10] = decimal.Round(Convert.ToDecimal(parentDetail.ThisWeekRealCost), 2);//本周实际成本
row[11] = decimal.Round(Convert.ToDecimal(parentDetail.ThisWeekPlanValue), 2);//本周计划完成预算
row[12] = decimal.Round(Convert.ToDecimal(parentDetail.ThisWeekPlanCost), 2);//本周完成预算
row[15] = decimal.Round(Convert.ToDecimal(parentDetail.TotalWeekRealCost), 2);//累计完成成本
row[16] = decimal.Round(Convert.ToDecimal(parentDetail.TotalWeekPlanValue), 2);//累计计划完成预算
row[17] = decimal.Round(Convert.ToDecimal(parentDetail.TotalWeekPlanCost), 2);//累计完成预算
Model.View_WBS_CostControlParentDetail parentDetail = parentDetails.FirstOrDefault(x => x.ParentId == cnId && x.Months == months && x.StartDate == start);
if (parentDetail != null)
{
ind10 += decimal.Round(Convert.ToDecimal(parentDetail.ThisRealCost), 2);
ind11 += decimal.Round(Convert.ToDecimal(parentDetail.ThisPlanValue), 2);
ind12 += decimal.Round(Convert.ToDecimal(parentDetail.ThisPlanCost), 2);
ind15 += decimal.Round(Convert.ToDecimal(parentDetail.TotalRealCost), 2);
ind16 += decimal.Round(Convert.ToDecimal(parentDetail.TotalPlanValue), 2);
ind17 += decimal.Round(Convert.ToDecimal(parentDetail.TotalPlanCost), 2);
}
else
{
Model.View_WBS_CostControlParentDetail parentLastDetail = parentDetails.OrderByDescending(x => x.Months).OrderByDescending(x => x.StartDate).FirstOrDefault(x => x.ParentId == cnId);
if (parentLastDetail != null && parentLastDetail.Months <= months)
{
ind15 += decimal.Round(Convert.ToDecimal(parentLastDetail.TotalRealCost), 2);
ind16 += decimal.Round(Convert.ToDecimal(parentLastDetail.TotalPlanValue), 2);
ind17 += decimal.Round(Convert.ToDecimal(parentLastDetail.TotalPlanCost), 2);
}
}
}
if (ind10 != 0)
{
row[10] = decimal.Round(ind10, 2);//本月实际成本
row[11] = decimal.Round(ind11, 2);//本月计划完成预算
row[12] = decimal.Round(ind12, 2);//本月完成预算
row[15] = decimal.Round(ind15, 2);//累计完成成本
row[16] = decimal.Round(ind16, 2);//累计计划完成预算
row[17] = decimal.Round(ind17, 2);//累计完成预算
}
else
{
Model.View_WBS_CostControlParentDetail parentLastDetail = parentDetails.OrderByDescending(x => x.Months).OrderByDescending(x => x.StartDate).FirstOrDefault(x => x.ParentId == cnId);
if (parentLastDetail != null && parentLastDetail.Months <= months)
if (ind15 > 0)
{
row[15] = decimal.Round(Convert.ToDecimal(parentLastDetail.TotalWeekRealCost), 2);//累计完成成本
row[16] = decimal.Round(Convert.ToDecimal(parentLastDetail.TotalWeekPlanValue), 2);//累计计划完成预算
row[17] = decimal.Round(Convert.ToDecimal(parentLastDetail.TotalWeekPlanCost), 2);//累计完成预算
row[15] = decimal.Round(ind15, 2);//累计完成成本
}
if (ind16 > 0)
{
row[16] = decimal.Round(ind16, 2);//累计计划完成预算
}
if (ind17 > 0)
{
row[17] = decimal.Round(ind17, 2);//累计完成预算
}
}
}
@@ -1699,7 +1755,7 @@ namespace BLL
{
if (cnProfessionId != Const.ACCNProfessionalId.ToString() && cnProfessionId != Const.GECNProfessionalId.ToString() && cnProfessionId != Const.UPCNProfessionalId.ToString() && cnProfessionId != Const.TFCNProfessionalId.ToString() && cnProfessionId != Const.GLCNProfessionalId.ToString())
{
newList = (from x in newList where (x.WBSType == "Installation" && x.Name != "防腐绝热" && x.Name != "地勘" && x.Name != "全厂地下主管网" && x.Name != "临时设施" && x.Name != "总图") || (x.WBSType == "CnProfession" && x.OldCnProfessionId.ToString() == cnProfessionId) || (x.WBSType != "Installation" && x.WBSType != "CnProfession" && x.OldCnProfessionId.ToString() == cnProfessionId && x.OldUnitProjectCode == unitProjectCode) select x).ToList();
newList = (from x in newList where (x.WBSType == "Installation" && !x.Name.Contains("防腐绝热") && !x.Name.Contains("地勘") && !x.Name.Contains("全厂地下主管网") && !x.Name.Contains("临时设施") && !x.Name.Contains("总图")) || (x.WBSType == "CnProfession" && x.OldCnProfessionId.ToString() == cnProfessionId) || (x.WBSType != "Installation" && x.WBSType != "CnProfession" && x.OldCnProfessionId.ToString() == cnProfessionId && x.OldUnitProjectCode == unitProjectCode) select x).ToList();
var up = unitProjectInits.FirstOrDefault(x => x.UnitProjectCode == unitProjectCode);
parentRow = table.NewRow();
parentRow[0] = up.UnitProjectCode;
@@ -2066,7 +2122,7 @@ namespace BLL
{
if (cnProfessionId != Const.ACCNProfessionalId.ToString() && cnProfessionId != Const.GECNProfessionalId.ToString() && cnProfessionId != Const.UPCNProfessionalId.ToString() && cnProfessionId != Const.TFCNProfessionalId.ToString() && cnProfessionId != Const.GLCNProfessionalId.ToString())
{
newList = (from x in newList where (x.WBSType == "Installation" && x.Name != "防腐绝热" && x.Name != "地勘" && x.Name != "全厂地下主管网" && x.Name != "临时设施" && x.Name != "总图") || (x.WBSType == "CnProfession" && x.OldCnProfessionId.ToString() == cnProfessionId) || (x.WBSType == "UnitProject" && x.OldCnProfessionId.ToString() == cnProfessionId && x.OldUnitProjectCode == unitProjectCode) || (x.WBSType != "Installation" && x.WBSType != "CnProfession" && x.WBSType != "UnitProject" && x.OldCnProfessionId.ToString() == cnProfessionId && x.OldUnitProjectCode == unitProjectCode && x.OldWbsSetCode == wbsSetCode) select x).ToList();
newList = (from x in newList where (x.WBSType == "Installation" && !x.Name.Contains("防腐绝热") && !x.Name.Contains("地勘") && !x.Name.Contains("全厂地下主管网") && !x.Name.Contains("临时设施") && !x.Name.Contains("总图")) || (x.WBSType == "CnProfession" && x.OldCnProfessionId.ToString() == cnProfessionId) || (x.WBSType == "UnitProject" && x.OldCnProfessionId.ToString() == cnProfessionId && x.OldUnitProjectCode == unitProjectCode) || (x.WBSType != "Installation" && x.WBSType != "CnProfession" && x.WBSType != "UnitProject" && x.OldCnProfessionId.ToString() == cnProfessionId && x.OldUnitProjectCode == unitProjectCode && x.OldWbsSetCode == wbsSetCode) select x).ToList();
var wb = wbsSetInits.FirstOrDefault(x => x.WbsSetCode == wbsSetCode);
parentRow = table.NewRow();
parentRow[0] = wb.WbsSetCode;