using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; namespace BLL { /// /// 考勤 /// public static class InOutService { /// /// 记录数 /// public static int count { get; set; } ///// ///// 定义变量 ///// //private static IQueryable qq = from x in Funs.DB.T_d_facerecord // orderby x.DateTimeRecord descending // select x; //private static IQueryable qq1 = from x in Funs.DB.T_d_validcardevent // orderby x.RecordDateTime descending // select x; /// /// 获取分页列表 /// /// 页码 /// 每页数量 /// public static IEnumerable getListData(string projectId, string type, string unitId, string name, string startDate, string endDate, int PageIndex, int PageSize) { Model.SGGLDB db = Funs.DB; if (type == "1") { IQueryable q1 = from x in db.T_d_validcardevent where x.ProjectId == projectId orderby x.RecordDateTime descending select x; if (!string.IsNullOrEmpty(startDate)) { q1 = q1.Where(e => e.RecordDateTime >= Funs.GetNewDateTime(startDate)); } if (!string.IsNullOrEmpty(endDate)) { q1 = q1.Where(e => e.RecordDateTime <= Funs.GetNewDateTime(endDate)); } if (!string.IsNullOrEmpty(unitId)) { q1 = from x in q1 join y in db.SitePerson_Person on x.IDCardNo equals y.IdentityCard where y.UnitId == unitId select x; } if (!string.IsNullOrEmpty(name)) { q1 = q1.Where(e => e.EmployName.Contains(name)); } count = q1.Count(); if (count == 0) { return null; } return from x in q1.Skip(PageSize * PageIndex).Take(PageSize) select new { x.NewID, x.ProjectId, x.EmployName, x.DepartmentID, DepartName = x.DepartmentName, x.AreaID, x.AreaName, x.EmployNO, CardID = x.CardNO, DateTimeRecord = x.RecordDateTime, RecordDes = x.RecordAll, InOrOut = (x.InOrOut == 2 ? "出门" : "进门"), }; } else { IQueryable q = from x in db.T_d_facerecord where x.ProjectId == projectId orderby x.DateTimeRecord descending select x; if (type == "2") { q = q.Where(e => e.RoleID == "微信端"); } else if (type == "3") { q = q.Where(e => e.RoleID == "手动"); } else { q = q.Where(e => e.RoleID == "白名单"); } if (!string.IsNullOrEmpty(startDate)) { q = q.Where(e => e.DateTimeRecord >= Funs.GetNewDateTime(startDate)); } if (!string.IsNullOrEmpty(endDate)) { q = q.Where(e => e.DateTimeRecord <= Funs.GetNewDateTime(endDate)); } if (!string.IsNullOrEmpty(unitId)) { q = from x in q join y in db.SitePerson_Person on x.EmployNO equals y.IdentityCard where y.UnitId == unitId select x; } if (!string.IsNullOrEmpty(name)) { q = q.Where(e => e.EmployName.Contains(name)); } count = q.Count(); if (count == 0) { return null; } return from x in q.Skip(PageSize * PageIndex).Take(PageSize) select new { x.NewID, x.ProjectId, x.EmployName, x.DepartmentID, x.DepartName, x.AreaID, x.AreaName, x.EmployNO, x.CardID, x.DateTimeRecord, x.RecordDes, x.InOrOut, }; } } } }