230 lines
10 KiB
C#
230 lines
10 KiB
C#
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 加载
|
|
/// <summary>
|
|
/// 加载页面
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
UnitService.GetUnit(this.drpUnit, this.CurrUser.LoginProjectId, true);
|
|
btnClose.OnClientClick = ActiveWindow.GetHideReference();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 保存
|
|
/// <summary>
|
|
/// 保存按钮
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
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<string, string> unitNameDic = new Dictionary<string, string>();
|
|
Dictionary<string, string> workPostNameDic = new Dictionary<string, string>();
|
|
Dictionary<string, string> workPostTypeDic = new Dictionary<string, string>();
|
|
Dictionary<string, string> unitWorkDic = new Dictionary<string, string>();
|
|
|
|
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<SitePerson_PersonInOut> list = new List<SitePerson_PersonInOut>();
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
} |