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
}
}