using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Threading;
namespace FineUIPro.Web.HSSE.SitePerson
{
public partial class PersonInfoClock : PageBase
{
#region 加载
///
/// 加载页面
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
UnitService.GetUnit(this.drpUnit, this.CurrUser.LoginProjectId, true);
btnClose.OnClientClick = ActiveWindow.GetHideReference();
}
}
#endregion
#region 保存
///
/// 保存按钮
///
///
///
protected void btnSave_Click(object sender, EventArgs e)
{
if ((this.ckIn.Checked && !string.IsNullOrEmpty(this.txtInTime.Text)) || (this.ckOut.Checked && !string.IsNullOrEmpty(this.txtOutTime.Text)))
{
var getPersons = from x in Funs.DB.SitePerson_Person
join y in Funs.DB.Project_ProjectUnit on new { x.ProjectId, x.UnitId } equals new { y.ProjectId, y.UnitId }
where x.ProjectId == this.CurrUser.LoginProjectId && (!x.OutTime.HasValue || x.OutTime > DateTime.Now)
&& x.IsCardNoOK == true && x.InTime <= DateTime.Now && x.HeadImage != null
&& y.IsSynchro == true && x.RealNameAddTime.HasValue
select x;
if (this.drpUnit.SelectedValueArray.Length == 1 && this.drpUnit.SelectedValue == BLL.Const._Null)
{
}
else
{
string[] strs = this.drpUnit.SelectedValueArray;
getPersons = getPersons.Where(x => strs.Contains(x.UnitId));
}
var units = from x in Funs.DB.Base_Unit
select x;
var workPosts = from x in Funs.DB.Base_WorkPost
select x;
var unitWorks = from x in Funs.DB.WBS_UnitWork
select x;
Dictionary unitNameDic = new Dictionary();
Dictionary workPostNameDic = new Dictionary();
Dictionary workPostTypeDic = new Dictionary();
Dictionary unitWorkDic = new Dictionary();
foreach (var unit in units)
{
unitNameDic.Add(unit.UnitId, unit.UnitName);
}
foreach (var workPost in workPosts)
{
workPostNameDic.Add(workPost.WorkPostId, workPost.WorkPostName);
workPostTypeDic.Add(workPost.WorkPostId, workPost.PostType);
}
foreach (var unitWork in unitWorks)
{
unitWorkDic.Add(unitWork.UnitWorkId, unitWork.UnitWorkName + UnitWorkService.GetProjectType(unitWork.ProjectType));
}
if (getPersons.Count() > 0)
{
List list = new List();
foreach (var item in getPersons)
{
if (this.ckIn.Checked)
{
Model.SitePerson_PersonInOut newPersonInfo = new Model.SitePerson_PersonInOut
{
PersonInOutId = SQLHelper.GetNewID(),
PersonId = item.PersonId,
ProjectId = item.ProjectId,
WorkAreaId = item.WorkAreaId,
InOutWay = Const.InOutWay_2,
};
newPersonInfo.ProjectId = item.ProjectId;
newPersonInfo.PersonId = item.PersonId;
newPersonInfo.PersonName = item.PersonName;
newPersonInfo.IdentityCard = item.IdentityCard;
newPersonInfo.UnitId = item.UnitId;
newPersonInfo.UnitName = unitNameDic.ContainsKey(item.UnitId) ? unitNameDic[item.UnitId] : "";
newPersonInfo.WorkPostId = item.WorkPostId;
if (!string.IsNullOrEmpty(item.WorkPostId))
{
newPersonInfo.WorkPostName = workPostNameDic.ContainsKey(item.WorkPostId) ? workPostNameDic[item.WorkPostId] : "";
newPersonInfo.PostType = workPostTypeDic.ContainsKey(item.WorkPostId) ? workPostTypeDic[item.WorkPostId] : "";
}
if (string.IsNullOrEmpty(newPersonInfo.WorkAreaName) && !string.IsNullOrEmpty(newPersonInfo.WorkAreaId))
{
string unitWorkName = string.Empty;
if (!string.IsNullOrEmpty(newPersonInfo.WorkAreaId))
{
string[] strs = newPersonInfo.WorkAreaId.Split(',');
foreach (var i in strs)
{
unitWorkName += unitWorkDic.ContainsKey(i) ? unitWorkDic[i] + "," : "";
}
if (!string.IsNullOrEmpty(unitWorkName))
{
unitWorkName = unitWorkName.Substring(0, unitWorkName.LastIndexOf(","));
}
}
newPersonInfo.WorkAreaName = unitWorkName;
}
newPersonInfo.IsIn = true;
newPersonInfo.ChangeTime = Funs.GetNewDateTimeOrNow(this.txtInTime.Text);
list.Add(newPersonInfo);
}
if (this.ckOut.Checked)
{
Model.SitePerson_PersonInOut newPersonInfo = new Model.SitePerson_PersonInOut
{
PersonInOutId = SQLHelper.GetNewID(),
PersonId = item.PersonId,
ProjectId = item.ProjectId,
WorkAreaId = item.WorkAreaId,
InOutWay = Const.InOutWay_2,
};
newPersonInfo.ProjectId = item.ProjectId;
newPersonInfo.PersonId = item.PersonId;
newPersonInfo.PersonName = item.PersonName;
newPersonInfo.IdentityCard = item.IdentityCard;
newPersonInfo.UnitId = item.UnitId;
newPersonInfo.UnitName = unitNameDic.ContainsKey(item.UnitId) ? unitNameDic[item.UnitId] : "";
newPersonInfo.WorkPostId = item.WorkPostId;
if (!string.IsNullOrEmpty(item.WorkPostId))
{
newPersonInfo.WorkPostName = workPostNameDic.ContainsKey(item.WorkPostId) ? workPostNameDic[item.WorkPostId] : "";
newPersonInfo.PostType = workPostTypeDic.ContainsKey(item.WorkPostId) ? workPostTypeDic[item.WorkPostId] : "";
}
if (string.IsNullOrEmpty(newPersonInfo.WorkAreaName) && !string.IsNullOrEmpty(newPersonInfo.WorkAreaId))
{
string unitWorkName = string.Empty;
if (!string.IsNullOrEmpty(newPersonInfo.WorkAreaId))
{
string[] strs = newPersonInfo.WorkAreaId.Split(',');
foreach (var i in strs)
{
unitWorkName += unitWorkDic.ContainsKey(i) ? unitWorkDic[i] + "," : "";
}
if (!string.IsNullOrEmpty(unitWorkName))
{
unitWorkName = unitWorkName.Substring(0, unitWorkName.LastIndexOf(","));
}
}
newPersonInfo.WorkAreaName = unitWorkName;
}
newPersonInfo.IsIn = false;
newPersonInfo.ChangeTime = Funs.GetNewDateTimeOrNow(this.txtOutTime.Text);
list.Add(newPersonInfo);
}
}
Thread t = new Thread(new ThreadStart(() =>
{
BLL.PersonInOutService.AddPersonInOut(list);
}));
t.Start();
}
else
{
Alert.ShowInParent("当前项目没有身份证合法的在岗人员!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInParent("请选择进场或出场!", MessageBoxIcon.Warning);
return;
}
ShowNotify("提交成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
#endregion
protected void ck_CheckedChanged(object sender, CheckedEventArgs e)
{
this.txtInTime.Text = string.Empty;
if (this.ckIn.Checked)
{
this.txtInTime.Text = string.Format("{0:yyyy-MM-dd HH:mm}", System.DateTime.Now);
}
this.txtOutTime.Text = string.Empty;
if (this.ckOut.Checked)
{
this.txtOutTime.Text = string.Format("{0:yyyy-MM-dd HH:mm}", System.DateTime.Now);
}
}
}
}