using System; using System.Collections; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Data.Linq; using System.Web.Security; using System.Web.UI.WebControls; using Model; using BLL; using System.Collections.Generic; namespace BLL { public class UnitProjectService { /// /// 根据单位/子单位工程Id获取单位/子单位工程信息 /// /// 单位/子单位工程Id /// public static Model.Wbs_UnitProject GetUnitProjectByUnitProjectId(string unitProjectId) { return Funs.DB.Wbs_UnitProject.FirstOrDefault(e => e.UnitProjectId == unitProjectId); } /// /// 根据单位工程Id获取子单位工程集合信息 /// /// 单位工程Id /// public static List GetUnitProjectsBySuperUnitProjectId(string superUnitProjectId) { return (from x in Funs.DB.Wbs_UnitProject where x.SuperUnitProjectId == superUnitProjectId orderby x.UnitProjectCode select x).ToList(); } /// /// 根据专业Id和分部编号获取分部Id /// /// 专业Id /// public static List GetUnitProjectIdByCnProfessionIdAndUnitProjectCode(string cnProfessionId, string unitProjectCode) { Model.SGGLDB db = Funs.DB; var list = (from x in db.Wbs_UnitProject where x.CnProfessionId == cnProfessionId && x.UnitProjectCode == unitProjectCode select x.UnitProjectId).ToList(); return list; } /// /// 根据装置、专业Id和分部编号获取分部Id /// /// 专业Id /// public static Model.Wbs_UnitProject GetUnitProjectIdByInstallationId(string installationId) { 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) { inId = installationId; } else { inId = Project_InstallationService.GetEndInstallationId(installationId); } return (from x in db.Wbs_UnitProject where x.InstallationId==inId select x).FirstOrDefault(); } /// /// 根据装置、专业Id和分部编号获取分部Id /// /// 专业Id /// public static List GetUnitProjectIdByInstallationIdAndCNCodeAndUnitProjectCode(string installationId, string cnCode, string unitProjectCode) { 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) { inId = installationId; } else { inId = Project_InstallationService.GetEndInstallationId(installationId); } 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; } /// /// 根据装置Id获取单位工程集合信息 /// /// 单位工程Id /// public static List GetUnitProjectsByInstallationId(string installationId) { return (from x in Funs.DB.Wbs_UnitProject where x.InstallationId == installationId && x.SuperUnitProjectId == null orderby x.UnitProjectCode select x).ToList(); } /// /// 根据专业Id获取单位工程集合信息 /// /// 专业Id /// public static List GetUnitProjectsByCnProfessionId(string cnProfessionId) { return (from x in Funs.DB.Wbs_UnitProject where x.CnProfessionId == cnProfessionId orderby x.UnitProjectCode select x).ToList(); } /// /// 根据单位工程Id获取单位工程子级集合的累计工程量 /// /// 单位工程Id /// public static decimal GetChildEngineerQuantitys(string unitProjectId) { return (from x in Funs.DB.Wbs_WbsSet where x.UnitProjectId == unitProjectId && x.SuperWbsSetId == null && x.IsApprove == true select x.EngineerQuantity ?? 0).Sum(); } /// /// 增加单位工程/子单位工程 /// /// 单位工程/子单位工程 public static void AddUnitProject(Model.Wbs_UnitProject unitProject) { Model.SGGLDB db = Funs.DB; Model.Wbs_UnitProject newUP = new Model.Wbs_UnitProject(); newUP.UnitProjectId = unitProject.UnitProjectId; newUP.UnitProjectName = unitProject.UnitProjectName; newUP.UnitProjectCode = unitProject.UnitProjectCode; newUP.SuperUnitProjectId = unitProject.SuperUnitProjectId; newUP.InstallationId = unitProject.InstallationId; newUP.ProjectId = unitProject.ProjectId; newUP.CnProfessionId = unitProject.CnProfessionId; newUP.StartDate = unitProject.StartDate; newUP.EndDate = unitProject.EndDate; newUP.Weights = unitProject.Weights; newUP.Remark = unitProject.Remark; newUP.IsIn = unitProject.IsIn; newUP.IsSelected = unitProject.IsSelected; newUP.IsApprove = unitProject.IsApprove; newUP.SortIndex = unitProject.SortIndex; newUP.EngineerQuantity = unitProject.EngineerQuantity; newUP.BudgetUnitPrice = unitProject.BudgetUnitPrice; newUP.CostUnivalent = unitProject.CostUnivalent; newUP.Unit = unitProject.Unit; db.Wbs_UnitProject.InsertOnSubmit(newUP); db.SubmitChanges(); } /// /// 修改单位工程/子单位工程 /// /// 单位工程/子单位工程 public static void UpdateUnitProject(Model.Wbs_UnitProject unitProject) { Model.SGGLDB db = Funs.DB; Model.Wbs_UnitProject newUP = db.Wbs_UnitProject.First(e => e.UnitProjectId == unitProject.UnitProjectId); newUP.UnitProjectName = unitProject.UnitProjectName; newUP.UnitProjectCode = unitProject.UnitProjectCode; newUP.InstallationId = unitProject.InstallationId; newUP.StartDate = unitProject.StartDate; newUP.EndDate = unitProject.EndDate; newUP.Weights = unitProject.Weights; newUP.WeightsMoney = unitProject.WeightsMoney; newUP.Remark = unitProject.Remark; newUP.IsSelected = unitProject.IsSelected; newUP.IsApprove = unitProject.IsApprove; newUP.IsWeightsApprove = unitProject.IsWeightsApprove; newUP.SortIndex = unitProject.SortIndex; newUP.EngineerQuantity = unitProject.EngineerQuantity; newUP.BudgetUnitPrice = unitProject.BudgetUnitPrice; newUP.CostUnivalent = unitProject.CostUnivalent; newUP.Unit = unitProject.Unit; db.SubmitChanges(); } /// /// 根据Id删除单位工程/子单位工程信息 /// /// public static void DeleteUnitProject(string unitProjectId) { Model.SGGLDB db = Funs.DB; Model.Wbs_UnitProject UP = db.Wbs_UnitProject.First(e => e.UnitProjectId == unitProjectId); db.Wbs_UnitProject.DeleteOnSubmit(UP); db.SubmitChanges(); } /// /// 根据Id删除所有子级单位工程/子单位工程信息 /// /// public static void DeleteUnitProjectBySuperUnitProjectId(string superUnitProjectId) { Model.SGGLDB db = Funs.DB; var q = from x in db.Wbs_UnitProject where x.SuperUnitProjectId == superUnitProjectId select x; db.Wbs_UnitProject.DeleteAllOnSubmit(q); db.SubmitChanges(); } } }