using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; using FineUIPro; namespace BLL { public class SitePerson_CheckingService { public static Model.SGGLDB db = Funs.DB; #region 现场考勤列表 /// /// 记录数 /// public static int count { get; set; } /// /// 定义变量 /// private static IQueryable getDataLists = from x in db.SitePerson_Checking select x; /// /// 数据列表 /// /// /// /// public static IEnumerable getListData(string projectId, string unitId, string personName, string startDate, string endDate, Grid Grid1) { IQueryable getDataList = getDataLists.Where(x => x.ProjectId == projectId); if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null) { getDataList = getDataList.Where(x => x.UnitId == unitId); } if (!string.IsNullOrEmpty(personName)) { getDataList = getDataList.Where(x => x.PersonName.Contains(personName)); } if (!string.IsNullOrEmpty(startDate)) { DateTime? startDateD = Funs.GetNewDateTime(startDate); if (startDateD.HasValue) { getDataList = getDataList.Where(x => x.IntoOutTime >= startDateD.Value); } } if (!string.IsNullOrEmpty(endDate)) { DateTime? endDateD = Funs.GetNewDateTime(endDate); if (endDateD.HasValue) { getDataList = getDataList.Where(x => x.IntoOutTime < endDateD.Value); } } count = getDataList.Count(); if (count == 0) { return null; } getDataList = SortConditionHelper.SortingAndPaging(getDataList, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize); return from x in getDataList select new { x.CheckingId, x.ProjectId, x.UnitId, x.UnitName, x.PersonId, x.PersonName, x.CardNo, x.IdentityCard, x.WorkAreaId, x.WorkAreaName, x.IntoOut, x.IntoOutTime, x.Address, }; } #endregion /// /// 根据人员考勤主键获取人员考勤管理信息 /// /// 人员考勤主键 /// 人员考勤管理信息 public static Model.SitePerson_Checking GetPersonInfoByCheckingId(string checkingId) { return Funs.DB.SitePerson_Checking.FirstOrDefault(x=> x.CheckingId == checkingId); } /// /// 增加人员考勤管理信息 /// /// 人员考勤管理实体 public static void AddPersonInfo(Model.SitePerson_Checking personInfo) { Model.SGGLDB db = Funs.DB; Model.SitePerson_Checking newPersonInfo = new Model.SitePerson_Checking { CheckingId = personInfo.CheckingId, ProjectId = personInfo.ProjectId, UnitId = personInfo.UnitId, UnitName = personInfo.UnitName, PersonId = personInfo.PersonId, PersonName = personInfo.PersonName, IdentityCard = personInfo.IdentityCard, CardNo = personInfo.CardNo, WorkAreaId = personInfo.WorkAreaId, WorkAreaName = personInfo.WorkAreaName, IntoOutTime = personInfo.IntoOutTime, IntoOut = personInfo.IntoOut, Address = personInfo.Address, States = BLL.Const.State_2 }; db.SitePerson_Checking.InsertOnSubmit(newPersonInfo); db.SubmitChanges(); if (!string.IsNullOrEmpty(personInfo.ProjectId) && !string.IsNullOrEmpty(personInfo.IdentityCard) && personInfo.IntoOutTime.HasValue) { int inOut = personInfo.IntoOut == "1" ? 1 : 0; APIDoorServerService.SaveDoorInOutRecord(personInfo.ProjectId, personInfo.IdentityCard, inOut, personInfo.IntoOutTime.Value, "手动"); } } /// /// 修改人员考勤管理信息 /// /// 人员考勤管理实体 public static void UpdatePersonInfo(Model.SitePerson_Checking personInfo) { Model.SGGLDB db = Funs.DB; Model.SitePerson_Checking newPersonInfo = db.SitePerson_Checking.FirstOrDefault(e => e.CheckingId == personInfo.CheckingId); if (newPersonInfo != null) { newPersonInfo.UnitId = personInfo.UnitId; newPersonInfo.UnitName = personInfo.UnitName; newPersonInfo.PersonId = personInfo.PersonId; newPersonInfo.PersonName = personInfo.PersonName; newPersonInfo.CardNo = personInfo.CardNo; newPersonInfo.IdentityCard = personInfo.IdentityCard; newPersonInfo.WorkAreaId = personInfo.WorkAreaId; newPersonInfo.WorkAreaName = personInfo.WorkAreaName; newPersonInfo.IntoOutTime = personInfo.IntoOutTime; newPersonInfo.IntoOut = personInfo.IntoOut; newPersonInfo.Address = personInfo.Address; db.SubmitChanges(); } } /// /// 根据卡号和时间查询人员考勤信息 /// /// 卡号 /// 人员实体 public static Model.SitePerson_Checking GetPersonCheckByCardNo(string projectId, string cardNo, DateTime? intoOutTime) { return Funs.DB.SitePerson_Checking.FirstOrDefault(e => e.ProjectId == projectId && e.CardNo == cardNo && e.IntoOutTime == intoOutTime); } /// /// 根据人员考勤主键删除一个人员考勤管理信息 /// /// 人员考勤主键 public static void DeletePersonInfoByCheckingId(string checkingId) { Model.SGGLDB db = Funs.DB; Model.SitePerson_Checking personInfo = db.SitePerson_Checking.FirstOrDefault(e => e.CheckingId == checkingId); if (personInfo != null) { db.SitePerson_Checking.DeleteOnSubmit(personInfo); db.SubmitChanges(); } } /// /// 根据作业区域Id查询所有人员考勤信息数量 /// /// 作业区域Id /// 人员考勤信息数量 public static int GetCheckingCountByWorkAreaId(string workAreaId) { return (from x in Funs.DB.SitePerson_Checking where x.WorkAreaId == workAreaId select x).ToList().Count(); } /// /// 根据人员考勤主键删除一个人员考勤管理信息 /// /// 人员考勤主键 public static void DeletePersonInOutByCheckingId(string PersonInOutId) { Model.SGGLDB db = Funs.DB; Model.SitePerson_PersonInOut personInOut = db.SitePerson_PersonInOut.FirstOrDefault(e => e.PersonInOutId == PersonInOutId); if (personInOut != null) { db.SitePerson_PersonInOut.DeleteOnSubmit(personInOut); db.SubmitChanges(); } } } }