using BLL; using System; using System.Linq; namespace FineUIPro.Web.JDGL.WBS { public partial class WBSSetCopy : PageBase { #region 加载 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { LoadData(); string id = Request.Params["Id"]; string type = Request.Params["Type"]; if (type == "childUnitProject") { Model.Wbs_UnitProject unitProject = BLL.UnitProjectService.GetUnitProjectByUnitProjectId(id); if (unitProject != null) { txtCode.Text = unitProject.UnitProjectCode; if (unitProject.StartDate != null) { txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", unitProject.StartDate); txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", unitProject.EndDate); } txtRemark.Text = unitProject.Remark; } } else if (type == "wbsSet") { Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(id); if (wbsSet != null) { txtCode.Text = wbsSet.WbsSetCode; if (wbsSet.StartDate != null) { txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", wbsSet.StartDate); txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", wbsSet.EndDate); } txtRemark.Text = wbsSet.Remark; } } } } private void LoadData() { btnClose.OnClientClick = ActiveWindow.GetHideReference(); } #endregion #region 获取新编号 /// /// 获取新编号 /// /// /// /// private string GetNewCode(string code, int i) { string newCode = string.Empty; int codeLast = Convert.ToInt32(code.Substring(code.Length - 1, 1)); if (codeLast == 1) { newCode = code.Substring(0, code.Length - 1) + ((i + 2) < 10 ? (i + 2) : 0); } else { newCode = code.Substring(0, code.Length - 1) + ((codeLast + 1) < 10 ? (codeLast + 1) : 0); } return newCode; } #endregion #region 保存 /// /// 保存按钮 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { string updateId = string.Empty; string id = Request.Params["Id"]; string type = Request.Params["Type"]; if (type == "childUnitProject") { Model.Wbs_UnitProject childUnitProject = BLL.UnitProjectService.GetUnitProjectByUnitProjectId(id); childUnitProject.IsSelected = true; childUnitProject.IsApprove = true; BLL.UnitProjectService.UpdateUnitProject(childUnitProject); var noShowWbsSet1s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 1 && x.UnitProjectId == childUnitProject.UnitProjectId && x.NoShow == true orderby x.WbsSetCode select x; if (noShowWbsSet1s.Count() == 0) //首次拷贝 { noShowWbsSet1s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 1 && x.UnitProjectId == childUnitProject.UnitProjectId orderby x.WbsSetCode select x; foreach (var noShowWbsSet1 in noShowWbsSet1s) { noShowWbsSet1.NoShow = true; BLL.WbsSetService.UpdateWbsSet(noShowWbsSet1); } Model.Wbs_WbsSet newWbsSet1 = new Model.Wbs_WbsSet(); newWbsSet1.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); updateId = newWbsSet1.WbsSetId; newWbsSet1.WbsSetCode = this.txtCode.Text.Trim(); newWbsSet1.WbsSetName = this.txtName.Text.Trim(); newWbsSet1.CnProfessionId = childUnitProject.CnProfessionId; newWbsSet1.UnitProjectId = childUnitProject.UnitProjectId; newWbsSet1.InstallationId = childUnitProject.InstallationId; newWbsSet1.SuperWbsSetId = null; newWbsSet1.ProjectId = childUnitProject.ProjectId; newWbsSet1.StartDate = Convert.ToDateTime(txtStartDate.Text.Trim()); newWbsSet1.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim()); if (!string.IsNullOrEmpty(txtSortIndex.Text.Trim())) { newWbsSet1.SortIndex = Convert.ToInt32(this.txtSortIndex.Text.Trim()); } newWbsSet1.Flag = 1; newWbsSet1.Remark = this.txtRemark.Text.Trim(); newWbsSet1.IsIn = false; newWbsSet1.IsSelected = true; newWbsSet1.IsApprove = true; BLL.WbsSetService.AddWbsSet(newWbsSet1); noShowWbsSet1s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 1 && x.UnitProjectId == childUnitProject.UnitProjectId && x.NoShow == true orderby x.WbsSetCode select x; foreach (var noShowWbsSet1 in noShowWbsSet1s) { Model.Wbs_WbsSet newWbsSet2 = new Model.Wbs_WbsSet(); newWbsSet2.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); newWbsSet2.WbsSetCode = GetReplaceCode(noShowWbsSet1.WbsSetCode, childUnitProject.UnitProjectCode); newWbsSet2.WbsSetName = noShowWbsSet1.WbsSetName; newWbsSet2.CnProfessionId = noShowWbsSet1.CnProfessionId; newWbsSet2.UnitProjectId = childUnitProject.UnitProjectId; newWbsSet2.InstallationId = noShowWbsSet1.InstallationId; newWbsSet2.SuperWbsSetId = newWbsSet1.WbsSetId; newWbsSet2.Weights = noShowWbsSet1.Weights; newWbsSet2.ProjectId = noShowWbsSet1.ProjectId; newWbsSet2.StartDate = noShowWbsSet1.StartDate; newWbsSet2.EndDate = noShowWbsSet1.EndDate; newWbsSet1.SortIndex = noShowWbsSet1.SortIndex; newWbsSet2.Flag = 2; newWbsSet2.Remark = noShowWbsSet1.Remark; newWbsSet2.IsIn = false; newWbsSet2.IsSelected = true; newWbsSet2.IsApprove = true; BLL.WbsSetService.AddWbsSet(newWbsSet2); } } else //后续拷贝 { Model.Wbs_WbsSet newWbsSet1 = new Model.Wbs_WbsSet(); newWbsSet1.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); updateId = newWbsSet1.WbsSetId; newWbsSet1.WbsSetCode = this.txtCode.Text.Trim(); newWbsSet1.WbsSetName = this.txtName.Text.Trim(); newWbsSet1.CnProfessionId = childUnitProject.CnProfessionId; newWbsSet1.UnitProjectId = childUnitProject.UnitProjectId; newWbsSet1.InstallationId = childUnitProject.InstallationId; newWbsSet1.SuperWbsSetId = null; newWbsSet1.ProjectId = childUnitProject.ProjectId; newWbsSet1.StartDate = Convert.ToDateTime(txtStartDate.Text.Trim()); newWbsSet1.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim()); if (!string.IsNullOrEmpty(txtSortIndex.Text.Trim())) { newWbsSet1.SortIndex = Convert.ToInt32(this.txtSortIndex.Text.Trim()); } newWbsSet1.Flag = 1; newWbsSet1.Remark = this.txtRemark.Text.Trim(); newWbsSet1.IsIn = false; newWbsSet1.IsSelected = true; newWbsSet1.IsApprove = true; BLL.WbsSetService.AddWbsSet(newWbsSet1); foreach (var noShowWbsSet1 in noShowWbsSet1s) { Model.Wbs_WbsSet newWbsSet2 = new Model.Wbs_WbsSet(); newWbsSet2.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); newWbsSet2.WbsSetCode = GetReplaceCode(noShowWbsSet1.WbsSetCode, childUnitProject.UnitProjectCode); newWbsSet2.WbsSetName = noShowWbsSet1.WbsSetName; newWbsSet2.CnProfessionId = noShowWbsSet1.CnProfessionId; newWbsSet2.UnitProjectId = childUnitProject.UnitProjectId; newWbsSet2.InstallationId = noShowWbsSet1.InstallationId; newWbsSet2.SuperWbsSetId = newWbsSet1.WbsSetId; newWbsSet2.ProjectId = noShowWbsSet1.ProjectId; newWbsSet2.Weights = noShowWbsSet1.Weights; newWbsSet2.StartDate = noShowWbsSet1.StartDate; newWbsSet2.EndDate = noShowWbsSet1.EndDate; newWbsSet2.SortIndex = noShowWbsSet1.SortIndex; newWbsSet2.Flag = 2; newWbsSet2.Remark = noShowWbsSet1.Remark; newWbsSet2.IsIn = false; newWbsSet2.IsSelected = true; newWbsSet2.IsApprove = true; BLL.WbsSetService.AddWbsSet(newWbsSet2); } } } else if (type == "wbsSet") { Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(id); wbsSet.IsSelected = true; wbsSet.IsApprove = true; BLL.WbsSetService.UpdateWbsSet(wbsSet); var noShowWbsSets = from x in Funs.DB.Wbs_WbsSet where x.SuperWbsSetId == id && x.NoShow == true orderby x.WbsSetCode select x; if (noShowWbsSets.Count() == 0) //首次拷贝 { noShowWbsSets = from x in Funs.DB.Wbs_WbsSet where x.SuperWbsSetId == id orderby x.WbsSetCode select x; foreach (var noShowWbsSet in noShowWbsSets) { noShowWbsSet.NoShow = true; BLL.WbsSetService.UpdateWbsSet(noShowWbsSet); } Model.Wbs_WbsSet newWbsSet1 = new Model.Wbs_WbsSet(); newWbsSet1.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); updateId = newWbsSet1.WbsSetId; newWbsSet1.WbsSetCode = this.txtCode.Text.Trim(); newWbsSet1.WbsSetName = this.txtName.Text.Trim(); newWbsSet1.CnProfessionId = wbsSet.CnProfessionId; newWbsSet1.UnitProjectId = wbsSet.UnitProjectId; newWbsSet1.InstallationId = wbsSet.InstallationId; newWbsSet1.SuperWbsSetId = id; newWbsSet1.ProjectId = wbsSet.ProjectId; newWbsSet1.StartDate = Convert.ToDateTime(txtStartDate.Text.Trim()); newWbsSet1.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim()); if (!string.IsNullOrEmpty(txtSortIndex.Text.Trim())) { newWbsSet1.SortIndex = Convert.ToInt32(this.txtSortIndex.Text.Trim()); } newWbsSet1.Flag = wbsSet.Flag + 1; newWbsSet1.Remark = this.txtRemark.Text.Trim(); newWbsSet1.IsIn = false; newWbsSet1.IsSelected = true; newWbsSet1.IsApprove = true; BLL.WbsSetService.AddWbsSet(newWbsSet1); noShowWbsSets = from x in Funs.DB.Wbs_WbsSet where x.SuperWbsSetId == id && x.NoShow == true orderby x.WbsSetCode select x; foreach (var noShowWbsSet1 in noShowWbsSets) { Model.Wbs_WbsSet newWbsSet2 = new Model.Wbs_WbsSet(); newWbsSet2.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); newWbsSet2.WbsSetCode = GetReplaceCode(noShowWbsSet1.WbsSetCode, wbsSet.WbsSetCode); newWbsSet2.WbsSetName = noShowWbsSet1.WbsSetName; newWbsSet2.CnProfessionId = noShowWbsSet1.CnProfessionId; newWbsSet2.UnitProjectId = noShowWbsSet1.UnitProjectId; newWbsSet2.InstallationId = noShowWbsSet1.InstallationId; newWbsSet2.SuperWbsSetId = newWbsSet1.WbsSetId; newWbsSet2.ProjectId = noShowWbsSet1.ProjectId; newWbsSet2.Weights = noShowWbsSet1.Weights; newWbsSet2.StartDate = noShowWbsSet1.StartDate; newWbsSet2.EndDate = noShowWbsSet1.EndDate; newWbsSet2.SortIndex = noShowWbsSet1.SortIndex; newWbsSet2.Flag = newWbsSet1.Flag + 1; newWbsSet2.Remark = noShowWbsSet1.Remark; newWbsSet2.IsIn = false; newWbsSet2.IsSelected = true; newWbsSet2.IsApprove = true; BLL.WbsSetService.AddWbsSet(newWbsSet2); } } else //后续拷贝 { Model.Wbs_WbsSet newWbsSet1 = new Model.Wbs_WbsSet(); newWbsSet1.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); updateId = newWbsSet1.WbsSetId; newWbsSet1.WbsSetCode = this.txtCode.Text.Trim(); newWbsSet1.WbsSetName = this.txtName.Text.Trim(); newWbsSet1.CnProfessionId = wbsSet.CnProfessionId; newWbsSet1.UnitProjectId = wbsSet.UnitProjectId; newWbsSet1.InstallationId = wbsSet.InstallationId; newWbsSet1.SuperWbsSetId = id; newWbsSet1.ProjectId = wbsSet.ProjectId; newWbsSet1.StartDate = Convert.ToDateTime(txtStartDate.Text.Trim()); newWbsSet1.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim()); if (!string.IsNullOrEmpty(txtSortIndex.Text.Trim())) { newWbsSet1.SortIndex = Convert.ToInt32(this.txtSortIndex.Text.Trim()); } newWbsSet1.Flag = wbsSet.Flag + 1; newWbsSet1.Remark = this.txtRemark.Text.Trim(); newWbsSet1.IsIn = false; newWbsSet1.IsSelected = true; newWbsSet1.IsApprove = true; BLL.WbsSetService.AddWbsSet(newWbsSet1); foreach (var noShowWbsSet1 in noShowWbsSets) { Model.Wbs_WbsSet newWbsSet2 = new Model.Wbs_WbsSet(); newWbsSet2.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); newWbsSet2.WbsSetCode = GetReplaceCode(noShowWbsSet1.WbsSetCode, wbsSet.WbsSetCode); newWbsSet2.WbsSetName = noShowWbsSet1.WbsSetName; newWbsSet2.CnProfessionId = noShowWbsSet1.CnProfessionId; newWbsSet2.UnitProjectId = noShowWbsSet1.UnitProjectId; newWbsSet2.InstallationId = noShowWbsSet1.InstallationId; newWbsSet2.SuperWbsSetId = newWbsSet1.WbsSetId; newWbsSet2.ProjectId = noShowWbsSet1.ProjectId; newWbsSet2.Weights = noShowWbsSet1.Weights; newWbsSet2.StartDate = noShowWbsSet1.StartDate; newWbsSet2.EndDate = noShowWbsSet1.EndDate; newWbsSet2.SortIndex = noShowWbsSet1.SortIndex; newWbsSet2.Flag = newWbsSet1.Flag + 1; newWbsSet2.Remark = noShowWbsSet1.Remark; newWbsSet2.IsIn = false; newWbsSet2.IsSelected = true; newWbsSet2.IsApprove = true; BLL.WbsSetService.AddWbsSet(newWbsSet2); } } } //BLL.Sys_LogService.AddLog(BLL.Const.System_1, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "拷贝单位、分部、分项工程"); PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(updateId) + ActiveWindow.GetHidePostBackReference()); } #endregion #region 循环拷贝分部子级 /// /// 循环拷贝分部子级 /// /// /// /// /// private void AddWbsSets(string newSuperWbsSetId, string oldSuperWbsSetId, string code, string unitProjectId) { var childWbsSets = BLL.WbsSetService.GetWbsSetsBySuperWbsSetId(oldSuperWbsSetId); foreach (var wbsSet in childWbsSets) { Model.Wbs_WbsSet newWbsSet = new Model.Wbs_WbsSet(); newWbsSet.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); newWbsSet.WbsSetCode = GetReplaceCode(wbsSet.WbsSetCode, code); newWbsSet.WbsSetName = wbsSet.WbsSetName; newWbsSet.CnProfessionId = wbsSet.CnProfessionId; newWbsSet.UnitProjectId = unitProjectId; newWbsSet.SuperWbsSetId = newSuperWbsSetId; newWbsSet.ProjectId = wbsSet.ProjectId; newWbsSet.StartDate = wbsSet.StartDate; newWbsSet.EndDate = wbsSet.EndDate; newWbsSet.SortIndex = wbsSet.SortIndex; newWbsSet.ControlPoint = wbsSet.ControlPoint; newWbsSet.Cycle = wbsSet.Cycle; newWbsSet.Frequency = wbsSet.Frequency; newWbsSet.Flag = wbsSet.Flag; newWbsSet.Way = wbsSet.Way; newWbsSet.Remark = wbsSet.Remark; newWbsSet.IsIn = false; if (string.IsNullOrEmpty(Request.Params["HandleType"])) { newWbsSet.IsSelected = true; } else { newWbsSet.IsApprove = true; } BLL.WbsSetService.AddWbsSet(newWbsSet); this.AddWbsSets(newWbsSet.WbsSetId, wbsSet.WbsSetId, code, unitProjectId); } } #endregion #region 获取编号 private string GetReplaceCode(string oldStr, string replaceCode) { if (oldStr.IndexOf(replaceCode) > -1) { oldStr = oldStr.Remove(oldStr.IndexOf(replaceCode), replaceCode.Length).Insert(oldStr.IndexOf(replaceCode), this.txtCode.Text.Trim()); } return oldStr; } #endregion } }