using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using BLL; using Model; namespace FineUIPro.Web.ProjectData { public partial class InstallationSave : PageBase { private static List wbsSetInits; private static string installationId; private static DateTime? startDate; private static DateTime? endDate; private static string superId; private static string id; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { superId = Request.Params["SuperId"]; id = Request.Params["Id"]; Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(superId); Model.Project_Installation installation = BLL.Project_InstallationService.GetInstallationByInstallationId(superId); LoadData(); if (project != null) { if (project.StartDate != null) { this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", project.StartDate); } if (project.EndDate != null) { this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", project.EndDate); } } else if (installation != null) { if (installation.StartDate != null) { this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", installation.StartDate); } if (installation.EndDate != null) { this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", installation.EndDate); } } Model.Project_Installation installation1 = BLL.Project_InstallationService.GetInstallationByInstallationId(id); if (installation1 != null) { this.txtInstallationCode.Text = installation1.InstallationCode; this.txtInstallationName.Text = installation1.InstallationName; if (installation1.StartDate != null) { this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", installation1.StartDate); } if (installation1.EndDate != null) { this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", installation1.EndDate); } this.txtRemark.Text = installation1.Def; } } } private void LoadData() { //btnClose.OnClientClick = ActiveWindow.GetHideReference(); } protected void btnSave_Click(object sender, EventArgs e) { string projectId = string.Empty; string superInstallationId = string.Empty; Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(superId); Model.Project_Installation parInstallation = BLL.Project_InstallationService.GetInstallationByInstallationId(superId); if (project != null) { projectId = project.ProjectId; superInstallationId = "0"; } else if (parInstallation != null) { projectId = parInstallation.ProjectId; superInstallationId = superId; } Model.Project_Installation installation = new Project_Installation(); installation.InstallationCode = txtInstallationCode.Text.Trim(); installation.InstallationName = txtInstallationName.Text.Trim(); installation.ProjectId = projectId; installation.SuperInstallationId = superInstallationId; if (!string.IsNullOrEmpty(txtStartDate.Text.Trim())) { installation.StartDate = Convert.ToDateTime(txtStartDate.Text.Trim()); } if (!string.IsNullOrEmpty(txtEndDate.Text.Trim())) { installation.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim()); } installation.Def = txtRemark.Text.Trim(); if (string.IsNullOrEmpty(id)) { installation.InstallationId = SQLHelper.GetNewID(typeof(Model.Project_Installation)); BLL.Project_InstallationService.AddInstallation(installation); if (parInstallation != null) { Model.Project_Installation pparInstallation = BLL.Project_InstallationService.GetInstallationByInstallationId(parInstallation.SuperInstallationId); if (pparInstallation != null && pparInstallation.SuperInstallationId == "0") //当前装置级别为主项,拷贝WBS数据 { installationId = installation.InstallationId; startDate = installation.StartDate; endDate = installation.EndDate; //拷贝专业 var cnProfessionInits = from x in Funs.DB.WBS_CnProfessionInit where x.CnProfessionId != 20 select x; foreach (var cnProfessionInit in cnProfessionInits) { Model.WBS_CnProfession cnProfession = new Model.WBS_CnProfession(); cnProfession.CnProfessionName = cnProfessionInit.CnProfessionName; cnProfession.CnProfessionCode = cnProfessionInit.CnProfessionCode; cnProfession.InstallationId = installationId; cnProfession.ProjectId = projectId; cnProfession.StartDate = startDate; cnProfession.EndDate = endDate; cnProfession.OldId = cnProfessionInit.CnProfessionId; BLL.CnProfessionService.AddCnProfession(cnProfession); } //拷贝单位工程及子单位工程 var unitProjectInits = from x in Funs.DB.Wbs_UnitProjectInit where x.CnProfessionId != 20 orderby x.SuperUnitProject select x; foreach (var unitProjectInit in unitProjectInits) { Model.Wbs_UnitProject unitProject = new Model.Wbs_UnitProject(); unitProject.UnitProjectId = SQLHelper.GetNewID(typeof(Model.Wbs_UnitProject)); unitProject.UnitProjectCode = unitProjectInit.UnitProjectCode; unitProject.UnitProjectName = unitProjectInit.UnitProjectName; unitProject.InstallationId = installationId; //获取对应的专业Id string cnProfessionId = (from x in Funs.DB.WBS_CnProfession where x.InstallationId == installationId && x.OldId == unitProjectInit.CnProfessionId select x.CnProfessionId).FirstOrDefault(); if (unitProjectInit.SuperUnitProject == null) { unitProject.SuperUnitProjectId = null; } else { unitProject.SuperUnitProjectId = (from x in Funs.DB.Wbs_UnitProject where x.UnitProjectCode == unitProjectInit.SuperUnitProject && x.CnProfessionId == cnProfessionId select x.UnitProjectId).FirstOrDefault(); } unitProject.ProjectId = projectId; unitProject.CnProfessionId = cnProfessionId; unitProject.StartDate = startDate; unitProject.EndDate = endDate; unitProject.Remark = unitProjectInit.Remark; unitProject.IsIn = true; BLL.UnitProjectService.AddUnitProject(unitProject); } //拷贝分部/子分部/分项/子分项 wbsSetInits = (from x in Funs.DB.WBS_WbsSetInit where x.CnProfessionId != 20 orderby x.SuperWbsSetCode select x).ToList(); foreach (var wbsSetInit in wbsSetInits) { Model.Wbs_WbsSet wbsSet = new Model.Wbs_WbsSet(); wbsSet.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); wbsSet.WbsSetCode = wbsSetInit.WbsSetCode; wbsSet.WbsSetName = wbsSetInit.WbsSetName; wbsSet.InstallationId = installationId; //获取对应的专业Id string cnProfessionId = (from x in Funs.DB.WBS_CnProfession where x.InstallationId == installationId && x.OldId == wbsSetInit.CnProfessionId select x.CnProfessionId).FirstOrDefault(); wbsSet.CnProfessionId = cnProfessionId; wbsSet.UnitProjectId = (from x in Funs.DB.Wbs_UnitProject where x.UnitProjectCode == wbsSetInit.UnitProjectCode && x.CnProfessionId == cnProfessionId select x.UnitProjectId).FirstOrDefault(); if (wbsSetInit.SuperWbsSetCode == null) { wbsSet.SuperWbsSetId = null; } else { wbsSet.SuperWbsSetId = (from x in Funs.DB.Wbs_WbsSet where x.WbsSetCode == wbsSetInit.SuperWbsSetCode && x.InstallationId == installationId && x.CnProfessionId == cnProfessionId select x.WbsSetId).FirstOrDefault(); } if (projectId.Contains("?")) { projectId = projectId.Substring(0, projectId.LastIndexOf("?")); } wbsSet.ProjectId = projectId; wbsSet.StartDate = startDate; wbsSet.EndDate = endDate; wbsSet.Flag = wbsSetInit.Flag; wbsSet.Way = wbsSetInit.Way; wbsSet.ControlItemDef = wbsSetInit.ControlItemDef; wbsSet.ControlPoint = wbsSetInit.ControlPoint; wbsSet.Remark = wbsSetInit.Remark; wbsSet.IsIn = true; BLL.WbsSetService.AddWbsSet(wbsSet); } } } BLL.LogService.AddSys_Log(this.CurrUser, installation.InstallationId, installation.InstallationId, BLL.Const.ProjectInstallationMenuId, "增加装置/单元!"); PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(installation.InstallationId) + ActiveWindow.GetHidePostBackReference()); } else { Model.Project_Installation installation1 = BLL.Project_InstallationService.GetInstallationByInstallationId(id); installation.InstallationId = id; installation.SuperInstallationId = installation1.SuperInstallationId; BLL.Project_InstallationService.UpdateInstallation(installation); //更新子级WBS内容计划时间 if (!BLL.Project_InstallationService.IsExitsInstallationsBySuperInstallationId(id)) //末级装置节点 { var cns = BLL.CnProfessionService.GetCnProfessionByInstallation(id); if (cns.Count > 0) { foreach (var cn in cns) { cn.StartDate = installation.StartDate; cn.EndDate = installation.EndDate; BLL.CnProfessionService.UpdateCnProfession(cn); } } var unitProjects = BLL.UnitProjectService.GetUnitProjectsByInstallationId(id); if (unitProjects.Count > 0) { foreach (var up in unitProjects) { up.StartDate = installation.StartDate; up.EndDate = installation.EndDate; BLL.UnitProjectService.UpdateUnitProject(up); } } var wbsSets = BLL.WbsSetService.GetWbsSetsByInstallationId(id); if (wbsSets.Count > 0) { foreach (var ws in wbsSets) { ws.StartDate = installation.StartDate; ws.EndDate = installation.EndDate; BLL.WbsSetService.UpdateWbsSet(ws); } } } BLL.LogService.AddSys_Log(this.CurrUser, installation.InstallationId, installation.InstallationId, BLL.Const.ProjectInstallationMenuId, "修改装置/单元!"); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } //PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ProgressBar.aspx?InstallationId={0}", installation.InstallationId))); } /// /// 关闭弹出窗口 /// /// /// protected void Window1_Close(object sender, WindowCloseEventArgs e) { Alert.ShowInParent("保存成功!"); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } } }