From 80e4a4097b85e230edca6362f758eea9e9465fad Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Tue, 13 Aug 2024 15:07:54 +0800 Subject: [PATCH] =?UTF-8?q?20240813=20=E4=BF=AE=E6=94=B9=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E5=B7=A5=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SGGL/FineUIPro.Web/ErrLog.txt | 20 + .../ProjectData/UnitWorkEdit.aspx.cs | 497 ++++++++++++++++-- 2 files changed, 472 insertions(+), 45 deletions(-) diff --git a/SGGL/FineUIPro.Web/ErrLog.txt b/SGGL/FineUIPro.Web/ErrLog.txt index 669dacf8..3af455ab 100644 --- a/SGGL/FineUIPro.Web/ErrLog.txt +++ b/SGGL/FineUIPro.Web/ErrLog.txt @@ -18,3 +18,23 @@ IP地址:::1 出错时间:08/13/2024 14:44:02 + +错误信息开始=====> +错误类型:NullReferenceException +错误信息:未将对象引用设置到对象的实例。 +错误堆栈: + 在 FineUIPro.Web.ProjectData.UnitWork.getWBSSet() 位置 E:\五环\SGGL_CWCEC\SGGL\FineUIPro.Web\ProjectData\UnitWork.aspx.cs:行号 461 + 在 FineUIPro.Web.ProjectData.UnitWork.Window2_Close(Object sender, WindowCloseEventArgs e) 位置 E:\五环\SGGL_CWCEC\SGGL\FineUIPro.Web\ProjectData\UnitWork.aspx.cs:行号 221 + 在 FineUIPro.Window.OnClose(WindowCloseEventArgs e) + 在 (Window , WindowCloseEventArgs ) + 在 FineUIPro.Window.RaisePostBackEvent(String eventArgument) + 在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) + 在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) + 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +出错时间:08/13/2024 15:04:20 +出错文件:http://localhost:8579/ProjectData/UnitWork.aspx +IP地址:::1 +操作人员:JT + +出错时间:08/13/2024 15:04:20 + diff --git a/SGGL/FineUIPro.Web/ProjectData/UnitWorkEdit.aspx.cs b/SGGL/FineUIPro.Web/ProjectData/UnitWorkEdit.aspx.cs index 8b00e769..72ec4866 100644 --- a/SGGL/FineUIPro.Web/ProjectData/UnitWorkEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/ProjectData/UnitWorkEdit.aspx.cs @@ -1,5 +1,10 @@ using BLL; using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; namespace FineUIPro.Web.ProjectData { @@ -74,14 +79,13 @@ namespace FineUIPro.Web.ProjectData newUnitWork.UnitWorkId = id; BLL.UnitWorkService.UpdateUnitWork(newUnitWork); BLL.LogService.AddSys_Log(this.CurrUser, newUnitWork.UnitWorkId, newUnitWork.UnitWorkId, BLL.Const.UnitWorkMenuId, "修改子单位工程!"); - PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } else { newUnitWork.UnitWorkId = SQLHelper.GetNewID(typeof(Model.WBS_UnitWork)); BLL.UnitWorkService.AddUnitWork(newUnitWork); BLL.LogService.AddSys_Log(this.CurrUser, newUnitWork.UnitWorkId, newUnitWork.UnitWorkId, BLL.Const.UnitWorkMenuId, "增加子单位工程!"); - PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); //PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(newUnitWork.UnitWorkId) + ActiveWindow.GetHidePostBackReference()); } } else @@ -96,14 +100,204 @@ namespace FineUIPro.Web.ProjectData newUnitWork.UnitWorkId = id; BLL.UnitWorkService.UpdateUnitWork(newUnitWork); BLL.LogService.AddSys_Log(this.CurrUser, newUnitWork.UnitWorkId, newUnitWork.UnitWorkId, BLL.Const.UnitWorkMenuId, "修改单位工程!"); - PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + + var divisionProject = Funs.DB.WBS_DivisionProject.FirstOrDefault(x => x.UnitWorkId == newUnitWork.UnitWorkId); + if (divisionProject == null) + { + #region 拷贝WBS内容 + //拷贝分部及子分部 + var divisions1 = from x in Funs.DB.WBS_Division where x.SuperDivisionId == null select x; + foreach (var d1 in divisions1) + { + Model.WBS_DivisionProject newDivisionProject = new Model.WBS_DivisionProject(); + newDivisionProject.DivisionProjectId = SQLHelper.GetNewID(typeof(Model.WBS_DivisionProject)); + newDivisionProject.ProjectId = this.CurrUser.LoginProjectId; + newDivisionProject.DivisionCode = d1.DivisionCode; + newDivisionProject.DivisionName = d1.DivisionName; + newDivisionProject.SortIndex = d1.SortIndex; + newDivisionProject.SuperDivisionId = d1.SuperDivisionId; + newDivisionProject.CNProfessionalId = d1.CNProfessionalId; + newDivisionProject.UnitWorkId = newUnitWork.UnitWorkId; + newDivisionProject.OldDivisionId = d1.DivisionId; + newDivisionProject.SubItemType = d1.SubItemType; + BLL.DivisionProjectService.AddDivisionProject(newDivisionProject); //分部 + List divisions2 = (from x in Funs.DB.WBS_Division where x.SuperDivisionId == d1.DivisionId select x).ToList(); + if (divisions2.Count() > 0) + { + this.InsertDivisionDetail(divisions2, newDivisionProject.DivisionProjectId, newUnitWork.UnitWorkId); + } + } + //拷贝分项 + var breakdowns = from x in Funs.DB.WBS_Breakdown select x; + foreach (var b in breakdowns) + { + Model.WBS_BreakdownProject bp = new Model.WBS_BreakdownProject(); + bp.BreakdownProjectId = SQLHelper.GetNewID(typeof(Model.WBS_BreakdownProject)); + bp.ProjectId = this.CurrUser.LoginProjectId; + bp.BreakdownCode = b.BreakdownCode; + bp.BreakdownName = b.BreakdownName; + bp.DivisionProjectId = (from x in Funs.DB.WBS_DivisionProject where x.OldDivisionId == b.DivisionId && x.UnitWorkId == newUnitWork.UnitWorkId select x.DivisionProjectId).FirstOrDefault(); + bp.Basis = b.Basis; + bp.CheckPoints = b.CheckPoints; + bp.RecordAndCode = b.RecordAndCode; + bp.Class = b.Class; + bp.SortIndex = b.SortIndex; + bp.Remark = b.Remark; + bp.ModelURL = b.ModelURL; + bp.UnitWorkId = newUnitWork.UnitWorkId; + bp.IsAcceptance = b.IsAcceptance; + bp.IsYellow = b.IsYellow; + bp.WuHuan = b.WuHuan; + bp.JianLi = b.JianLi; + bp.FenBao = b.FenBao; + bp.YeZhu = b.YeZhu; + bp.SourceBreakdownId = b.BreakdownId; + bp.CheckAcceptType = b.CheckAcceptType; + + BLL.BreakdownProjectService.AddBreakdownProject(bp); + } + #endregion + } + else + { + #region 拷贝建筑工程WBS内容 + //拷贝分部及子分部 + var divisions1 = from x in Funs.DB.WBS_Division where x.SuperDivisionId == null && x.CNProfessionalId == BLL.Const.CNProfessionalConstructId select x; + foreach (var d1 in divisions1) + { + Model.WBS_DivisionProject newDivisionProject = new Model.WBS_DivisionProject(); + newDivisionProject.DivisionProjectId = SQLHelper.GetNewID(typeof(Model.WBS_DivisionProject)); + newDivisionProject.ProjectId = this.CurrUser.LoginProjectId; + newDivisionProject.DivisionCode = d1.DivisionCode; + newDivisionProject.DivisionName = d1.DivisionName; + newDivisionProject.SortIndex = d1.SortIndex; + newDivisionProject.SuperDivisionId = d1.SuperDivisionId; + newDivisionProject.CNProfessionalId = d1.CNProfessionalId; + newDivisionProject.UnitWorkId = newUnitWork.UnitWorkId; + newDivisionProject.OldDivisionId = d1.DivisionId; + BLL.DivisionProjectService.AddDivisionProject(newDivisionProject); //分部 + List divisions2 = (from x in Funs.DB.WBS_Division where x.SuperDivisionId == d1.DivisionId select x).ToList(); + if (divisions2.Count() > 0) + { + this.InsertDivisionDetail(divisions2, newDivisionProject.DivisionProjectId, newUnitWork.UnitWorkId); + } + } + //拷贝分项 + var breakdowns = from x in Funs.DB.WBS_Breakdown + join y in Funs.DB.WBS_Division on x.DivisionId equals y.DivisionId + where y.CNProfessionalId == BLL.Const.CNProfessionalConstructId + select x; + foreach (var b in breakdowns) + { + Model.WBS_BreakdownProject bp = new Model.WBS_BreakdownProject(); + bp.BreakdownProjectId = SQLHelper.GetNewID(typeof(Model.WBS_BreakdownProject)); + bp.ProjectId = this.CurrUser.LoginProjectId; + bp.BreakdownCode = b.BreakdownCode; + bp.BreakdownName = b.BreakdownName; + bp.DivisionProjectId = (from x in Funs.DB.WBS_DivisionProject where x.OldDivisionId == b.DivisionId && x.UnitWorkId == newUnitWork.UnitWorkId select x.DivisionProjectId).FirstOrDefault(); + bp.Basis = b.Basis; + bp.CheckPoints = b.CheckPoints; + bp.RecordAndCode = b.RecordAndCode; + bp.Class = b.Class; + bp.SortIndex = b.SortIndex; + bp.Remark = b.Remark; + bp.ModelURL = b.ModelURL; + bp.UnitWorkId = newUnitWork.UnitWorkId; + bp.IsAcceptance = b.IsAcceptance; + bp.IsYellow = b.IsYellow; + bp.WuHuan = b.WuHuan; + bp.JianLi = b.JianLi; + bp.FenBao = b.FenBao; + bp.YeZhu = b.YeZhu; + bp.SourceBreakdownId = b.BreakdownId; + + BLL.BreakdownProjectService.AddBreakdownProject(bp); + } + #endregion + } + Model.DataBase_DataTypeProject dp = Funs.DB.DataBase_DataTypeProject.FirstOrDefault(x => x.UnitWorkId == newUnitWork.UnitWorkId); + if (dp == null) + { + #region 拷贝资料库内容 + Model.DataBase_DataTypeProject dataTypeProject = BLL.DataTypeProjectService.GetDataTypeProjectBySourceDataTypeId(Const.DataTypeNewConstructId, this.CurrUser.LoginProjectId); + List childDataTypes = BLL.DataTypeService.GetDataTypesBySuperDataTypeId(Const.DataTypeNewConstructId); + if (childDataTypes.Count > 0) + { + if (dataTypeProject != null) + { + InsertDataTypeDetail(childDataTypes, dataTypeProject.DataTypeProjectId, this.CurrUser.LoginProjectId, newUnitWork.UnitWorkId); + } + } + #endregion + } } else { newUnitWork.UnitWorkId = SQLHelper.GetNewID(typeof(Model.WBS_UnitWork)); BLL.UnitWorkService.AddUnitWork(newUnitWork); BLL.LogService.AddSys_Log(this.CurrUser, newUnitWork.UnitWorkId, newUnitWork.UnitWorkId, BLL.Const.UnitWorkMenuId, "增加单位工程!"); - PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); //PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(newUnitWork.UnitWorkId) + ActiveWindow.GetHidePostBackReference()); + #region 拷贝WBS内容 + //拷贝分部及子分部 + var divisions1 = from x in Funs.DB.WBS_Division where x.SuperDivisionId == null select x; + foreach (var d1 in divisions1) + { + Model.WBS_DivisionProject newDivisionProject = new Model.WBS_DivisionProject(); + newDivisionProject.DivisionProjectId = SQLHelper.GetNewID(typeof(Model.WBS_DivisionProject)); + newDivisionProject.ProjectId = this.CurrUser.LoginProjectId; + newDivisionProject.DivisionCode = d1.DivisionCode; + newDivisionProject.DivisionName = d1.DivisionName; + newDivisionProject.SortIndex = d1.SortIndex; + newDivisionProject.SuperDivisionId = d1.SuperDivisionId; + newDivisionProject.CNProfessionalId = d1.CNProfessionalId; + newDivisionProject.UnitWorkId = newUnitWork.UnitWorkId; + newDivisionProject.OldDivisionId = d1.DivisionId; + BLL.DivisionProjectService.AddDivisionProject(newDivisionProject); //分部 + List divisions2 = (from x in Funs.DB.WBS_Division where x.SuperDivisionId == d1.DivisionId select x).ToList(); + if (divisions2.Count() > 0) + { + this.InsertDivisionDetail(divisions2, newDivisionProject.DivisionProjectId, newUnitWork.UnitWorkId); + } + } + //拷贝分项 + var breakdowns = from x in Funs.DB.WBS_Breakdown select x; + foreach (var b in breakdowns) + { + Model.WBS_BreakdownProject bp = new Model.WBS_BreakdownProject(); + bp.BreakdownProjectId = SQLHelper.GetNewID(typeof(Model.WBS_BreakdownProject)); + bp.ProjectId = this.CurrUser.LoginProjectId; + bp.BreakdownCode = b.BreakdownCode; + bp.BreakdownName = b.BreakdownName; + bp.DivisionProjectId = (from x in Funs.DB.WBS_DivisionProject where x.OldDivisionId == b.DivisionId && x.UnitWorkId == newUnitWork.UnitWorkId select x.DivisionProjectId).FirstOrDefault(); + bp.Basis = b.Basis; + bp.CheckPoints = b.CheckPoints; + bp.RecordAndCode = b.RecordAndCode; + bp.Class = b.Class; + bp.SortIndex = b.SortIndex; + bp.Remark = b.Remark; + bp.ModelURL = b.ModelURL; + bp.UnitWorkId = newUnitWork.UnitWorkId; + bp.IsAcceptance = b.IsAcceptance; + bp.IsYellow = b.IsYellow; + bp.WuHuan = b.WuHuan; + bp.JianLi = b.JianLi; + bp.FenBao = b.FenBao; + bp.YeZhu = b.YeZhu; + bp.SourceBreakdownId = b.BreakdownId; + + BLL.BreakdownProjectService.AddBreakdownProject(bp); + } + #endregion + #region 拷贝资料库内容 + Model.DataBase_DataTypeProject dataTypeProject = BLL.DataTypeProjectService.GetDataTypeProjectBySourceDataTypeId(Const.DataTypeNewConstructId, this.CurrUser.LoginProjectId); + List childDataTypes = BLL.DataTypeService.GetDataTypesBySuperDataTypeId(Const.DataTypeNewConstructId); + if (childDataTypes.Count > 0) + { + if (dataTypeProject != null) + { + InsertDataTypeDetail(childDataTypes, dataTypeProject.DataTypeProjectId, this.CurrUser.LoginProjectId, newUnitWork.UnitWorkId); + } + } + #endregion } } } @@ -119,57 +313,270 @@ namespace FineUIPro.Web.ProjectData newUnitWork.UnitWorkId = id; BLL.UnitWorkService.UpdateUnitWork(newUnitWork); BLL.LogService.AddSys_Log(this.CurrUser, newUnitWork.UnitWorkId, newUnitWork.UnitWorkId, BLL.Const.UnitWorkMenuId, "修改单位工程!"); - PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + + var divisionProject = Funs.DB.WBS_DivisionProject.FirstOrDefault(x => x.UnitWorkId == newUnitWork.UnitWorkId); + if (divisionProject == null) + { + #region 拷贝WBS内容 + //拷贝分部及子分部 + var divisions1 = from x in Funs.DB.WBS_Division where x.SuperDivisionId == null select x; + foreach (var d1 in divisions1) + { + Model.WBS_DivisionProject newDivisionProject = new Model.WBS_DivisionProject(); + newDivisionProject.DivisionProjectId = SQLHelper.GetNewID(typeof(Model.WBS_DivisionProject)); + newDivisionProject.ProjectId = this.CurrUser.LoginProjectId; + newDivisionProject.DivisionCode = d1.DivisionCode; + newDivisionProject.DivisionName = d1.DivisionName; + newDivisionProject.SortIndex = d1.SortIndex; + newDivisionProject.SuperDivisionId = d1.SuperDivisionId; + newDivisionProject.CNProfessionalId = d1.CNProfessionalId; + newDivisionProject.UnitWorkId = newUnitWork.UnitWorkId; + newDivisionProject.OldDivisionId = d1.DivisionId; + newDivisionProject.SubItemType = d1.SubItemType; + BLL.DivisionProjectService.AddDivisionProject(newDivisionProject); //分部 + List divisions2 = (from x in Funs.DB.WBS_Division where x.SuperDivisionId == d1.DivisionId select x).ToList(); + if (divisions2.Count() > 0) + { + this.InsertDivisionDetail(divisions2, newDivisionProject.DivisionProjectId, newUnitWork.UnitWorkId); + } + } + //拷贝分项 + var breakdowns = from x in Funs.DB.WBS_Breakdown select x; + foreach (var b in breakdowns) + { + Model.WBS_BreakdownProject bp = new Model.WBS_BreakdownProject(); + bp.BreakdownProjectId = SQLHelper.GetNewID(typeof(Model.WBS_BreakdownProject)); + bp.ProjectId = this.CurrUser.LoginProjectId; + bp.BreakdownCode = b.BreakdownCode; + bp.BreakdownName = b.BreakdownName; + bp.DivisionProjectId = (from x in Funs.DB.WBS_DivisionProject where x.OldDivisionId == b.DivisionId && x.UnitWorkId == newUnitWork.UnitWorkId select x.DivisionProjectId).FirstOrDefault(); + bp.Basis = b.Basis; + bp.CheckPoints = b.CheckPoints; + bp.RecordAndCode = b.RecordAndCode; + bp.Class = b.Class; + bp.SortIndex = b.SortIndex; + bp.Remark = b.Remark; + bp.ModelURL = b.ModelURL; + bp.UnitWorkId = newUnitWork.UnitWorkId; + bp.IsAcceptance = b.IsAcceptance; + bp.IsYellow = b.IsYellow; + bp.WuHuan = b.WuHuan; + bp.JianLi = b.JianLi; + bp.FenBao = b.FenBao; + bp.YeZhu = b.YeZhu; + bp.SourceBreakdownId = b.BreakdownId; + bp.CheckAcceptType = b.CheckAcceptType; + + BLL.BreakdownProjectService.AddBreakdownProject(bp); + } + #endregion + } + else + { + #region 拷贝建筑工程WBS内容 + //拷贝分部及子分部 + var divisions1 = from x in Funs.DB.WBS_Division where x.SuperDivisionId == null && x.CNProfessionalId == BLL.Const.CNProfessionalConstructId select x; + foreach (var d1 in divisions1) + { + Model.WBS_DivisionProject newDivisionProject = new Model.WBS_DivisionProject(); + newDivisionProject.DivisionProjectId = SQLHelper.GetNewID(typeof(Model.WBS_DivisionProject)); + newDivisionProject.ProjectId = this.CurrUser.LoginProjectId; + newDivisionProject.DivisionCode = d1.DivisionCode; + newDivisionProject.DivisionName = d1.DivisionName; + newDivisionProject.SortIndex = d1.SortIndex; + newDivisionProject.SuperDivisionId = d1.SuperDivisionId; + newDivisionProject.CNProfessionalId = d1.CNProfessionalId; + newDivisionProject.UnitWorkId = newUnitWork.UnitWorkId; + newDivisionProject.OldDivisionId = d1.DivisionId; + BLL.DivisionProjectService.AddDivisionProject(newDivisionProject); //分部 + List divisions2 = (from x in Funs.DB.WBS_Division where x.SuperDivisionId == d1.DivisionId select x).ToList(); + if (divisions2.Count() > 0) + { + this.InsertDivisionDetail(divisions2, newDivisionProject.DivisionProjectId, newUnitWork.UnitWorkId); + } + } + //拷贝分项 + var breakdowns = from x in Funs.DB.WBS_Breakdown + join y in Funs.DB.WBS_Division on x.DivisionId equals y.DivisionId + where y.CNProfessionalId == BLL.Const.CNProfessionalConstructId + select x; + foreach (var b in breakdowns) + { + Model.WBS_BreakdownProject bp = new Model.WBS_BreakdownProject(); + bp.BreakdownProjectId = SQLHelper.GetNewID(typeof(Model.WBS_BreakdownProject)); + bp.ProjectId = this.CurrUser.LoginProjectId; + bp.BreakdownCode = b.BreakdownCode; + bp.BreakdownName = b.BreakdownName; + bp.DivisionProjectId = (from x in Funs.DB.WBS_DivisionProject where x.OldDivisionId == b.DivisionId && x.UnitWorkId == newUnitWork.UnitWorkId select x.DivisionProjectId).FirstOrDefault(); + bp.Basis = b.Basis; + bp.CheckPoints = b.CheckPoints; + bp.RecordAndCode = b.RecordAndCode; + bp.Class = b.Class; + bp.SortIndex = b.SortIndex; + bp.Remark = b.Remark; + bp.ModelURL = b.ModelURL; + bp.UnitWorkId = newUnitWork.UnitWorkId; + bp.IsAcceptance = b.IsAcceptance; + bp.IsYellow = b.IsYellow; + bp.WuHuan = b.WuHuan; + bp.JianLi = b.JianLi; + bp.FenBao = b.FenBao; + bp.YeZhu = b.YeZhu; + bp.SourceBreakdownId = b.BreakdownId; + + BLL.BreakdownProjectService.AddBreakdownProject(bp); + } + #endregion + } + Model.DataBase_DataTypeProject dp = Funs.DB.DataBase_DataTypeProject.FirstOrDefault(x => x.UnitWorkId == newUnitWork.UnitWorkId); + if (dp == null) + { + #region 拷贝资料库内容 + Model.DataBase_DataTypeProject dataTypeProject = BLL.DataTypeProjectService.GetDataTypeProjectBySourceDataTypeId(Const.DataTypeNewConstructId, this.CurrUser.LoginProjectId); + List childDataTypes = BLL.DataTypeService.GetDataTypesBySuperDataTypeId(Const.DataTypeNewConstructId); + if (childDataTypes.Count > 0) + { + if (dataTypeProject != null) + { + InsertDataTypeDetail(childDataTypes, dataTypeProject.DataTypeProjectId, this.CurrUser.LoginProjectId, newUnitWork.UnitWorkId); + } + } + #endregion + } } else { newUnitWork.UnitWorkId = SQLHelper.GetNewID(typeof(Model.WBS_UnitWork)); BLL.UnitWorkService.AddUnitWork(newUnitWork); BLL.LogService.AddSys_Log(this.CurrUser, newUnitWork.UnitWorkId, newUnitWork.UnitWorkId, BLL.Const.UnitWorkMenuId, "增加单位工程!"); - PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());//PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(newUnitWork.UnitWorkId) + ActiveWindow.GetHidePostBackReference()); + #region 拷贝WBS内容 + //拷贝分部及子分部 + var divisions1 = from x in Funs.DB.WBS_Division where x.SuperDivisionId == null select x; + foreach (var d1 in divisions1) + { + Model.WBS_DivisionProject newDivisionProject = new Model.WBS_DivisionProject(); + newDivisionProject.DivisionProjectId = SQLHelper.GetNewID(typeof(Model.WBS_DivisionProject)); + newDivisionProject.ProjectId = this.CurrUser.LoginProjectId; + newDivisionProject.DivisionCode = d1.DivisionCode; + newDivisionProject.DivisionName = d1.DivisionName; + newDivisionProject.SortIndex = d1.SortIndex; + newDivisionProject.SuperDivisionId = d1.SuperDivisionId; + newDivisionProject.CNProfessionalId = d1.CNProfessionalId; + newDivisionProject.UnitWorkId = newUnitWork.UnitWorkId; + newDivisionProject.OldDivisionId = d1.DivisionId; + BLL.DivisionProjectService.AddDivisionProject(newDivisionProject); //分部 + List divisions2 = (from x in Funs.DB.WBS_Division where x.SuperDivisionId == d1.DivisionId select x).ToList(); + if (divisions2.Count() > 0) + { + this.InsertDivisionDetail(divisions2, newDivisionProject.DivisionProjectId, newUnitWork.UnitWorkId); + } + } + //拷贝分项 + var breakdowns = from x in Funs.DB.WBS_Breakdown select x; + foreach (var b in breakdowns) + { + Model.WBS_BreakdownProject bp = new Model.WBS_BreakdownProject(); + bp.BreakdownProjectId = SQLHelper.GetNewID(typeof(Model.WBS_BreakdownProject)); + bp.ProjectId = this.CurrUser.LoginProjectId; + bp.BreakdownCode = b.BreakdownCode; + bp.BreakdownName = b.BreakdownName; + bp.DivisionProjectId = (from x in Funs.DB.WBS_DivisionProject where x.OldDivisionId == b.DivisionId && x.UnitWorkId == newUnitWork.UnitWorkId select x.DivisionProjectId).FirstOrDefault(); + bp.Basis = b.Basis; + bp.CheckPoints = b.CheckPoints; + bp.RecordAndCode = b.RecordAndCode; + bp.Class = b.Class; + bp.SortIndex = b.SortIndex; + bp.Remark = b.Remark; + bp.ModelURL = b.ModelURL; + bp.UnitWorkId = newUnitWork.UnitWorkId; + bp.IsAcceptance = b.IsAcceptance; + bp.IsYellow = b.IsYellow; + bp.WuHuan = b.WuHuan; + bp.JianLi = b.JianLi; + bp.FenBao = b.FenBao; + bp.YeZhu = b.YeZhu; + bp.SourceBreakdownId = b.BreakdownId; + + BLL.BreakdownProjectService.AddBreakdownProject(bp); + } + #endregion + #region 拷贝资料库内容 + Model.DataBase_DataTypeProject dataTypeProject = BLL.DataTypeProjectService.GetDataTypeProjectBySourceDataTypeId(Const.DataTypeNewConstructId, this.CurrUser.LoginProjectId); + List childDataTypes = BLL.DataTypeService.GetDataTypesBySuperDataTypeId(Const.DataTypeNewConstructId); + if (childDataTypes.Count > 0) + { + if (dataTypeProject != null) + { + InsertDataTypeDetail(childDataTypes, dataTypeProject.DataTypeProjectId, this.CurrUser.LoginProjectId, newUnitWork.UnitWorkId); + } + } + #endregion } } - //string projectId = string.Empty; - //string superUnitWorkId = string.Empty; - //Model.WBS_UnitWork unitWork = new Model.WBS_UnitWork(); - //Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(superId); - //Model.WBS_UnitWork parUnitWork = BLL.UnitWorkService.getUnitWorkByUnitWorkId(superId); - //if (project != null) - //{ - // projectId = project.ProjectId; - // superUnitWorkId = "0"; - // unitWork.UnitWorkCode = txtSupUnitWorkCode.Text.Trim(); - // unitWork.UnitWorkName = txtSupUnitWorkName.Text.Trim(); - // unitWork.SuperUnitWork = superUnitWorkId; - //} - //else if (parUnitWork != null) - //{ - // projectId = parUnitWork.ProjectId; - // superUnitWorkId = superId; - // unitWork.UnitWorkCode = txtUnitWorkCode.Text.Trim(); - // unitWork.UnitWorkName = txtUnitWorkName.Text.Trim(); - // unitWork.SuperUnitWork = superUnitWorkId; - //} - //unitWork.ProjectId = projectId; - //if (string.IsNullOrEmpty(id)) - //{ - // unitWork.UnitWorkId = SQLHelper.GetNewID(typeof(Model.WBS_UnitWork)); - // BLL.UnitWorkService.AddUnitWork(unitWork); - // BLL.LogService.AddSys_Log(this.CurrUser, unitWork.UnitWorkId, unitWork.UnitWorkId, BLL.Const.UnitWorkMenuId, "增加单位工程!"); - // PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(unitWork.UnitWorkId) + ActiveWindow.GetHidePostBackReference()); - //} - //else - //{ - // Model.WBS_UnitWork unitWork1 = BLL.UnitWorkService.getUnitWorkByUnitWorkId(id); - // unitWork.UnitWorkId = id; - // unitWork.ProjectId = unitWork1.ProjectId; - // unitWork.SuperUnitWork = unitWork1.SuperUnitWork; - // BLL.UnitWorkService.UpdateUnitWork(unitWork); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } - // BLL.LogService.AddSys_Log(this.CurrUser, unitWork.UnitWorkId, unitWork.UnitWorkId, BLL.Const.UnitWorkMenuId, "修改单位工程!"); - // PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); - //} + /// + /// 循环拷贝子级分部 + /// + /// + private void InsertDivisionDetail(List divisions, string superDivisionId, string unitWorkId) + { + foreach (var d in divisions) + { + Model.WBS_DivisionProject newDivisionProject = new Model.WBS_DivisionProject(); + newDivisionProject.DivisionProjectId = SQLHelper.GetNewID(typeof(Model.WBS_DivisionProject)); + newDivisionProject.ProjectId = this.CurrUser.LoginProjectId; + newDivisionProject.DivisionCode = d.DivisionCode; + newDivisionProject.DivisionName = d.DivisionName; + newDivisionProject.SortIndex = d.SortIndex; + newDivisionProject.SuperDivisionId = superDivisionId; + newDivisionProject.CNProfessionalId = d.CNProfessionalId; + newDivisionProject.UnitWorkId = unitWorkId; + newDivisionProject.OldDivisionId = d.DivisionId; + newDivisionProject.SubItemType = d.SubItemType; + BLL.DivisionProjectService.AddDivisionProject(newDivisionProject); //子级分部 + List divisions2 = (from x in Funs.DB.WBS_Division where x.SuperDivisionId == d.DivisionId select x).ToList(); + if (divisions2.Count() > 0) + { + this.InsertDivisionDetail(divisions2, newDivisionProject.DivisionProjectId, unitWorkId); + } + } + } + + /// + /// 循环拷贝子级类别 + /// + /// + private void InsertDataTypeDetail(List dataTypes, string superDataTypeId, string projectId, string unitWorkId) + { + foreach (var d in dataTypes) + { + + Model.DataBase_DataTypeProject newDataTypeProject = new Model.DataBase_DataTypeProject(); + newDataTypeProject.DataTypeProjectId = SQLHelper.GetNewID(typeof(Model.DataBase_DataTypeProject)); + newDataTypeProject.ProjectId = projectId; + newDataTypeProject.DataTypeCode = d.DataTypeCode; + newDataTypeProject.DataTypeName = d.DataTypeName; + newDataTypeProject.SuperDataTypeId = superDataTypeId; + newDataTypeProject.SortIndex = d.SortIndex; + newDataTypeProject.Pages = d.Pages; + newDataTypeProject.Remark = d.Remark; + newDataTypeProject.IsRelatedWBS = d.IsRelatedWBS; + newDataTypeProject.SourceDataTypeId = d.DataTypeId; + + newDataTypeProject.UnitWorkId = unitWorkId; + + BLL.DataTypeProjectService.AddDataTypeProject(newDataTypeProject); + + List childDataTypes = BLL.DataTypeService.GetDataTypesBySuperDataTypeId(d.DataTypeId); + if (childDataTypes.Count > 0) + { + InsertDataTypeDetail(childDataTypes, newDataTypeProject.DataTypeProjectId, projectId, unitWorkId); + } + + } } } } \ No newline at end of file