diff --git a/SGGL/BLL/JDGL/WBS/WbsSetService.cs b/SGGL/BLL/JDGL/WBS/WbsSetService.cs index 0f4bb334..ae63b9ab 100644 --- a/SGGL/BLL/JDGL/WBS/WbsSetService.cs +++ b/SGGL/BLL/JDGL/WBS/WbsSetService.cs @@ -160,6 +160,16 @@ namespace BLL return (from x in Funs.DB.Wbs_WbsSet where x.SuperWbsSetId == superWbsSetId && x.IsApprove == true orderby x.WbsSetCode select x).ToList(); } + /// + /// 根据单位Id获取集合 + /// + /// 上级Id + /// + public static List GetApproveWbsSetsByUnitProjectId(string unitProjectId) + { + return (from x in Funs.DB.Wbs_WbsSet where x.UnitProjectId == unitProjectId && x.IsApprove == true orderby x.WbsSetCode select x).ToList(); + } + /// /// 根据上级Id获取是否存在同级别的其他已勾选项 /// @@ -383,5 +393,19 @@ namespace BLL select x.WbsSetId).ToList(); return list; } + + /// + /// 根据分部Id获取分部Id + /// + /// 专业Id + /// + public static List GetWbsSetsByUnitProjectId(string unitProjectId) + { + Model.SGGLDB db = Funs.DB; + var list = (from x in db.Wbs_WbsSet + where x.UnitProjectId == unitProjectId && x.SuperWbsSetId == null + select x).ToList(); + return list; + } } } diff --git a/SGGL/FineUIPro.Web/JDGL/WBS/WBSSetAudit.aspx.cs b/SGGL/FineUIPro.Web/JDGL/WBS/WBSSetAudit.aspx.cs index 1f302d64..fb0868c8 100644 --- a/SGGL/FineUIPro.Web/JDGL/WBS/WBSSetAudit.aspx.cs +++ b/SGGL/FineUIPro.Web/JDGL/WBS/WBSSetAudit.aspx.cs @@ -181,7 +181,8 @@ namespace FineUIPro.Web.JDGL.WBS newNode.NodeID = unitProject.UnitProjectId; newNode.CommandName = "unitProject"; newNode.EnableExpandEvent = true; - newNode.EnableCheckBox = false; + newNode.EnableCheckBox = true; + newNode.EnableCheckEvent = true; if (unitProject.IsSelected == true && unitProject.IsApprove == null) { unitProject.IsApprove = true; @@ -338,6 +339,17 @@ namespace FineUIPro.Web.JDGL.WBS childWbsSet.IsSelected = e.Checked; childWbsSet.IsApprove = e.Checked; BLL.WbsSetService.UpdateWbsSet(childWbsSet); + foreach (var node2 in node.Nodes) + { + node2.Checked = e.Checked; + Model.Wbs_WbsSet childWbsSet2 = BLL.WbsSetService.GetWbsSetByWbsSetId(node2.NodeID); + if (childWbsSet2 != null) + { + childWbsSet2.IsSelected = e.Checked; + childWbsSet2.IsApprove = e.Checked; + BLL.WbsSetService.UpdateWbsSet(childWbsSet2); + } + } } } bool b = true; //是否对父级节点执行选中状态的更新操作 @@ -389,26 +401,58 @@ namespace FineUIPro.Web.JDGL.WBS } } } - } - if (b) - { - Model.Wbs_UnitProject unitProject = BLL.UnitProjectService.GetUnitProjectByUnitProjectId(wbsSet.UnitProjectId); - if (unitProject != null) + TreeNode unitProjectNode = null; + if (e.Node.ParentNode.CommandName == "unitProject") { - unitProject.IsSelected = e.Checked; - unitProject.IsApprove = e.Checked; - BLL.UnitProjectService.UpdateUnitProject(unitProject); + unitProjectNode = e.Node.ParentNode; } - Model.WBS_CnProfession cnProfession = BLL.CnProfessionService.GetCnProfessionByCnProfessionId(wbsSet.CnProfessionId); - if (cnProfession != null) + else if (e.Node.ParentNode.ParentNode.CommandName == "unitProject") { - cnProfession.IsSelected = e.Checked; - cnProfession.IsApprove = e.Checked; - BLL.CnProfessionService.UpdateCnProfession(cnProfession); + unitProjectNode = e.Node.ParentNode.ParentNode; + } + else if (e.Node.ParentNode.ParentNode.ParentNode.CommandName == "unitProject") + { + unitProjectNode = e.Node.ParentNode.ParentNode.ParentNode; + } + //选择否时,对单位工程节点选中状态的判断 + List approveWbsSets = BLL.WbsSetService.GetApproveWbsSetsByUnitProjectId(wbsSet.UnitProjectId); + if (e.Checked == true || (e.Checked == false && approveWbsSets.Count == 0)) + { + unitProjectNode.Checked = e.Checked; + Model.Wbs_UnitProject unitProject = BLL.UnitProjectService.GetUnitProjectByUnitProjectId(wbsSet.UnitProjectId); + if (unitProject != null) + { + unitProject.IsSelected = e.Checked; + unitProject.IsApprove = e.Checked; + BLL.UnitProjectService.UpdateUnitProject(unitProject); + } + Model.WBS_CnProfession cnProfession = BLL.CnProfessionService.GetCnProfessionByCnProfessionId(wbsSet.CnProfessionId); + if (cnProfession != null) + { + cnProfession.IsSelected = e.Checked; + cnProfession.IsApprove = e.Checked; + BLL.CnProfessionService.UpdateCnProfession(cnProfession); + } } } } - + else + { + Model.Wbs_UnitProject unitProject = BLL.UnitProjectService.GetUnitProjectByUnitProjectId(e.NodeID); + if (unitProject != null) + { + unitProject.IsSelected = e.Checked; + unitProject.IsApprove = e.Checked; + BLL.UnitProjectService.UpdateUnitProject(unitProject); + } + Model.WBS_CnProfession cnProfession = BLL.CnProfessionService.GetCnProfessionByCnProfessionId(unitProject.CnProfessionId); + if (cnProfession != null) + { + cnProfession.IsSelected = e.Checked; + cnProfession.IsApprove = e.Checked; + BLL.CnProfessionService.UpdateCnProfession(cnProfession); + } + } //if (e.Checked) //{ // CheckAllParentNodes(e.Node);