xinjiang/SGGL/FineUIPro.Web/HSSE/Examine/OnePersonPerFile.aspx.cs

303 lines
11 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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