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
+14 -8
View File
@@ -29,25 +29,31 @@ namespace BLL
/// </summary>
/// <param name="unitProjectId">专业Id</param>
/// <returns></returns>
public static string GetCnProfessionIdByInstallationIdAndOldId(string installationId, string oldId)
public static List<string> GetCnProfessionIdsByInstallationIdAndOldId(string installationId, string oldId)
{
string cnProfessionId = string.Empty;
List<string> cnProfessionIds = new List<string>();
Model.SGGLDB db = Funs.DB;
var ins = db.Project_Installation.FirstOrDefault(x => x.InstallationId == installationId);
if (ins.IsEnd == true)
var childInss = from x in db.Project_Installation where x.SuperInstallationId == installationId select x;
if (childInss.Count() == 0)
{
var cn = db.WBS_CnProfession.FirstOrDefault(x => x.InstallationId == ins.InstallationId && x.OldId.ToString() == oldId);
cnProfessionId = cn.CnProfessionId;
if (cn != null)
{
cnProfessionIds.Add(cn.CnProfessionId);
}
}
else
{
var childIns = db.Project_Installation.FirstOrDefault(x => x.SuperInstallationId == installationId);
cnProfessionId = GetCnProfessionIdByInstallationIdAndOldId(childIns.InstallationId, oldId);
var childIns = from x in db.Project_Installation where x.SuperInstallationId == installationId select x;
foreach (var childIn in childIns)
{
cnProfessionIds.AddRange(GetCnProfessionIdsByInstallationIdAndOldId(childIn.InstallationId,oldId));
}
}
return cnProfessionId;
return cnProfessionIds;
}
/// <summary>
/// 增加专业
/// </summary>
+15 -5
View File
@@ -74,20 +74,30 @@ namespace BLL
/// <returns></returns>
public static List<string> GetUnitProjectIdByInstallationIdAndCNCodeAndUnitProjectCode(string installationId, string cnCode, string unitProjectCode)
{
List<string> ids = new List<string>();
Model.SGGLDB db = Funs.DB;
string inId = string.Empty;
Model.Project_Installation ins = db.Project_Installation.FirstOrDefault(x => x.InstallationId == installationId);
if (ins.IsEnd == true)
var childInss = from x in db.Project_Installation where x.SuperInstallationId == installationId select x;
if (childInss.Count() == 0)
{
inId = installationId;
var cn = (from x in db.WBS_CnProfession where x.InstallationId == inId && x.OldId.ToString() == cnCode select x).FirstOrDefault();
if (cn != null)
{
ids.AddRange((from x in db.Wbs_UnitProject where x.CnProfessionId == cn.CnProfessionId && x.UnitProjectCode == unitProjectCode select x.UnitProjectId).ToList());
}
}
else
{
inId = Project_InstallationService.GetEndInstallationId(installationId);
var childIns = from x in db.Project_Installation where x.SuperInstallationId == installationId select x;
foreach (var childIn in childIns)
{
ids.AddRange(GetUnitProjectIdByInstallationIdAndCNCodeAndUnitProjectCode(childIn.InstallationId, cnCode, unitProjectCode));
}
}
var cn = (from x in db.WBS_CnProfession where x.InstallationId == inId && x.OldId.ToString() == cnCode select x).FirstOrDefault();
var list = (from x in db.Wbs_UnitProject where x.CnProfessionId == cn.CnProfessionId && x.UnitProjectCode == unitProjectCode select x.UnitProjectId).ToList();
return list;
return ids;
}
/// <summary>
+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;