using BLL; using System; using System.Collections.Generic; using System.Linq; namespace FineUIPro.Web.HSSE.Hazard { public partial class SetToolTipTime : PageBase { #region 定义项 /// /// 清单主键 /// public string HazardListId { get { return (string)ViewState["HazardListId"]; } set { ViewState["HazardListId"] = value; } } /// /// 检查项目内容ID /// public string HazardSortCode { get { return (string)ViewState["HazardSortCode"]; } set { ViewState["HazardSortCode"] = value; } } /// /// 类型 /// public string Type { get { return (string)ViewState["Type"]; } set { ViewState["Type"] = value; } } /// /// 类别集合 /// private static List hazardSorts = new List(); /// /// 危险源集合 /// public List hazardSelectedItems = new List(); #endregion #region 加载页面 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.HazardListId = Request.Params["HazardListId"]; this.Type = Request.Params["type"]; hazardSorts.Clear(); if (!string.IsNullOrEmpty(this.HazardListId)) { List hazardSelectedItems = BLL.Hazard_HazardSelectedItemService.GetHazardSelectedItemsByHazardListId(this.HazardListId); HazardSortSetDataBind(); Grid1.DataSource = hazardSelectedItems; Grid1.DataBind(); for (int i = 0; i < this.Grid1.Rows.Count; i++) { System.Web.UI.WebControls.Label hdWorkStage = (System.Web.UI.WebControls.Label)(this.Grid1.Rows[i].FindControl("hdWorkStage")); System.Web.UI.WebControls.DropDownList drpPromptTime = (System.Web.UI.WebControls.DropDownList)(this.Grid1.Rows[i].FindControl("drpPromptTime")); var q = BLL.Hazard_HazardSelectedItemService.GetHazardSelectedItemByHazardId(this.Grid1.Rows[i].DataKeys[0].ToString(), this.HazardListId, hdWorkStage.Text); if (q != null) { if (q.PromptTime != null) { ((System.Web.UI.WebControls.CheckBox)(this.Grid1.Rows[i].FindControl("ckbHazard"))).Checked = true; drpPromptTime.SelectedValue = q.PromptTime.ToString(); } } } } } } #endregion #region 加载树 /// /// 绑定树节点 /// private void HazardSortSetDataBind() { this.tvHazardTemplate.Nodes.Clear(); TreeNode rootNode = new TreeNode { Text = "危险源辨识与评价清单", NodeID = "0" };//定义根节点 this.tvHazardTemplate.Nodes.Add(rootNode); var q = (from x in Funs.DB.Hazard_HazardSelectedItem where x.HazardListId == HazardListId select x.WorkStage).Distinct(); foreach (string work in q) { hazardSorts.Clear(); TreeNode workStageTree = new TreeNode(); var workStageName = BLL.WorkStageService.GetWorkStageById(work); if (workStageName != null) { workStageTree.Text = workStageName.WorkStageName; workStageTree.NodeID = workStageName.WorkStageId; rootNode.Nodes.Add(workStageTree); } List hazardSelecteds = BLL.Hazard_HazardSelectedItemService.GetHazardSelectedItemsByHazardListIdAndWorkStage(HazardListId, work); foreach (Model.Hazard_HazardSelectedItem hazardSelectedItem in hazardSelecteds) { AddHazardSortSet(hazardSelectedItem.HazardListTypeId); } this.GetNodes(workStageTree.Nodes, null); } this.tvHazardTemplate.ExpandAllNodes(); } #endregion #region 遍历节点方法 /// /// 遍历节点方法 /// /// 节点集合 /// 父节点 private void GetNodes(TreeNodeCollection nodes, string parentId) { List newHazardSorts = new List(); if (parentId == null) { foreach (Model.Technique_HazardListType hazardSort in hazardSorts) { if (hazardSort.SupHazardListTypeId == "0") { newHazardSorts.Add(hazardSort); } } } else { foreach (Model.Technique_HazardListType hazardSort in hazardSorts) { if (hazardSort.SupHazardListTypeId == parentId) { newHazardSorts.Add(hazardSort); } } } foreach (var q in newHazardSorts) { TreeNode newNode = new TreeNode { Text = q.HazardListTypeName + "-" + q.HazardListTypeCode, NodeID = q.HazardListTypeId }; nodes.Add(newNode); } for (int i = 0; i < nodes.Count; i++) { GetNodes(nodes[i].Nodes, nodes[i].NodeID); } } #endregion #region 添加节点 /// /// 添加节点 /// /// private void AddHazardSortSet(string hazardListTypeId) { if (hazardListTypeId != "0") { Model.Technique_HazardListType hazardSortSet = BLL.HazardListTypeService.GetHazardListTypeById(hazardListTypeId); if (!hazardSorts.Contains(hazardSortSet)) { hazardSorts.Add(hazardSortSet); } AddHazardSortSet(hazardSortSet.SupHazardListTypeId); } } #endregion #region 节点选中事件 /// /// 节点选中事件 /// /// /// protected void tvHazardTemplate_NodeCommand(object sender, TreeCommandEventArgs e) { hazardSelectedItems.Clear(); HazardSortCode = this.tvHazardTemplate.SelectedNode.NodeID; var hazardList = BLL.Hazard_HazardListService.GetHazardList(this.HazardListId); if (hazardList != null) { string workStage = hazardList.WorkStage; Model.Technique_HazardListType hazardSort = BLL.HazardListTypeService.GetHazardListTypeById(HazardSortCode); if (hazardSort != null) { if (Convert.ToBoolean(hazardSort.IsEndLevel)) { this.Grid1.DataSource = BLL.Hazard_HazardSelectedItemService.getHazardSelectedItemByHazardListTypeId(HazardSortCode, HazardListId, workStage); this.Grid1.DataBind(); } else { GetTvHazardTemplateChecked(this.tvHazardTemplate.SelectedNode.Nodes, workStage); this.Grid1.DataSource = hazardSelectedItems; this.Grid1.DataBind(); } } } } #endregion #region 遍历选中节点 /// /// 遍历选中的节点 /// /// private void GetTvHazardTemplateChecked(TreeNodeCollection nodes, string workStage) { foreach (TreeNode tnHazardTemplate in nodes) { if (tnHazardTemplate.NodeID != "0") { Model.Technique_HazardListType hazardSortSet = (from x in Funs.DB.Technique_HazardListType where x.HazardListTypeId == tnHazardTemplate.NodeID orderby x.HazardListTypeCode select x).FirstOrDefault(); if (hazardSortSet != null) { if (Convert.ToBoolean(hazardSortSet.IsEndLevel)) { hazardSelectedItems.AddRange(BLL.Hazard_HazardSelectedItemService.GetHazardSelectedItemBySortAndListIdAndWorkStage(tnHazardTemplate.NodeID.Trim(), HazardListId, workStage)); } else { GetTvHazardTemplateChecked(tnHazardTemplate.Nodes, workStage); } } } else { GetTvHazardTemplateChecked(tnHazardTemplate.Nodes, workStage); } } } #endregion #region 格式化字符串 /// /// 获取工作阶段 /// /// /// protected string ConvertWorkStage(object WorkStage) { string name = string.Empty; if (WorkStage != null) { string workStage = WorkStage.ToString().Trim(); Model.Base_WorkStage c = BLL.WorkStageService.GetWorkStageById(workStage); if (c != null) { name = c.WorkStageName; } } return name; } /// /// 获取危险源编号 /// /// /// protected string ConvertHazardCode(object HazardId) { string hazardCode = string.Empty; if (HazardId != null) { Model.Technique_HazardList hazardList = BLL.HazardListService.GetHazardListById(HazardId.ToString()); if (hazardList != null) { hazardCode = hazardList.HazardCode; } } return hazardCode; } #endregion #region 保存按钮 /// /// 保存 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { for (int i = 0; i < Grid1.Rows.Count; i++) { System.Web.UI.WebControls.CheckBox ckbHazard = (System.Web.UI.WebControls.CheckBox)(this.Grid1.Rows[i].FindControl("ckbHazard")); System.Web.UI.WebControls.Label hdWorkStage = (System.Web.UI.WebControls.Label)(this.Grid1.Rows[i].FindControl("hdWorkStage")); System.Web.UI.WebControls.DropDownList drpPromptTime = (System.Web.UI.WebControls.DropDownList)(this.Grid1.Rows[i].FindControl("drpPromptTime")); if (ckbHazard.Checked) { var hazardSelectedItem = BLL.Hazard_HazardSelectedItemService.GetHazardSelectedItemByHazardId(this.Grid1.Rows[i].DataKeys[0].ToString(), HazardListId, hdWorkStage.Text); if (hazardSelectedItem != null) { hazardSelectedItem.PromptTime = Convert.ToInt32(drpPromptTime.SelectedValue.Trim()); BLL.Hazard_HazardSelectedItemService.UpdateHazardSelectedItem(hazardSelectedItem); } } } PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); } #endregion } }