CNCEC_SUBQHSE_WUHUAN/SGGL/BLL/DoorServer/InOutService.cs

148 lines
5.3 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BLL
{
/// <summary>
/// 考勤
/// </summary>
public static class InOutService
{
public static Model.SGGLDB db = Funs.DB;
/// <summary>
/// 记录数
/// </summary>
public static int count
{
get;
set;
}
/// <summary>
/// 定义变量
/// </summary>
private static IQueryable<Model.T_d_facerecord> qq = from x in db.T_d_facerecord
orderby x.DateTimeRecord descending
select x;
private static IQueryable<Model.T_d_validcardevent> qq1 = from x in db.T_d_validcardevent
orderby x.RecordDateTime descending
select x;
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="PageIndex">页码</param>
/// <param name="PageSize">每页数量</param>
/// <returns></returns>
public static IEnumerable getListData(string projectId, string type, string unitId, string name, string startDate, string endDate, int PageIndex, int PageSize)
{
if (type == "1")
{
IQueryable<Model.T_d_validcardevent> q1 = qq1.Where(x => x.ProjectId == projectId);
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<Model.T_d_facerecord> q = qq.Where(x => x.ProjectId == projectId);
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,
};
}
}
}
}