8efe030f47
为收敛当前分支代码范围并统一人员服务目录,移除历史模块与静态资源,减少无效代码和目录分散带来的维护成本。
168 lines
7.5 KiB
C#
168 lines
7.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace BLL
|
|
{
|
|
public static class APIPageDataService
|
|
{
|
|
#region 按出入记录获取人数
|
|
/// <summary>
|
|
/// 获取当前人数
|
|
/// </summary>
|
|
/// <param name="projectId">项目ID</param>
|
|
/// <returns></returns>
|
|
public static List<Model.PageDataPersonInOutItem> getPersonInOutAllNum(DateTime dateValue)
|
|
{
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
List<Model.PageDataPersonInOutItem> getSiteInOutList = new List<Model.PageDataPersonInOutItem>();
|
|
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;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取当前人数
|
|
/// </summary>
|
|
/// <param name="projectId">项目ID</param>
|
|
/// <returns></returns>
|
|
public static List<Model.PageDataPersonInOutItem> getPersonInOutNum(string projectId, DateTime dateValue)
|
|
{
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
List<Model.PageDataPersonInOutItem> getSiteInOutList = new List<Model.PageDataPersonInOutItem>();
|
|
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 获取当前人数-所有
|
|
/// <summary>
|
|
/// 获取当前人数
|
|
/// </summary>
|
|
/// <param name="projectId">项目ID</param>
|
|
/// <returns></returns>
|
|
public static List<Model.PageDataPersonInOutItem> getPersonAllNum(DateTime dateValue)
|
|
{
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
List<Model.PageDataPersonInOutItem> getSiteInOutList = new List<Model.PageDataPersonInOutItem>();
|
|
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 获取当前人数-按项目
|
|
/// <summary>
|
|
/// 获取当前人数
|
|
/// </summary>
|
|
/// <param name="projectId">项目ID</param>
|
|
/// <returns></returns>
|
|
public static List<Model.PageDataPersonInOutItem> getPersonNum(string projectId, DateTime dateValue)
|
|
{
|
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|
{
|
|
List<Model.PageDataPersonInOutItem> getSiteInOutList = new List<Model.PageDataPersonInOutItem>();
|
|
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 获取日进场人数
|
|
/// <summary>
|
|
/// 获取当前人数
|
|
/// </summary>
|
|
/// <param name="projectId">项目ID</param>
|
|
/// <returns></returns>
|
|
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
|
|
}
|
|
}
|