148 lines
5.3 KiB
C#
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,
|
|
};
|
|
}
|
|
}
|
|
}
|
|
}
|