303 lines
11 KiB
C#
303 lines
11 KiB
C#
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 定义项
|
||
/// <summary>
|
||
/// 人员主键
|
||
/// </summary>
|
||
public string PersonId
|
||
{
|
||
get
|
||
{
|
||
return (string)ViewState["PersonId"];
|
||
}
|
||
set
|
||
{
|
||
ViewState["PersonId"] = value;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 人员主键
|
||
/// </summary>
|
||
public string UserId
|
||
{
|
||
get
|
||
{
|
||
return (string)ViewState["UserId"];
|
||
}
|
||
set
|
||
{
|
||
ViewState["UserId"] = value;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 项目id
|
||
/// </summary>
|
||
public string ProjectId
|
||
{
|
||
get
|
||
{
|
||
return (string)ViewState["ProjectId"];
|
||
}
|
||
set
|
||
{
|
||
ViewState["ProjectId"] = value;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 单位id
|
||
/// </summary>
|
||
public string UnitId
|
||
{
|
||
get
|
||
{
|
||
return (string)ViewState["UnitId"];
|
||
}
|
||
set
|
||
{
|
||
ViewState["UnitId"] = value;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 人员身份证
|
||
/// </summary>
|
||
public string IdentityCard
|
||
{
|
||
get
|
||
{
|
||
return (string)ViewState["IdentityCard"];
|
||
}
|
||
set
|
||
{
|
||
ViewState["IdentityCard"] = value;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 加载页面
|
||
|
||
/// <summary>
|
||
/// 加载页面
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
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();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 绑定数据
|
||
/// </summary>
|
||
private void BindGrid()
|
||
{
|
||
panelCenterRegion.IFrameUrl = $"./StaffHSEInfoArchives.aspx?UserId={this.UserId}&&PersonId={this.PersonId}";
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 树事件
|
||
|
||
/// <summary>
|
||
/// 加载树
|
||
/// </summary>
|
||
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);
|
||
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 点击树节点事件 加载单位人员数据
|
||
/// </summary>
|
||
protected void tvPerson_NodeExpand(object sender, TreeNodeEventArgs e)
|
||
{
|
||
e.Node.Nodes.Clear();
|
||
if (e.Node.CommandName == "UnitWork") //展开单位节点
|
||
{
|
||
List<Model.Base_Unit> 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);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 点击TreeView
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
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
|
||
|
||
}
|
||
} |