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
}
}