using System; using System.Collections.Generic; using System.Linq; namespace BLL { public static class APIPageDataService { #region 按出入记录获取人数 /// /// 获取当前人数 /// /// 项目ID /// public static List getPersonInOutAllNum(DateTime dateValue) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List getSiteInOutList = new List(); var getDayAll = from x in db.SitePerson_PersonInOutNow where x.ChangeTime.Value.Year == dateValue.Year && x.ChangeTime.Value.Month == dateValue.Month && x.ChangeTime.Value.Day == dateValue.Day && x.IsIn == true select x; if (getDayAll.Count() > 0) { var getInMaxs = from x in getDayAll select new Model.PageDataPersonInOutItem { PersonId = x.PersonId, PostType = x.PostType, }; if (getInMaxs.Count() > 0) { getSiteInOutList = getInMaxs.Distinct().ToList(); } } return getSiteInOutList; } } /// /// 获取当前人数 /// /// 项目ID /// public static List getPersonInOutNum(string projectId, DateTime dateValue) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List getSiteInOutList = new List(); var getDayAll = from x in db.SitePerson_PersonInOutNow where x.ProjectId == projectId && x.ChangeTime.Value.Year == dateValue.Year && x.ChangeTime.Value.Month == dateValue.Month && x.ChangeTime.Value.Day == dateValue.Day && x.IsIn == true select x; if (getDayAll.Count() > 0) { var getInMaxs = from x in getDayAll select new Model.PageDataPersonInOutItem { PersonId = x.PersonId, PostType = x.PostType, WorkPostId = x.WorkPostId, }; if (getInMaxs.Count() > 0) { getSiteInOutList = getInMaxs.Distinct().ToList(); } } return getSiteInOutList; } } #endregion #region 获取当前人数-所有 /// /// 获取当前人数 /// /// 项目ID /// public static List getPersonAllNum(DateTime dateValue) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List getSiteInOutList = new List(); var getDayAll = from x in db.SitePerson_PersonInOutNow where x.ChangeTime.Value.Year == dateValue.Year && x.ChangeTime.Value.Month == dateValue.Month && x.ChangeTime.Value.Day == dateValue.Day select x; if (getDayAll.Count() > 0) { var getInMaxs = from x in getDayAll group x by x.PersonId into g select new Model.PageDataPersonInOutItem { PersonId = g.First().PersonId, ChangeTime = g.Max(x => x.ChangeTime), IsIn = g.First().IsIn, PostType = g.First().PostType }; if (getInMaxs.Count() > 0) { getSiteInOutList = getInMaxs.Where(x => x.IsIn == true).ToList(); } } return getSiteInOutList; } } #endregion #region 获取当前人数-按项目 /// /// 获取当前人数 /// /// 项目ID /// public static List getPersonNum(string projectId, DateTime dateValue) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List getSiteInOutList = new List(); var getDayAll = from x in db.SitePerson_PersonInOutNow where x.ProjectId == projectId && x.ChangeTime.Value.Year == dateValue.Year && x.ChangeTime.Value.Month == dateValue.Month && x.ChangeTime.Value.Day == dateValue.Day select x; if (getDayAll.Count() > 0) { var getInMaxs = from x in getDayAll group x by x.PersonId into g select new Model.PageDataPersonInOutItem { PersonId = g.First().PersonId, ChangeTime = g.Max(x => x.ChangeTime), IsIn = g.First().IsIn, PostType = g.First().PostType, WorkPostId = g.First().WorkPostId, }; if (getInMaxs.Count() > 0) { getSiteInOutList = getInMaxs.Where(x => x.IsIn == true).ToList(); } } return getSiteInOutList; } } #endregion #region 获取日进场人数 /// /// 获取当前人数 /// /// 项目ID /// public static int getPersonInNowNum(string projectId, DateTime dateValue) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getDayAll = from x in db.SitePerson_PersonInOutNow where x.ProjectId == projectId && x.ChangeTime.Value.Year == dateValue.Year && x.ChangeTime.Value.Month == dateValue.Month && x.ChangeTime.Value.Day == dateValue.Day && x.IsIn == true select x; return getDayAll.Select(x => x.PersonId).Distinct().Count(); ; } } #endregion } }