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.Hazard { public partial class HazardTemplate : PageBase { #region 定义集合 public string HazardListId { get { return (string)ViewState["HazardListId"]; } set { ViewState["HazardListId"] = value; } } /// /// 工作阶段值 /// public string WorkStageIds { get { return (string)ViewState["WorkStageIds"]; } set { ViewState["WorkStageIds"] = value; } } private static List hazardSelectedItems = new List(); /// /// 定义集合 /// private static List list = new List(); #endregion #region 加载页面 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Funs.DropDownPageSize(this.ddlPageSize); list = new List(); WorkStageService.InitWorkPostDropDownList(this.drpWorkStages, true); this.HazardListId = Request.Params["HazardListId"]; this.WorkStageIds = Request.Params["WorkStageIds"]; if (!string.IsNullOrEmpty(this.WorkStageIds)) { this.drpWorkStages.SelectedValueArray = this.WorkStageIds.Split(','); } hazardSelectedItems = BLL.Hazard_HazardSelectedItemService.GetHazardSelectedItemsByHazardListId(this.HazardListId); foreach (var item in hazardSelectedItems) { if (!string.IsNullOrEmpty(item.HazardListTypeId)) { Model.Technique_HazardListType hazardListType = BLL.HazardListTypeService.GetHazardListTypeById(item.HazardListTypeId); if (hazardListType != null) { if (hazardListType.IsCompany == true) { rblIsCompany.SelectedValue = "1"; } else { rblIsCompany.SelectedValue = "0"; } } } } InitTreeMenu(); } } #endregion #region 获取编辑页面上的工作阶段保存到list集合里 /// /// 获取编辑页面上的工作阶段保存到list集合里 /// private void GetHazardSelectedItem() { hazardSelectedItems = BLL.Hazard_HazardSelectedItemService.GetHazardSelectedItemsByHazardListId(this.HazardListId); if (hazardSelectedItems.Count() > 0) { string i = string.Empty; string j = string.Empty; foreach (var item in hazardSelectedItems) { foreach (var workStagesId in this.drpWorkStages.SelectedValueArray) { if (item.WorkStage == workStagesId) { i += item.HazardId + "," + workStagesId + "|"; } } } if (!string.IsNullOrEmpty(i)) { j = i.Substring(0, i.LastIndexOf("|")); list.Add(j); } } } #endregion #region 加载树 /// /// 初始化树 /// private void InitTreeMenu() { trHazardListType.Nodes.Clear(); trHazardListType.ShowBorder = false; trHazardListType.ShowHeader = false; trHazardListType.EnableIcons = true; trHazardListType.AutoScroll = true; trHazardListType.EnableSingleClickExpand = true; TreeNode rootNode = new TreeNode { Text = "危险源清单", NodeID = "0", Expanded = true }; this.trHazardListType.Nodes.Add(rootNode); string[] workStages = this.drpWorkStages.SelectedValueArray; var works = BLL.WorkStageService.GetWorkStageList(); foreach (var item in workStages) { TreeNode newNode = new TreeNode { Text = works.FirstOrDefault(x => x.WorkStageId == item).WorkStageName, NodeID = item, CommandArgument = item }; rootNode.Nodes.Add(newNode); BoundTree(newNode, "0"); //newNode.Nodes, } } private void BoundTree(TreeNode node, string supHazardListTypeId) { var dt = GetNewHazardListType(node, supHazardListTypeId); if (dt.Count() > 0) { TreeNode tn = null; foreach (var dr in dt) { tn = new TreeNode { Text = dr.HazardListTypeName, ToolTip = dr.HazardListTypeName, NodeID = node.NodeID + "#" + dr.HazardListTypeId, CommandArgument = node.CommandArgument, EnableClickEvent = true }; node.Nodes.Add(tn); BoundTree(tn, dr.HazardListTypeId); } } } #endregion #region 得到树方法 /// /// 得到菜单方法 /// /// /// private List GetNewHazardListType(TreeNode tn, string parentId) { string nodeId = tn.NodeID; if (nodeId.Contains("#")) { nodeId = nodeId.Substring(nodeId.LastIndexOf('#') + 1); } if (parentId.Contains("#")) { parentId = parentId.Substring(parentId.LastIndexOf('#') + 1); } List hazardListType = new List(); if (this.rblIsCompany.SelectedValue == "1")//本公司危险源 { if (parentId == "0") { hazardListType = (from x in Funs.DB.Technique_HazardListType where x.IsCompany == true && x.SupHazardListTypeId == parentId && x.WorkStage.Contains(nodeId) orderby x.HazardListTypeCode select x).ToList(); if (hazardListType.Count() == 0) { hazardListType = (from x in Funs.DB.Technique_HazardListType where x.IsCompany == true && x.SupHazardListTypeId == parentId && x.WorkStage == null orderby x.HazardListTypeCode select x).ToList(); } } else { hazardListType = (from x in Funs.DB.Technique_HazardListType where x.IsCompany == true && x.SupHazardListTypeId == parentId orderby x.HazardListTypeCode select x).ToList(); } } else { if (parentId == "0") { hazardListType = (from x in Funs.DB.Technique_HazardListType where (x.IsCompany == false || x.IsCompany == null) && x.SupHazardListTypeId == parentId && x.WorkStage.Contains(nodeId) orderby x.HazardListTypeCode select x).ToList(); if (hazardListType == null) { hazardListType = (from x in Funs.DB.Technique_HazardListType where (x.IsCompany == false || x.IsCompany == null) && x.SupHazardListTypeId == parentId && x.WorkStage == null orderby x.HazardListTypeCode select x).ToList(); } } else { hazardListType = (from x in Funs.DB.Technique_HazardListType where (x.IsCompany == false || x.IsCompany == null) && x.SupHazardListTypeId == parentId orderby x.HazardListTypeCode select x).ToList(); } } return hazardListType; } #endregion #region 点击树节点 /// /// 点击树节点 /// /// /// protected void trHazardListType_NodeCommand(object sender, TreeCommandEventArgs e) { BindGrid(); } #endregion #region 绑定Grid /// /// 绑定Grid /// private void BindGrid() { string nodeId = this.trHazardListType.SelectedNode.NodeID; if (!string.IsNullOrEmpty(nodeId) && nodeId.Contains("#")) { nodeId = nodeId.Substring(nodeId.LastIndexOf('#') + 1); } string strSql = @"SELECT H.HazardId,T.HazardListTypeId,T.HazardListTypeCode,T.HazardListTypeName,H.HazardCode,H.HazardItems,H.DefectsType," + @" H.MayLeadAccidents,H.HelperMethod,H.HazardJudge_L,H.HazardJudge_E,H.HazardJudge_C,H.HazardJudge_D,RiskLevel.RiskLevelName AS HazardLevel," + @" H.ControlMeasures,H.CompileMan,H.CompileDate,H.AuditMan,H.AuditDate,H.IsPass,U.UserName AS CompileManName,UR.UserName AS AuditManName" + @" FROM Technique_HazardList AS H" + @" LEFT JOIN Technique_HazardListType AS T ON T.HazardListTypeId = H.HazardListTypeId" + @" LEFT JOIN Sys_User AS U ON U.UserId = H.CompileMan" + @" LEFT JOIN Sys_User AS UR ON UR.UserId = H.AuditMan" + @" LEFT JOIN Base_RiskLevel AS RiskLevel ON RiskLevel.RiskLevelId = H.HazardLevel " + @" WHERE T.HazardListTypeId = @HazardListTypeId "; List listStr = new List { new SqlParameter("@HazardListTypeId", nodeId), }; SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); if (list.Count() > 0) { for (int i = 0; i < Grid1.Rows.Count; i++) { string id = Grid1.DataKeys[i][0].ToString(); if (list.Contains(id)) { //CheckBoxField checkField = (CheckBoxField)Grid1.FindColumn("ckbIsSelected"); //checkField.SetCheckedState(i, true); Grid1.Rows[i].Values[0] = true; } } } } #endregion #region 表分页、排序 /// /// 页索引改变事件 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { Grid1.PageIndex = e.NewPageIndex; BindGrid(); } /// /// Grid排序 /// /// /// protected void Grid1_Sort(object sender, GridSortEventArgs e) { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; BindGrid(); } /// /// 分页下拉选择事件 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } #endregion #region Grid行双击事件 /// /// 双击行事件 /// /// /// protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) { this.EditData(); } #endregion #region 增加明细 /// /// 增加危险源清单事件 /// /// /// protected void btnNewDetail_Click(object sender, EventArgs e) { if (this.trHazardListType.SelectedNode != null) { if (this.trHazardListType.SelectedNode.Nodes.Count == 0) { PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("../Technique/HazardListEdit.aspx?HazardListTypeId={0}", this.trHazardListType.SelectedNode.NodeID, "编辑 - "))); } else { ShowNotify("请选择末级节点!", MessageBoxIcon.Warning); } } else { ShowNotify("请选择树节点!", MessageBoxIcon.Warning); } } #endregion #region Grid行点击事件 /// /// Grid1行点击事件 /// /// /// protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { GetHazardSelectedItem(); string rowID = Grid1.DataKeys[e.RowIndex][0].ToString() + "," + this.trHazardListType.SelectedNode.CommandArgument; if (e.CommandName == "IsSelected") { CheckBoxField checkField = (CheckBoxField)Grid1.FindColumn("ckbIsSelected"); if (checkField.GetCheckedState(e.RowIndex)) { if (!list.Contains(rowID)) { list.Add(rowID); } } else { if (list.Contains(rowID)) { list.Remove(rowID); } } } } #endregion #region 编辑明细 /// /// 编辑危险源 /// /// /// protected void btnEditDetail_Click(object sender, EventArgs e) { this.EditData(); } /// /// 右键编辑事件 /// /// /// protected void btnMenuEdit_Click(object sender, EventArgs e) { this.EditData(); } /// /// 编辑数据方法 /// private void EditData() { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); return; } string hazardId = Grid1.SelectedRowID; PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("../Technique/HazardListEdit.aspx?HazardId={0}", hazardId, "编辑 - "))); } #endregion #region 删除明细 /// /// 删除危险源 /// /// /// protected void btnDeleteDetail_Click(object sender, EventArgs e) { this.DeleteData(); } /// /// 右键删除事件 /// /// /// protected void btnMenuDelete_Click(object sender, EventArgs e) { this.DeleteData(); } /// /// 删除方法 /// private void DeleteData() { if (Grid1.SelectedRowIndexArray.Length > 0) { foreach (int rowIndex in Grid1.SelectedRowIndexArray) { string rowID = Grid1.DataKeys[rowIndex][0].ToString(); var getD= BLL.HazardListService.GetHazardListById(rowID); if (getD != null) { if (BLL.Hazard_HazardSelectedItemService.GetHazardSelectedItemByHazardId(rowID) != null) { Alert.ShowInTop("在项目级危险源评价清单中已使用该资源,无法删除!", MessageBoxIcon.Warning); return; } BLL.LogService.AddSys_Log(this.CurrUser, getD.HazardCode, getD.HazardId, BLL.Const.HazardListMenuId, BLL.Const.BtnDelete); BLL.HazardListService.DeleteHazardListById(rowID); } } BindGrid(); ShowNotify("删除数据成功!"); } } #endregion #region 关闭危险源清单弹出窗口 /// /// 关闭危险源清单弹出窗口 /// /// /// protected void Window2_Close(object sender, WindowCloseEventArgs e) { BindGrid(); } #endregion #region 确认按钮 /// /// 确认按钮 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { if (list.Count == 0) { ShowNotify("请至少选择一项!", MessageBoxIcon.Warning); return; } string ids = string.Empty; foreach (var item in list) { ids += item + "|"; } if (!string.IsNullOrEmpty(ids)) { ids = ids.Substring(0, ids.LastIndexOf("|")); Session["workStages"] = ids; } PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } #endregion #region 查询 /// /// 查询 /// /// /// protected void TextBox_TextChanged(object sender, EventArgs e) { InitTreeMenu(); } #endregion #region 获取按钮权限 /// /// 获取按钮权限 /// /// /// private void GetButtonPower() { var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HazardListMenuId); if (buttonList.Count() > 0) { if (buttonList.Contains(BLL.Const.BtnAdd)) { this.btnNewDetail.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnModify)) { this.btnMenuEdit.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnDelete)) { this.btnMenuDelete.Hidden = false; } } } #endregion #region 选择是否本公司危险源 /// /// 选择是否本公司工作阶段 /// /// /// protected void rblIsCompany_SelectedIndexChanged(object sender, EventArgs e) { InitTreeMenu(); } #endregion } }