428 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			428 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			C#
		
	
	
	
| using BLL;
 | |
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Data;
 | |
| using System.Data.SqlClient;
 | |
| using System.Linq;
 | |
| using System.Web.UI.WebControls;
 | |
| 
 | |
| namespace FineUIPro.Web.HSSE.Technique
 | |
| {
 | |
|     public partial class CheckItemSet : PageBase
 | |
|     {
 | |
|         protected void Page_Load(object sender, EventArgs e)
 | |
|         {
 | |
|             if (!IsPostBack)
 | |
|             {
 | |
|                 Funs.DropDownPageSize(this.ddlPageSize);
 | |
|                 GetButtonPower();  //获取按钮权限
 | |
|                 ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
 | |
|                 this.ckType.SelectedValue = "1";
 | |
|                 CheckItemSetDataBind();//加载树
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void BindGrid()
 | |
|         {
 | |
|             this.Grid1.DataSource = null;
 | |
|             this.Grid1.DataBind();
 | |
|             string strSql = @"SELECT CheckItemDetailId,CheckItemSetId,CheckContent,SortIndex,IsBuiltIn
 | |
|                                       FROM dbo.Technique_CheckItemDetail
 | |
|                                     where CheckItemSetId=@CheckItemSetId";
 | |
|             SqlParameter[] parameter = new SqlParameter[]       
 | |
|                     {
 | |
|                         new SqlParameter("@CheckItemSetId",this.tvCheckItemSet.SelectedNodeID)
 | |
|                     };
 | |
| 
 | |
|             DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
 | |
|             Grid1.RecordCount = tb.Rows.Count;
 | |
|             var table = this.GetPagedDataTable(Grid1, tb);
 | |
| 
 | |
|             Grid1.DataSource = table;
 | |
|             Grid1.DataBind();
 | |
|         }
 | |
| 
 | |
|         #region 绑定树节点
 | |
|         /// <summary>
 | |
|         /// 绑定树节点
 | |
|         /// </summary>
 | |
|         private void CheckItemSetDataBind()
 | |
|         {
 | |
|             this.tvCheckItemSet.Nodes.Clear();
 | |
|             this.tvCheckItemSet.SelectedNodeID = string.Empty;
 | |
|             TreeNode rootNode = new TreeNode
 | |
|             {
 | |
|                 Text = "检查项",
 | |
|                 Expanded = true,
 | |
|                 NodeID = "0"
 | |
|             };//定义根节点
 | |
| 
 | |
|             this.tvCheckItemSet.Nodes.Add(rootNode);
 | |
|             this.GetNodes(rootNode.Nodes, null);
 | |
|         }
 | |
| 
 | |
|         #region  遍历节点方法
 | |
|         /// <summary>
 | |
|         /// 遍历节点方法
 | |
|         /// </summary>
 | |
|         /// <param name="nodes">节点集合</param>
 | |
|         /// <param name="parentId">父节点</param>
 | |
|         private void GetNodes(TreeNodeCollection nodes, string parentId)
 | |
|         {
 | |
|             List<Model.Technique_CheckItemSet> checkItemSet = null;
 | |
|             if (parentId == null)
 | |
|             {
 | |
|                 checkItemSet = (from x in Funs.DB.Technique_CheckItemSet where x.SupCheckItem == "0" && x.CheckType == this.ckType.SelectedValue orderby x.SortIndex select x).ToList();
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 checkItemSet = (from x in Funs.DB.Technique_CheckItemSet where x.SupCheckItem == parentId && x.CheckType == this.ckType.SelectedValue orderby x.SortIndex select x).ToList();
 | |
|             }
 | |
| 
 | |
|             foreach (var q in checkItemSet)
 | |
|             {
 | |
|                 var isEnd = BLL.Technique_CheckItemSetService.IsEndLevel(q.CheckItemSetId);
 | |
|                 TreeNode newNode = new TreeNode
 | |
|                 {
 | |
|                     Text = q.CheckItemName,
 | |
|                     NodeID = q.CheckItemSetId
 | |
|                 };
 | |
|                 if (isEnd)
 | |
|                 {
 | |
|                     newNode.EnableClickEvent = true;
 | |
|                 }
 | |
|                 nodes.Add(newNode);
 | |
|             }
 | |
| 
 | |
|             for (int i = 0; i < nodes.Count; i++)
 | |
|             {
 | |
|                 GetNodes(nodes[i].Nodes, nodes[i].NodeID);
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
|         #endregion
 | |
| 
 | |
|         #region 点击TreeView
 | |
|         /// <summary>
 | |
|         /// 点击TreeView
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void tvCheckItemSet_NodeCommand(object sender, TreeCommandEventArgs e)
 | |
|         {
 | |
|             if (this.tvCheckItemSet.SelectedNodeID != "0" && this.tvCheckItemSet.SelectedNode != null)
 | |
|             {
 | |
|                 this.Grid1.DataSource = null;
 | |
|                 this.Grid1.DataBind();
 | |
|                 BindGrid();
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 页索引改变事件
 | |
|         /// <summary>
 | |
|         /// 页索引改变事件
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
 | |
|         {
 | |
|             Grid1.PageIndex = e.NewPageIndex;
 | |
|             BindGrid();
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 排序
 | |
|         /// <summary>
 | |
|         /// 排序
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void Grid1_Sort(object sender, GridSortEventArgs e)
 | |
|         {
 | |
|             Grid1.SortDirection = e.SortDirection;
 | |
|             Grid1.SortField = e.SortField;
 | |
|             BindGrid();
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 分页选择下拉改变事件
 | |
|         /// <summary>
 | |
|         /// 分页选择下拉改变事件
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
 | |
|             BindGrid();
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 右键增加、修改、删除检查项方法
 | |
|         /// <summary>
 | |
|         /// 增加
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void btnMenuNew_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (this.tvCheckItemSet.SelectedNode != null)
 | |
|             {
 | |
|                 var q = BLL.Technique_CheckItemSetService.GetCheckItemSetById(this.tvCheckItemSet.SelectedNodeID);
 | |
|                 if (q == null)
 | |
|                 {
 | |
|                     PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("CheckItemEdit.aspx?supCheckItem=0&checkType={0}", this.ckType.SelectedValue, "新建 - ")));
 | |
|                 }
 | |
|                 else if (q.IsEndLever != true)
 | |
|                 {
 | |
|                     PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("CheckItemEdit.aspx?supCheckItem={0}&checkType={1}", q.CheckItemSetId, this.ckType.SelectedValue, "新建 - ")));
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     Alert.ShowInTop("选择的项已是末级!", MessageBoxIcon.Warning);
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 右键修改事件
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void btnMenuModify_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (this.tvCheckItemSet.SelectedNode != null && this.tvCheckItemSet.SelectedNodeID != "0")
 | |
|             {
 | |
|                 this.hdSelectId.Text = this.tvCheckItemSet.SelectedNode.NodeID;
 | |
|                 var q = BLL.Technique_CheckItemSetService.GetCheckItemSetById(this.tvCheckItemSet.SelectedNodeID);
 | |
|                 if (q != null)
 | |
|                 {
 | |
|                     PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("CheckItemEdit.aspx?supCheckItem={0}&checkItemSetId={1}&checkType={2}", q.SupCheckItem, q.CheckItemSetId,this.ckType.SelectedValue, "编辑 - ")));
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 右键删除事件
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void btnMenuDel_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (this.tvCheckItemSet.SelectedNode != null)
 | |
|             {
 | |
|                 string checkItemSetId = this.tvCheckItemSet.SelectedNodeID;
 | |
|                 var q = BLL.Technique_CheckItemSetService.GetCheckItemSetById(checkItemSetId);
 | |
|                 if (q != null && BLL.Technique_CheckItemSetService.IsDeleteCheckItemSet(checkItemSetId))
 | |
|                 {
 | |
|                     BLL.LogService.AddSys_Log(this.CurrUser, q.MapCode, q.CheckItemSetId, BLL.Const.CheckTypeSetMenuId, BLL.Const.BtnDelete);
 | |
|                     BLL.Technique_CheckItemSetService.DeleteCheckItemSet(checkItemSetId);
 | |
|                     
 | |
|                     CheckItemSetDataBind();
 | |
|                     Alert.ShowInTop("删除成功!");
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     Alert.ShowInTop("存在下级菜单或已增加检查项明细,不允许删除!");
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 增加、修改、删除检查项明细事件
 | |
|         protected void btnNewDetail_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (tvCheckItemSet.SelectedNode != null)
 | |
|             {
 | |
|                 var checkItem = BLL.Technique_CheckItemSetService.GetCheckItemSetById(tvCheckItemSet.SelectedNodeID);
 | |
|                 if (checkItem != null && checkItem.IsEndLever == true)
 | |
|                 {
 | |
|                     PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("CheckItemDetailEdit.aspx?checkItemSetId={0}", tvCheckItemSet.SelectedNodeID, "新增 - ")));
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     Alert.ShowInTop("请选择最后一级节点添加!", MessageBoxIcon.Warning);
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 Alert.ShowInTop("请选择检查项!", MessageBoxIcon.Warning);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 编辑
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void btnMenuModifyDetail_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             EditData();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 编辑数据方法
 | |
|         /// </summary>
 | |
|         private void EditData()
 | |
|         {
 | |
|             if (Grid1.SelectedRowIndexArray.Length == 0)
 | |
|             {
 | |
|                 Alert.ShowInParent("请至少选择一条记录!");
 | |
|                 return;
 | |
|             }
 | |
|             string Id = Grid1.SelectedRowID;
 | |
|             PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("CheckItemDetailEdit.aspx?checkItemSetId={0}&checkItemDetailId={1}", tvCheckItemSet.SelectedNodeID, Id, "修改 - ")));
 | |
|         }
 | |
| 
 | |
|         protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
 | |
|         {
 | |
|             EditData();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 删除明细方法
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void btnMenuDelDetail_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (Grid1.SelectedRowIndexArray.Length > 0)
 | |
|             {
 | |
|                 foreach (int rowIndex in Grid1.SelectedRowIndexArray)
 | |
|                 {
 | |
|                     string rowID = Grid1.DataKeys[rowIndex][0].ToString();
 | |
|                     var getV = BLL.Technique_CheckItemDetailService.GetCheckItemDetailById(rowID);
 | |
|                     if (getV != null)
 | |
|                     {
 | |
|                         BLL.LogService.AddSys_Log(this.CurrUser, getV.SortIndex.ToString(), getV.CheckItemSetId, BLL.Const.TechniqueCheckItemSetMenuId, Const.BtnDelete);
 | |
|                         BLL.Technique_CheckItemDetailService.DeleteCheckItemDetail(rowID);                       
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 BindGrid();
 | |
|                 ShowNotify("删除数据成功!");
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 关闭弹出窗口
 | |
|         /// <summary>
 | |
|         /// 关闭弹出窗口
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void Window1_Close(object sender, WindowCloseEventArgs e)
 | |
|         {
 | |
|             BindGrid();
 | |
|         }
 | |
| 
 | |
|         protected void Window2_Close(object sender, WindowCloseEventArgs e)
 | |
|         {
 | |
|             CheckItemSetDataBind();
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         protected void ckType_SelectedIndexChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             this.CheckItemSetDataBind();//加载树
 | |
|             this.BindGrid();
 | |
|         }
 | |
| 
 | |
|         #region 获取权限按钮
 | |
|         /// <summary>
 | |
|         /// 获取按钮权限
 | |
|         /// </summary>
 | |
|         /// <param name="button"></param>
 | |
|         /// <returns></returns>
 | |
|         private void GetButtonPower()
 | |
|         {
 | |
|             var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.TechniqueCheckItemSetMenuId);
 | |
|             if (buttonList.Count() > 0)
 | |
|             {
 | |
|                 if (buttonList.Contains(BLL.Const.BtnAdd))
 | |
|                 {
 | |
|                     this.btnMenuNew.Hidden = false;
 | |
|                     this.btnNewDetail.Hidden = false;
 | |
|                 }
 | |
|                 if (buttonList.Contains(BLL.Const.BtnModify))
 | |
|                 {
 | |
|                     this.btnMenuModify.Hidden = false;
 | |
|                     this.btnMenuModifyDetail.Hidden = false;
 | |
|                 }
 | |
|                 if (buttonList.Contains(BLL.Const.BtnDelete))
 | |
|                 {
 | |
|                     this.btnMenuDel.Hidden = false;
 | |
|                     this.btnMenuDelDetail.Hidden = false;
 | |
|                     this.btnDelete.Hidden = false;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void btnDelete_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             string checkType = this.ckType.SelectedValue;
 | |
|             var checkItems = from x in Funs.DB.Technique_CheckItemSet where x.CheckType == checkType select x;
 | |
|             if (checkItems.Count() > 0)
 | |
|             {
 | |
|                 foreach (var item in checkItems)
 | |
|                 {
 | |
|                     BLL.LogService.AddSys_Log(this.CurrUser, item.MapCode, item.CheckItemSetId, BLL.Const.TechniqueCheckItemSetMenuId, Const.BtnDelete);
 | |
|                     DeleteCheckItemSet(item.CheckItemSetId);
 | |
|                 }
 | |
|             }
 | |
|             this.CheckItemSetDataBind();//加载树
 | |
|             this.BindGrid();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 删除检查项方法
 | |
|         /// </summary>
 | |
|         /// <param name="supCheckItem"></param>
 | |
|         private void DeleteCheckItemSet(string supCheckItem)
 | |
|         {
 | |
|             var checkItemSet = from x in Funs.DB.Technique_CheckItemSet where x.SupCheckItem == supCheckItem select x;
 | |
|             if (checkItemSet.Count() > 0)
 | |
|             {
 | |
|                 foreach (var item in checkItemSet)
 | |
|                 {
 | |
|                     DeleteCheckItemSet(item.CheckItemSetId);
 | |
|                 }
 | |
| 
 | |
|                 this.CheckItemSetDataBind();//加载树
 | |
|                 this.BindGrid();
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 var checkItemSetEnd = Funs.DB.Technique_CheckItemSet.FirstOrDefault(x => x.CheckItemSetId == supCheckItem);
 | |
|                 if (checkItemSetEnd != null)
 | |
|                 {
 | |
|                     ///删除详细项
 | |
|                     BLL.Technique_CheckItemDetailService.DeleteCheckItemDetailByCheckItemSetId(checkItemSetEnd.CheckItemSetId);
 | |
|                     ////删除检查项
 | |
|                     BLL.Technique_CheckItemSetService.DeleteCheckItemSet(checkItemSetEnd.CheckItemSetId);
 | |
|                     ////删除检查项
 | |
|                     BLL.Technique_CheckItemSetService.DeleteCheckItemSet(checkItemSetEnd.SupCheckItem);
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| } |