using BLL; using Model; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace FineUIPro.Web.CQMS.WBS.Control { public partial class DivisionSubProjectsEdit : PageBase { /// /// 上级主键 /// public string ParentId { get { return (string)ViewState["ParentId"]; } set { ViewState["ParentId"] = value; } } /// /// 主键 /// public string DivisionId { get { return (string)ViewState["DivisionId"]; } set { ViewState["DivisionId"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.DivisionId = Request.Params["DivisionId"]; this.ParentId = Request.Params["ParentId"]; //绑定数据 PageIn(); } } /// /// 绑定数据 /// /// 主键 /// 上级主键 public void PageIn() { var num = 0; if (!string.IsNullOrWhiteSpace(this.ParentId)) { var parenLs = GetAllCropping(this.ParentId); if (parenLs.Count > 0) { var itemModel = parenLs.FirstOrDefault(p => p.DivisionId == this.ParentId); if (itemModel != null) { if (itemModel.DivisionLevel == 1) { one.Hidden = false; var oneModel = parenLs.FirstOrDefault(p => p.DivisionLevel == 1); if (oneModel != null) { txtBranchEngineeringCode.Text = oneModel.BranchEngineeringCode; txtBranchEngineeringName.Text = oneModel.BranchEngineeringName; if (string.IsNullOrWhiteSpace(this.DivisionId)) { num = Funs.DB.Division_SubProjects.Count() + 1; txtSort.Text = num.ToString(); } } } else if (itemModel.DivisionLevel == 2) { one.Hidden = false; two.Hidden = false; var oneModel = parenLs.FirstOrDefault(p => p.DivisionLevel == 1); if (oneModel != null) { txtBranchEngineeringCode.Text = oneModel.BranchEngineeringCode; txtBranchEngineeringName.Text = oneModel.BranchEngineeringName; } var twoModel = parenLs.FirstOrDefault(p => p.DivisionLevel == 2); if (twoModel != null) { txtSubBranchEngineeringName.Text = twoModel.SubBranchEngineeringName; } if (string.IsNullOrWhiteSpace(this.DivisionId)) { num = Funs.DB.Division_SubProjects.Count() + 1; txtSort.Text = num.ToString(); } } } } } else { if (string.IsNullOrWhiteSpace(this.DivisionId)) { num = Funs.DB.Division_SubProjects.Count() + 1; txtSort.Text = num.ToString(); } } if (!string.IsNullOrWhiteSpace(this.DivisionId)) { var itemModel = Funs.DB.Division_SubProjects.FirstOrDefault(p => p.DivisionId == this.DivisionId); if (itemModel != null) { txtRemark.Text = itemModel.Remark; txtSort.Text = itemModel.Sort.ToString(); txtBranchEngineeringCode.Text = itemModel.BranchEngineeringCode; txtBranchEngineeringName.Text = itemModel.BranchEngineeringName; txtSubBranchEngineeringName.Text = itemModel.SubBranchEngineeringName; txtProEngineeringCode.Text = itemModel.ProEngineeringCode; txtProEngineeringName.Text = itemModel.ProEngineeringName; txtProEngineeringNum.Text = itemModel.ProEngineeringNum; txtRemark.Text = itemModel.Remark; } } } /// /// 保存 /// protected void btnSave_Click(object sender, EventArgs e) { var model = new Division_SubProjects(); model.DivisionId = Guid.NewGuid().ToString(); var oneDivisionId = string.Empty; var twoDivisionId = string.Empty; if (!string.IsNullOrWhiteSpace(this.DivisionId)) { model = Funs.DB.Division_SubProjects.FirstOrDefault(p => p.DivisionId == this.DivisionId); } else { model.Status = 1; model.ProjectId = CurrUser.LoginProjectId; } if (model == null) { ShowNotify("传递参数错误!", MessageBoxIcon.Error); return; } if (!string.IsNullOrWhiteSpace(this.ParentId)) { var parenLs = GetAllCropping(this.ParentId); if (parenLs.Count > 0) { var oneModel = parenLs.FirstOrDefault(p => p.DivisionLevel == 1); if (oneModel != null) { model.ParentId = oneModel.DivisionId; model.DivisionLevel = 2; } var twoModel = parenLs.FirstOrDefault(p => p.DivisionLevel == 2); if (twoModel != null) { model.ParentId = twoModel.DivisionId; model.DivisionLevel = 3; } } } else { model.DivisionLevel = 1; } model.AddUser = this.CurrUser.UserId; model.OperateTime = DateTime.Now; model.Sort = !string.IsNullOrEmpty(txtSort.Text) ? int.Parse(txtSort.Text) : Funs.DB.Division_SubProjects.Count() + 1; model.BranchEngineeringCode = txtBranchEngineeringCode.Text; model.BranchEngineeringName = txtBranchEngineeringName.Text; model.SubBranchEngineeringName = txtSubBranchEngineeringName.Text; model.ProEngineeringCode = txtProEngineeringCode.Text; model.ProEngineeringName = txtProEngineeringName.Text; model.ProEngineeringNum = txtProEngineeringNum.Text; model.Remark = txtRemark.Text; if (string.IsNullOrWhiteSpace(this.DivisionId)) Funs.DB.Division_SubProjects.InsertOnSubmit(model); Funs.DB.SubmitChanges(); ShowNotify("保存成功!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); } #region 私有方法 /// /// 根据主键获取所有节点 /// /// public List GetAllCropping(string parentId) { var result = new List(); var ids = new List(); var itemSubPro = Funs.DB.Division_SubProjects.FirstOrDefault(p => p.DivisionId == parentId); if (itemSubPro != null) { ids.Add(itemSubPro.DivisionId); if (itemSubPro.DivisionLevel == 2) { ids.Add(itemSubPro.ParentId); } if (itemSubPro.DivisionLevel == 3) { ids.Add(itemSubPro.ParentId); var twoSubPro = Funs.DB.Division_SubProjects.FirstOrDefault(p => p.DivisionId == itemSubPro.ParentId); if (twoSubPro != null) { ids.Add(twoSubPro.ParentId); } } result = Funs.DB.Division_SubProjects.Where(p => ids.Contains(p.DivisionId)).ToList(); } return result; } #endregion } }