CNCEC_SUBQHSE_WUHUAN/SGGL/BLL/HSSE/SitePerson/SitePerson_CheckingService.cs

203 lines
8.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using FineUIPro;
namespace BLL
{
public class SitePerson_CheckingService
{
public static Model.SGGLDB db = Funs.DB;
#region
/// <summary>
/// 记录数
/// </summary>
public static int count
{
get;
set;
}
/// <summary>
/// 定义变量
/// </summary>
private static IQueryable<Model.SitePerson_Checking> getDataLists = from x in db.SitePerson_Checking
select x;
/// <summary>
/// 数据列表
/// </summary>
/// <param name="unitId"></param>
/// <param name="Grid1"></param>
/// <returns></returns>
public static IEnumerable getListData(string projectId, string unitId, string personName, string startDate, string endDate, Grid Grid1)
{
IQueryable<Model.SitePerson_Checking> getDataList = getDataLists.Where(x => x.ProjectId == projectId);
if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null)
{
getDataList = getDataList.Where(x => x.UnitId == unitId);
}
if (!string.IsNullOrEmpty(personName))
{
getDataList = getDataList.Where(x => x.PersonName.Contains(personName));
}
if (!string.IsNullOrEmpty(startDate))
{
DateTime? startDateD = Funs.GetNewDateTime(startDate);
if (startDateD.HasValue)
{
getDataList = getDataList.Where(x => x.IntoOutTime >= startDateD.Value);
}
}
if (!string.IsNullOrEmpty(endDate))
{
DateTime? endDateD = Funs.GetNewDateTime(endDate);
if (endDateD.HasValue)
{
getDataList = getDataList.Where(x => x.IntoOutTime < endDateD.Value);
}
}
count = getDataList.Count();
if (count == 0)
{
return null;
}
getDataList = SortConditionHelper.SortingAndPaging(getDataList, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize);
return from x in getDataList
select new
{
x.CheckingId, x.ProjectId, x.UnitId, x.UnitName, x.PersonId,
x.PersonName, x.CardNo, x.IdentityCard, x.WorkAreaId, x.WorkAreaName,
x.IntoOut, x.IntoOutTime, x.Address,
};
}
#endregion
/// <summary>
/// 根据人员考勤主键获取人员考勤管理信息
/// </summary>
/// <param name="checkingId">人员考勤主键</param>
/// <returns>人员考勤管理信息</returns>
public static Model.SitePerson_Checking GetPersonInfoByCheckingId(string checkingId)
{
return Funs.DB.SitePerson_Checking.FirstOrDefault(x=> x.CheckingId == checkingId);
}
/// <summary>
/// 增加人员考勤管理信息
/// </summary>
/// <param name="personInfo">人员考勤管理实体</param>
public static void AddPersonInfo(Model.SitePerson_Checking personInfo)
{
Model.SGGLDB db = Funs.DB;
Model.SitePerson_Checking newPersonInfo = new Model.SitePerson_Checking
{
CheckingId = personInfo.CheckingId,
ProjectId = personInfo.ProjectId,
UnitId = personInfo.UnitId,
UnitName = personInfo.UnitName,
PersonId = personInfo.PersonId,
PersonName = personInfo.PersonName,
IdentityCard = personInfo.IdentityCard,
CardNo = personInfo.CardNo,
WorkAreaId = personInfo.WorkAreaId,
WorkAreaName = personInfo.WorkAreaName,
IntoOutTime = personInfo.IntoOutTime,
IntoOut = personInfo.IntoOut,
Address = personInfo.Address,
States = BLL.Const.State_2
};
db.SitePerson_Checking.InsertOnSubmit(newPersonInfo);
db.SubmitChanges();
if (!string.IsNullOrEmpty(personInfo.ProjectId) && !string.IsNullOrEmpty(personInfo.IdentityCard) && personInfo.IntoOutTime.HasValue)
{
int inOut = personInfo.IntoOut == "1" ? 1 : 0;
APIDoorServerService.SaveDoorInOutRecord(personInfo.ProjectId, personInfo.IdentityCard, inOut, personInfo.IntoOutTime.Value, "手动");
}
}
/// <summary>
/// 修改人员考勤管理信息
/// </summary>
/// <param name="personInfo">人员考勤管理实体</param>
public static void UpdatePersonInfo(Model.SitePerson_Checking personInfo)
{
Model.SGGLDB db = Funs.DB;
Model.SitePerson_Checking newPersonInfo = db.SitePerson_Checking.FirstOrDefault(e => e.CheckingId == personInfo.CheckingId);
if (newPersonInfo != null)
{
newPersonInfo.UnitId = personInfo.UnitId;
newPersonInfo.UnitName = personInfo.UnitName;
newPersonInfo.PersonId = personInfo.PersonId;
newPersonInfo.PersonName = personInfo.PersonName;
newPersonInfo.CardNo = personInfo.CardNo;
newPersonInfo.IdentityCard = personInfo.IdentityCard;
newPersonInfo.WorkAreaId = personInfo.WorkAreaId;
newPersonInfo.WorkAreaName = personInfo.WorkAreaName;
newPersonInfo.IntoOutTime = personInfo.IntoOutTime;
newPersonInfo.IntoOut = personInfo.IntoOut;
newPersonInfo.Address = personInfo.Address;
db.SubmitChanges();
}
}
/// <summary>
/// 根据卡号和时间查询人员考勤信息
/// </summary>
/// <param name="cardNo">卡号</param>
/// <returns>人员实体</returns>
public static Model.SitePerson_Checking GetPersonCheckByCardNo(string projectId, string cardNo, DateTime? intoOutTime)
{
return Funs.DB.SitePerson_Checking.FirstOrDefault(e => e.ProjectId == projectId && e.CardNo == cardNo && e.IntoOutTime == intoOutTime);
}
/// <summary>
/// 根据人员考勤主键删除一个人员考勤管理信息
/// </summary>
/// <param name="checkingId">人员考勤主键</param>
public static void DeletePersonInfoByCheckingId(string checkingId)
{
Model.SGGLDB db = Funs.DB;
Model.SitePerson_Checking personInfo = db.SitePerson_Checking.FirstOrDefault(e => e.CheckingId == checkingId);
if (personInfo != null)
{
db.SitePerson_Checking.DeleteOnSubmit(personInfo);
db.SubmitChanges();
}
}
/// <summary>
/// 根据作业区域Id查询所有人员考勤信息数量
/// </summary>
/// <param name="workAreaId">作业区域Id</param>
/// <returns>人员考勤信息数量</returns>
public static int GetCheckingCountByWorkAreaId(string workAreaId)
{
return (from x in Funs.DB.SitePerson_Checking where x.WorkAreaId == workAreaId select x).ToList().Count();
}
/// <summary>
/// 根据人员考勤主键删除一个人员考勤管理信息
/// </summary>
/// <param name="checkingId">人员考勤主键</param>
public static void DeletePersonInOutByCheckingId(string PersonInOutId)
{
Model.SGGLDB db = Funs.DB;
Model.SitePerson_PersonInOut personInOut = db.SitePerson_PersonInOut.FirstOrDefault(e => e.PersonInOutId == PersonInOutId);
if (personInOut != null)
{
db.SitePerson_PersonInOut.DeleteOnSubmit(personInOut);
db.SubmitChanges();
}
}
}
}