437 lines
16 KiB
C#
437 lines
16 KiB
C#
using BLL;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Data.SqlClient;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using AspNet = System.Web.UI.WebControls;
|
||
|
||
namespace FineUIPro.Web.HSSE.Epidemic
|
||
{
|
||
public partial class PersonList : PageBase
|
||
{
|
||
#region 定义项
|
||
/// <summary>
|
||
/// 人员主键
|
||
/// </summary>
|
||
public string PersonId
|
||
{
|
||
get
|
||
{
|
||
return (string)ViewState["PersonId"];
|
||
}
|
||
set
|
||
{
|
||
ViewState["PersonId"] = value;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 项目id
|
||
/// </summary>
|
||
public string ProjectId
|
||
{
|
||
get
|
||
{
|
||
return (string)ViewState["ProjectId"];
|
||
}
|
||
set
|
||
{
|
||
ViewState["ProjectId"] = value;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 加载页面
|
||
/// <summary>
|
||
/// 加载页面
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
if (!IsPostBack)
|
||
{
|
||
Funs.DropDownPageSize(this.ddlPageSize);
|
||
this.ProjectId = this.CurrUser.LoginProjectId;
|
||
if (!string.IsNullOrEmpty(Request.Params["projectId"]) && Request.Params["projectId"] != this.ProjectId)
|
||
{
|
||
this.ProjectId = Request.Params["projectId"];
|
||
}
|
||
////权限按钮方法
|
||
this.GetButtonPower();
|
||
this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString();
|
||
BLL.WorkPostService.InitWorkPostDropDownList(this.drpPost, true);
|
||
this.InitTreeMenu();//加载树
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 加载树
|
||
/// </summary>
|
||
private void InitTreeMenu()
|
||
{
|
||
this.tvProjectAndUnit.Nodes.Clear();
|
||
var project = BLL.ProjectService.GetProjectByProjectId(this.ProjectId);
|
||
if (project != null)
|
||
{
|
||
var personLists = BLL.PersonService.GetPersonList(project.ProjectId);
|
||
TreeNode rootNode = new TreeNode();
|
||
rootNode = new TreeNode
|
||
{
|
||
Text = project.ProjectName,
|
||
NodeID = project.ProjectId
|
||
};
|
||
if (personLists.Count() > 0)
|
||
{
|
||
var personIn = personLists.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.IsUsed == true
|
||
&& x.InTime <= DateTime.Now && (!x.OutTime.HasValue || x.OutTime > DateTime.Now)).ToList();
|
||
rootNode.ToolTip = "当前项目人员总数:" + personLists.Count() + ";在场人员数:" + personIn.Count() + ";离场人员数:" + (personLists.Count() - personIn.Count());
|
||
}
|
||
else
|
||
{
|
||
rootNode.ToolTip = "当前项目人员总数:0";
|
||
}
|
||
rootNode.Expanded = true;
|
||
this.tvProjectAndUnit.Nodes.Add(rootNode);
|
||
GetUnitLists(rootNode.Nodes, this.ProjectId, personLists);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 加载单位
|
||
/// </summary>
|
||
/// <param name="nodes"></param>
|
||
/// <param name="parentId"></param>
|
||
private void GetUnitLists(TreeNodeCollection nodes, string parentId, List<Model.SitePerson_Person> personLists)
|
||
{
|
||
List<Model.Base_Unit> unitLists = BLL.UnitService.GetUnitByProjectIdList(parentId);
|
||
if (unitLists.Count() > 0)
|
||
{
|
||
if (BLL.ProjectUnitService.GetProjectUnitTypeByProjectIdUnitId(parentId, 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)
|
||
{
|
||
newNode = new TreeNode
|
||
{
|
||
Text = q.UnitName,
|
||
NodeID = q.UnitId + "|" + parentId,
|
||
ToolTip = q.UnitName
|
||
};
|
||
if (personLists.Count() > 0)
|
||
{
|
||
var personUnitLists = personLists.Where(x => x.UnitId == q.UnitId);
|
||
if (q.UnitId == "0")
|
||
{
|
||
personUnitLists = personLists.Where(x => x.UnitId == null);
|
||
}
|
||
|
||
if (personUnitLists.Count() > 0)
|
||
{
|
||
var personIn = personUnitLists.Where(x => x.InTime <= System.DateTime.Now && x.IsUsed == true
|
||
&& (!x.OutTime.HasValue || x.OutTime >= System.DateTime.Now));
|
||
newNode.ToolTip = q.UnitName + "人员总数:" + personUnitLists.Count() + ";在场人员数:" + personIn.Count() + ";离场人员数:" + (personUnitLists.Count() - personIn.Count());
|
||
}
|
||
else
|
||
{
|
||
newNode.ToolTip = q.UnitName + "人员总数:0";
|
||
}
|
||
}
|
||
else
|
||
{
|
||
newNode.ToolTip = q.UnitName + "人员总数:0";
|
||
}
|
||
newNode.EnableClickEvent = true;
|
||
nodes.Add(newNode);
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 绑定数据
|
||
/// </summary>
|
||
private void BindGrid()
|
||
{
|
||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||
{
|
||
if (this.tvProjectAndUnit != null && !string.IsNullOrEmpty(this.tvProjectAndUnit.SelectedNodeID))
|
||
{
|
||
string id = this.tvProjectAndUnit.SelectedNodeID;
|
||
string unitId = string.Empty;
|
||
string projectId = string.Empty;
|
||
var str = id.Split('|');
|
||
if (str.Count() > 1)
|
||
{
|
||
unitId = str[0];
|
||
projectId = str[1];
|
||
}
|
||
|
||
string strSql = "select * from View_SitePerson_Person Where ProjectId=@ProjectId ";
|
||
List<SqlParameter> listStr = new List<SqlParameter>
|
||
{
|
||
new SqlParameter("@ProjectId", this.ProjectId)
|
||
};
|
||
if (!string.IsNullOrEmpty(unitId) && unitId != "0")
|
||
{
|
||
strSql += " AND UnitId =@UnitId ";
|
||
listStr.Add(new SqlParameter("@UnitId", unitId));
|
||
}
|
||
else
|
||
{
|
||
strSql += " AND UnitId IS NULL";
|
||
}
|
||
if (drpIsUsedName.SelectedValue == "是")
|
||
{
|
||
strSql += " AND IsUsed = @IsUsed";
|
||
listStr.Add(new SqlParameter("@IsUsed", "1"));
|
||
}
|
||
else
|
||
{
|
||
strSql += " AND IsUsed = @IsUsed";
|
||
listStr.Add(new SqlParameter("@IsUsed", "0"));
|
||
}
|
||
if (!string.IsNullOrEmpty(this.txtPersonName.Text.Trim()))
|
||
{
|
||
strSql += " AND PersonName LIKE @PersonName";
|
||
listStr.Add(new SqlParameter("@PersonName", "%" + this.txtPersonName.Text.Trim() + "%"));
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(this.txtCardNo.Text.Trim()))
|
||
{
|
||
strSql += " AND CardNo LIKE @CardNo";
|
||
listStr.Add(new SqlParameter("@CardNo", "%" + this.txtCardNo.Text.Trim() + "%"));
|
||
}
|
||
if (!string.IsNullOrEmpty(this.txtIdentityCard.Text.Trim()))
|
||
{
|
||
strSql += " AND IdentityCard LIKE @IdentityCard";
|
||
listStr.Add(new SqlParameter("@IdentityCard", "%" + this.txtIdentityCard.Text.Trim() + "%"));
|
||
}
|
||
if (!string.IsNullOrEmpty(this.drpTreamGroup.SelectedValue) && this.drpTreamGroup.SelectedValue != BLL.Const._Null)
|
||
{
|
||
strSql += " AND TeamGroupId = @TeamGroupId";
|
||
listStr.Add(new SqlParameter("@TeamGroupId", this.drpTreamGroup.SelectedValue));
|
||
}
|
||
|
||
if (this.drpPost.SelectedItemArray.Count() > 1 || (this.drpPost.SelectedValue != BLL.Const._Null && this.drpPost.SelectedItemArray.Count() == 1))
|
||
{
|
||
strSql += " AND (1=2 ";
|
||
int i = 0;
|
||
foreach (var item in this.drpPost.SelectedValueArray)
|
||
{
|
||
if (!string.IsNullOrEmpty(item) && item != BLL.Const._Null)
|
||
{
|
||
strSql += " OR WorkPostId = @WorkPostId" + i.ToString();
|
||
listStr.Add(new SqlParameter("@WorkPostId" + i.ToString(), item));
|
||
}
|
||
|
||
i++;
|
||
}
|
||
|
||
strSql += ")";
|
||
}
|
||
|
||
if (this.ckIdCardInfoNotOK.Checked)
|
||
{
|
||
strSql += " AND (IdcardType is null or IdentityCard is null or PhotoUrl is null or (select count(*) from AttachFile where ToKeyId=PersonId+'#1')=0 or (select count(*) from AttachFile where ToKeyId=PersonId+'#5')=0)";
|
||
}
|
||
|
||
SqlParameter[] parameter = listStr.ToArray();
|
||
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
|
||
|
||
Grid1.RecordCount = tb.Rows.Count;
|
||
var table = this.GetPagedDataTable(Grid1, tb);
|
||
Grid1.DataSource = table;
|
||
Grid1.DataBind();
|
||
|
||
for (int i = 0; i < Grid1.Rows.Count; i++)
|
||
{
|
||
string personId = Grid1.Rows[i].DataKeys[0].ToString();
|
||
|
||
var isNull = from x in db.EduTrain_TrainRecordDetail
|
||
join y in db.EduTrain_TrainRecord on x.TrainingId equals y.TrainingId
|
||
where y.ProjectId == this.ProjectId && x.PersonId == personId
|
||
select x;
|
||
//if (isNull.Count() == 0) ////未参加过培训的人员
|
||
//{
|
||
// Grid1.Rows[i].RowCssClass = "Red";
|
||
//}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 点击TreeView
|
||
/// <summary>
|
||
/// 点击TreeView
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void tvProjectAndUnit_NodeCommand(object sender, TreeCommandEventArgs e)
|
||
{
|
||
this.drpTreamGroup.Items.Clear();
|
||
if (this.tvProjectAndUnit.SelectedNodeID.Contains("|"))
|
||
{
|
||
string id = this.tvProjectAndUnit.SelectedNodeID;
|
||
string unitId = string.Empty;
|
||
string projectId = string.Empty;
|
||
var str = id.Split('|');
|
||
if (str.Count() > 1)
|
||
{
|
||
unitId = str[0];
|
||
projectId = str[1];
|
||
}
|
||
BLL.TeamGroupService.InitTeamGroupProjectUnitDropDownList(this.drpTreamGroup, projectId, unitId, true);
|
||
|
||
BindGrid();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 页索引改变事件
|
||
/// <summary>
|
||
/// 页索引改变事件
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
|
||
{
|
||
Grid1.PageIndex = e.NewPageIndex;
|
||
BindGrid();
|
||
}
|
||
#endregion
|
||
|
||
#region 排序
|
||
/// <summary>
|
||
/// 排序
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void Grid1_Sort(object sender, GridSortEventArgs e)
|
||
{
|
||
Grid1.SortDirection = e.SortDirection;
|
||
Grid1.SortField = e.SortField;
|
||
BindGrid();
|
||
}
|
||
#endregion
|
||
|
||
#region 分页选择下拉改变事件
|
||
/// <summary>
|
||
/// 分页选择下拉改变事件
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
|
||
{
|
||
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
|
||
BindGrid();
|
||
}
|
||
#endregion
|
||
|
||
|
||
|
||
#region 编辑
|
||
/// <summary>
|
||
/// 右键编辑事件
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void btnMenuEdit_Click(object sender, EventArgs e)
|
||
{
|
||
this.EditData();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 编辑
|
||
/// </summary>
|
||
private void EditData()
|
||
{
|
||
if (Grid1.SelectedRowIndexArray.Length == 0)
|
||
{
|
||
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
|
||
this.PersonId = Grid1.SelectedRowID;
|
||
string id = this.tvProjectAndUnit.SelectedNodeID;
|
||
string[] str = id.Split('|');
|
||
if (str.Count() > 1)
|
||
{
|
||
string unitId = id.Split('|')[0];
|
||
string projectId = id.Split('|')[1];
|
||
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PersonListEdit.aspx?PersonId={0}&&ProjectId={1}&&UnitId={2}", this.PersonId, projectId, unitId, "编辑 - ")));
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// Grid双击事件
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
|
||
{
|
||
this.EditData();
|
||
}
|
||
#endregion
|
||
|
||
|
||
|
||
#region 关闭弹出窗口
|
||
/// <summary>
|
||
/// 关闭弹出窗口
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void Window1_Close(object sender, WindowCloseEventArgs e)
|
||
{
|
||
BindGrid();
|
||
}
|
||
#endregion
|
||
|
||
#region 判断按钮权限
|
||
/// <summary>
|
||
/// 判断按钮权限
|
||
/// </summary>
|
||
private void GetButtonPower()
|
||
{
|
||
if (Request.Params["value"] == "0")
|
||
{
|
||
return;
|
||
}
|
||
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.PersonListMenuId);
|
||
if (buttonList.Count() > 0)
|
||
{
|
||
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
|
||
|
||
#region 查询
|
||
/// <summary>
|
||
/// 查询
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void TextBox_TextChanged(object sender, EventArgs e)
|
||
{
|
||
this.BindGrid();
|
||
}
|
||
#endregion
|
||
|
||
}
|
||
} |