SGGL_SHJ/SGGL/BLL/HSSE/SitePerson/SitePerson_PersonItemServic...

394 lines
16 KiB
C#

using FineUIPro;
using Microsoft.Office.Interop.Excel;
using Microsoft.SqlServer.Dts.Runtime;
using System;
using System.Collections;
using System.Linq;
using System.Web.Security;
namespace BLL
{
public static class SitePerson_PersonItemService
{
public static Model.SGGLDB db = Funs.DB;
#region
/// <summary>
/// 记录数
/// </summary>
public static int count
{
get;
set;
}
/// <summary>
/// 定义变量
/// </summary>
private static IQueryable<Model.SitePerson_PersonItem> getDataLists = from x in db.SitePerson_PersonItem select x;
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="projectId"></param>
/// <param name="unitId"></param>
/// <param name="personId"></param>
/// <param name="name"></param>
/// <param name="idCard"></param>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <param name="Grid1"></param>
/// <returns></returns>
public static IEnumerable getListData(string projectId, string unitId, string personId, string name, string idCard, DateTime? startDate, DateTime? endDate, Grid Grid1)
{
IQueryable<Model.SitePerson_PersonItem> getDataList = getDataLists.Where(e => e.PersonId == personId);
if (!string.IsNullOrEmpty(projectId) && projectId != Const._Null)
{
getDataList = getDataList.Where(e => e.UnitId == unitId);
}
if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null)
{
getDataList = getDataList.Where(e => e.UnitId == unitId);
}
//if (!string.IsNullOrEmpty(personId))
//{
// getDataList = getDataList.Where(e => e.PersonId == personId);
//}
if (!string.IsNullOrEmpty(name))
{
getDataList = getDataList.Where(e => e.PersonName.Contains(name));
}
if (!string.IsNullOrEmpty(idCard))
{
getDataList = getDataList.Where(e => e.IdentityCard.Contains(idCard));
}
if (startDate.HasValue)
{
getDataList = getDataList.Where(e => e.InTime >= startDate);
}
if (endDate.HasValue)
{
getDataList = getDataList.Where(e => e.InTime <= endDate);
}
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.PersonItemId,
x.PersonId,
x.PersonName,
x.IdentityCard,
x.ProjectId,
x.ProjectName,
x.UnitId,
x.UnitName,
x.WorkPostId,
x.WorkPostName,
x.TeamGroupId,
x.TeamGroupName,
x.RoleId,
x.RoleName,
x.InTime,
x.OutTime,
x.OutResult,
};
}
#endregion
/// <summary>
/// 根据ID获取人员出入信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static Model.SitePerson_PersonItem getDataById(string id)
{
return Funs.DB.SitePerson_PersonItem.FirstOrDefault(x => x.PersonItemId == id);
}
/// <summary>
/// 设置人员进出场
/// </summary>
/// <param name="newitem"></param>
public static void SetPersonItemInOut(Model.SitePerson_Person sitePerson)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getPersons = db.Person_Persons.FirstOrDefault(x => x.IdentityCard == sitePerson.IdentityCard);
if (getPersons != null)
{
getPersons.CurrentProjectId = null;
getPersons.CurrentProjectRoleId = null;
getPersons.CurrentProjectWorkPostId = null;
db.SubmitChanges();
////在岗
if (sitePerson.States == Const.ProjectPersonStates_1 )
{
Model.SitePerson_PersonItem newPersonItem = new Model.SitePerson_PersonItem
{
PersonItemId = SQLHelper.GetNewID(),
PersonId = sitePerson.PersonId,
PersonName = sitePerson.PersonName,
IdentityCard = sitePerson.IdentityCard,
ProjectId = sitePerson.ProjectId,
UnitId = sitePerson.UnitId,
WorkPostId = sitePerson.WorkPostId,
TeamGroupId = sitePerson.TeamGroupId,
RoleId = sitePerson.RoleIds,
InTime = sitePerson.InTime,
};
AddPersonItem(newPersonItem);
var getOtherPersons = db.SitePerson_Person.Where(x => x.IdentityCard == sitePerson.IdentityCard && x.ProjectId != sitePerson.ProjectId && x.States == Const.ProjectPersonStates_1);
if (getOtherPersons.Count() > 0)
{
foreach (var item in getOtherPersons)
{
item.OutTime = DateTime.Now;
item.States = Const.ProjectPersonStates_2;
item.OutResult = item.OutResult;
db.SubmitChanges();
}
}
getPersons.CurrentProjectId = sitePerson.ProjectId;
getPersons.CurrentProjectRoleId = sitePerson.RoleIds;
getPersons.CurrentProjectWorkPostId = sitePerson.WorkPostId;
db.SubmitChanges();
}
else if (sitePerson.States == Const.ProjectPersonStates_2) ///离岗
{
OutPersonItem(sitePerson.PersonId, sitePerson.ProjectId, sitePerson.OutTime);
}
else if (sitePerson.States == Const.ProjectPersonStates_R) ///打回
{
OutPersonItem(sitePerson.PersonId, sitePerson.ProjectId, DateTime.Now);
}
}
}
}
#region
/// <summary>
/// 增加 人员进场
/// </summary>
/// <param name="newitem">实体</param>
public static void AddPersonItem(Model.SitePerson_PersonItem newitem)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
///未离场项目 先离场
OutPersonItem(newitem.PersonId, null, DateTime.Now);
var getPerson = Person_PersonsService.GetPerson_PersonsById(newitem.PersonId);
if (getPerson != null)
{
newitem.PersonName = getPerson.PersonName;
newitem.IdentityCard = getPerson.IdentityCard;
}
Model.SitePerson_PersonItem newPersonItem = new Model.SitePerson_PersonItem
{
PersonItemId = newitem.PersonItemId,
PersonId = newitem.PersonId,
PersonName = newitem.PersonName,
IdentityCard = newitem.IdentityCard,
InTime = newitem.InTime,
OutTime = newitem.OutTime,
OutResult = newitem.OutResult,
};
if (!string.IsNullOrEmpty(newitem.ProjectId))
{
newPersonItem.ProjectId = newitem.ProjectId;
newPersonItem.ProjectName = ProjectService.GetProjectNameByProjectId(newitem.ProjectId);
}
else
{
newPersonItem.ProjectId =null;
newPersonItem.ProjectName = newitem.ProjectName;
}
if (!string.IsNullOrEmpty(newitem.UnitId))
{
newPersonItem.UnitId = newitem.UnitId;
newPersonItem.UnitName = UnitService.GetUnitNameByUnitId(newitem.UnitId);
}
else
{
newPersonItem.UnitId = null;
newPersonItem.UnitName = newitem.UnitName;
}
if (!string.IsNullOrEmpty(newitem.WorkPostId))
{
newPersonItem.WorkPostId = newitem.WorkPostId;
newPersonItem.WorkPostName = WorkPostService.getWorkPostNameById(newitem.WorkPostId);
}
else
{
newPersonItem.WorkPostId = null;
newPersonItem.WorkPostName = newitem.WorkPostName;
}
if (!string.IsNullOrEmpty(newitem.TeamGroupId))
{
newPersonItem.TeamGroupId = newitem.TeamGroupId;
newPersonItem.TeamGroupName = TeamGroupService.GetTeamGroupNameByTeamGroupId(newitem.TeamGroupId);
}
else
{
newPersonItem.TeamGroupId = null;
newPersonItem.TeamGroupName = newitem.TeamGroupName;
}
if (!string.IsNullOrEmpty(newitem.RoleId))
{
newPersonItem.RoleId = newitem.RoleId;
newPersonItem.RoleName = RoleService.getRoleNamesRoleIds(newitem.RoleId);
}
else
{
newPersonItem.RoleId = null;
newPersonItem.RoleName = newitem.RoleName;
}
db.SitePerson_PersonItem.InsertOnSubmit(newPersonItem);
db.SubmitChanges();
}
}
#endregion
#region
/// <summary>
/// 更新 人员进场信息
/// </summary>
/// <param name="newitem">实体</param>
public static void UpdatePersonItem(Model.SitePerson_PersonItem newitem)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getPerson = Person_PersonsService.GetPerson_PersonsById(newitem.PersonId);
if (getPerson != null)
{
newitem.PersonName = getPerson.PersonName;
newitem.IdentityCard = getPerson.IdentityCard;
}
var getItem = db.SitePerson_PersonItem.FirstOrDefault(x => x.PersonItemId == newitem.PersonItemId);
if (getItem != null)
{
getItem.PersonName = newitem.PersonName;
getItem.IdentityCard = newitem.IdentityCard;
getItem.ProjectId = newitem.ProjectId;
getItem.ProjectName = ProjectService.GetProjectNameByProjectId(newitem.ProjectId);
getItem.InTime = newitem.InTime;
getItem.OutTime = newitem.OutTime;
getItem.OutResult = newitem.OutResult;
if (!string.IsNullOrEmpty(newitem.ProjectId))
{
getItem.ProjectId = newitem.ProjectId;
getItem.ProjectName = ProjectService.GetProjectNameByProjectId(newitem.ProjectId);
}
else
{
getItem.ProjectId = null;
getItem.ProjectName = newitem.ProjectName;
}
if (!string.IsNullOrEmpty(newitem.UnitId))
{
getItem.UnitId = newitem.UnitId;
getItem.UnitName = UnitService.GetUnitNameByUnitId(newitem.UnitId);
}
else
{
getItem.UnitId = null;
getItem.UnitName = newitem.UnitName;
}
if (!string.IsNullOrEmpty(newitem.WorkPostId))
{
getItem.WorkPostId = newitem.WorkPostId;
getItem.WorkPostName = WorkPostService.getWorkPostNameById(newitem.WorkPostId);
}
else
{
getItem.WorkPostId = null;
getItem.WorkPostName = newitem.WorkPostName;
}
if (!string.IsNullOrEmpty(newitem.TeamGroupId))
{
getItem.TeamGroupId = newitem.TeamGroupId;
getItem.TeamGroupName = TeamGroupService.GetTeamGroupNameByTeamGroupId(newitem.TeamGroupId);
}
else
{
getItem.TeamGroupId = null;
getItem.TeamGroupName = newitem.TeamGroupName;
}
if (!string.IsNullOrEmpty(newitem.RoleId))
{
getItem.RoleId = newitem.RoleId;
getItem.RoleName = RoleService.getRoleNamesRoleIds(newitem.RoleId);
}
else
{
getItem.RoleId = null;
getItem.RoleName = newitem.RoleName;
}
}
db.SubmitChanges();
}
}
#endregion
#region
/// <summary>
/// 人员离场
/// </summary>
/// <param name="personId"></param>
/// <param name="projectId"></param>
public static void OutPersonItem(string personId, string projectId, DateTime? outTime)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
var getPersonItemNoOut = from x in db.SitePerson_PersonItem
where x.PersonId == personId && !x.OutTime.HasValue
select x;
if (!string.IsNullOrEmpty(projectId))
{
getPersonItemNoOut = getPersonItemNoOut.Where(x => x.ProjectId == projectId);
}
if (getPersonItemNoOut.Count() > 0)
{
foreach (var item in getPersonItemNoOut)
{
item.OutTime = outTime ?? DateTime.Now;
item.OutResult = item.OutResult;
db.SubmitChanges();
}
}
}
}
#endregion
#region Id删除一个明细信息
/// <summary>
/// 根据Id删除一个明细信息
/// </summary>
/// <param name="personItemId"></param>
public static void DeletePersonItem(string personItemId)
{
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
Model.SitePerson_PersonItem PersonItem = db.SitePerson_PersonItem.FirstOrDefault(e => e.PersonItemId == personItemId);
if (PersonItem != null)
{
db.SitePerson_PersonItem.DeleteOnSubmit(PersonItem);
db.SubmitChanges();
}
}
}
#endregion
}
}