using BLL; using System; using System.Collections.Generic; using System.Data; using System.Linq; namespace FineUIPro.Web.HSSE.Examine { public partial class OnePersonPerFile : PageBase { #region 定义项 /// /// 人员主键 /// public string PersonId { get { return (string)ViewState["PersonId"]; } set { ViewState["PersonId"] = value; } } /// /// 人员主键 /// public string UserId { get { return (string)ViewState["UserId"]; } set { ViewState["UserId"] = value; } } /// /// 项目id /// public string ProjectId { get { return (string)ViewState["ProjectId"]; } set { ViewState["ProjectId"] = value; } } /// /// 单位id /// public string UnitId { get { return (string)ViewState["UnitId"]; } set { ViewState["UnitId"] = value; } } /// /// 人员身份证 /// public string IdentityCard { get { return (string)ViewState["IdentityCard"]; } set { ViewState["IdentityCard"] = value; } } #endregion #region 加载页面 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.ProjectId = this.CurrUser.LoginProjectId; if (!string.IsNullOrEmpty(Request.Params["projectId"]) && Request.Params["projectId"] != this.ProjectId) { this.ProjectId = Request.Params["projectId"]; } //加载树 this.InitTreeMenu(); } } /// /// 绑定数据 /// private void BindGrid() { panelCenterRegion.IFrameUrl = $"./StaffHSEInfoArchives.aspx?UserId={this.UserId}&&PersonId={this.PersonId}"; } #endregion #region 树事件 /// /// 加载树 /// private void InitTreeMenu() { this.tvProjectAndUnitAndPerson.Nodes.Clear(); this.tvProjectAndUnitAndPerson.ShowBorder = false; this.tvProjectAndUnitAndPerson.ShowHeader = false; this.tvProjectAndUnitAndPerson.EnableIcons = true; this.tvProjectAndUnitAndPerson.AutoScroll = true; this.tvProjectAndUnitAndPerson.EnableSingleClickExpand = true; var project = BLL.ProjectService.GetProjectByProjectId(this.ProjectId); if (project != null) { TreeNode newNode = new TreeNode(); newNode.Text = project.ProjectName; newNode.NodeID = project.ProjectId; newNode.CommandName = "UnitWork"; newNode.EnableExpandEvent = true; newNode.EnableClickEvent = true; this.tvProjectAndUnitAndPerson.Nodes.Add(newNode); TreeNode emptyNode = new TreeNode(); emptyNode.Text = ""; emptyNode.NodeID = ""; newNode.Nodes.Add(emptyNode); } } /// /// 点击树节点事件 加载单位人员数据 /// protected void tvPerson_NodeExpand(object sender, TreeNodeEventArgs e) { e.Node.Nodes.Clear(); if (e.Node.CommandName == "UnitWork") //展开单位节点 { List unitLists = BLL.UnitService.GetUnitByProjectIdList(e.NodeID); if (unitLists.Count() > 0) { if (BLL.ProjectUnitService.GetProjectUnitTypeByProjectIdUnitId(e.NodeID, this.CurrUser.UnitId)) { unitLists = unitLists.Where(x => x.UnitId == this.CurrUser.UnitId).ToList(); } //添加其他单位/无单位人员 Model.Base_Unit otherUnit = new Model.Base_Unit { UnitId = "0", UnitName = "其他" }; unitLists.Add(otherUnit); TreeNode newNode = null; foreach (var q in unitLists) { TreeNode newCNProfessionalNode = new TreeNode(); newCNProfessionalNode.Text = q.UnitName; newCNProfessionalNode.NodeID = e.NodeID + "|" + q.UnitId; newCNProfessionalNode.CommandName = "Person"; newCNProfessionalNode.EnableExpandEvent = true; newCNProfessionalNode.EnableClickEvent = true; e.Node.Nodes.Add(newCNProfessionalNode); TreeNode tempNode = new TreeNode(); tempNode.NodeID = ""; tempNode.Text = ""; tempNode.EnableExpandEvent = true; tempNode.EnableClickEvent = true; newCNProfessionalNode.Nodes.Add(tempNode); } } } if (e.Node.CommandName == "Person") //展开人员节点 { var str = e.NodeID.Split('|'); if (str.Count() > 1) { var projectId = str[0]; var unitId = str[1]; String strSql1 = @"select PersonName as UserName,IdentityCard from SitePerson_Person where ProjectId='" + projectId + "' and UnitId='" + unitId + "' and IsUsed = 1"; String strSql2 = @"select y.UserName,y.IdentityCard from Project_ProjectUser x,Sys_User y where x.ProjectId='" + projectId + "' and x.UnitId='" + unitId + "' and x.UserId=y.UserId "; DataTable dt1 = SQLHelper.GetDataTableRunText(strSql1, null); DataTable dt2 = SQLHelper.GetDataTableRunText(strSql2, null); DataTable dtCombined = dt1.Clone(); // 将dt1的数据添加到dtCombined中 foreach (DataRow row in dt1.Rows) { dtCombined.ImportRow(row); } // 将dt2的数据添加到dtCombined中,但要先检查是否已存在以避免重复 foreach (DataRow row in dt2.Rows) { bool isDuplicate = false; foreach (DataRow existingRow in dtCombined.Rows) { // 这里假设UserName和IdentityCard是共同的关键列 if (existingRow["UserName"].Equals(row["UserName"]) && existingRow["IdentityCard"].Equals(row["IdentityCard"])) { isDuplicate = true; break; } } if (!isDuplicate) { dtCombined.ImportRow(row); } } //查询项目用户 if (dtCombined.Rows.Count > 0) { for (var i = 0; i < dtCombined.Rows.Count; i++) { TreeNode newNode = new TreeNode(); newNode.Text = dtCombined.Rows[i]["UserName"].ToString(); newNode.NodeID = projectId + "|" + unitId + "|" + dtCombined.Rows[i]["IdentityCard"]; newNode.CommandName = "end"; newNode.EnableExpandEvent = true; newNode.EnableClickEvent = true; e.Node.Nodes.Add(newNode); } } } } } /// /// 点击TreeView /// /// /// protected void tvProjectAndUnitAndPerson_NodeCommand(object sender, TreeCommandEventArgs e) { if (e.Node.CommandName == "end") { //此处为点击人员节点事件 进行数据绑定 var str = e.NodeID.Split('|'); if (str.Count() > 1) { this.ProjectId = str[0].Trim(); this.UnitId = str[1].Trim(); this.IdentityCard = str[2].Trim(); //通过身份证获取personid和userid String strSql1 = @"select * from [dbo].[SitePerson_Person] where ProjectId='" + this.ProjectId + "' and UnitId='" + this.UnitId + "' and IsUsed = 1 and IdentityCard='" + this.IdentityCard + "'"; String strSql2 = @"select y.UserId, y.UserName,y.IdentityCard from [dbo].[Project_ProjectUser] x,[dbo].[Sys_User] y where x.ProjectId='" + this.ProjectId + "' and x.UnitId='" + this.UnitId + "' and x.UserId=y.UserId and y.IdentityCard='" + this.IdentityCard + "'"; DataTable dt1 = SQLHelper.GetDataTableRunText(strSql1, null); DataTable dt2 = SQLHelper.GetDataTableRunText(strSql2, null); if (dt1.Rows.Count > 0) { this.PersonId = dt1.Rows[0]["PersonId"].ToString(); } else { this.PersonId = string.Empty; } if (dt2.Rows.Count > 0) { this.UserId = dt2.Rows[0]["UserId"].ToString(); } else { this.UserId = string.Empty; } } BindGrid(); } } #endregion } }