11
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using FineUIPro;
|
||||
using Model;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
@@ -183,6 +184,88 @@ namespace BLL
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void AddPersonInOut(List<Model.SitePerson_PersonInOut> personInOutList)
|
||||
{
|
||||
using (Model.SGGLDB db1 = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
List<string> personIds = new List<string>();
|
||||
List<SitePerson_PersonInOut> newPersonInOutList = new List<SitePerson_PersonInOut>();
|
||||
List<SitePerson_PersonInOut> needInsertPersonInOutList = new List<SitePerson_PersonInOut>();
|
||||
foreach (var personInOut in personInOutList)
|
||||
{
|
||||
Model.SitePerson_PersonInOut newPersonInOut = new Model.SitePerson_PersonInOut
|
||||
{
|
||||
PersonInOutId = SQLHelper.GetNewID(),
|
||||
IsIn = personInOut.IsIn ?? true,
|
||||
ChangeTime = personInOut.ChangeTime,
|
||||
InOutWay = personInOut.InOutWay ?? Const.InOutWay_Other,
|
||||
WorkAreaId = personInOut.WorkAreaId,
|
||||
WorkAreaName = personInOut.WorkAreaName,
|
||||
OldID = personInOut.OldID,
|
||||
Address = personInOut.Address,
|
||||
Remark = personInOut.Remark,
|
||||
};
|
||||
if (!string.IsNullOrEmpty(personInOut.PersonId))
|
||||
{
|
||||
personIds.Add(personInOut.PersonId);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(personInOut.IdentityCard))
|
||||
{
|
||||
personIds.Add(personInOut.IdentityCard);
|
||||
}
|
||||
newPersonInOutList.Add(personInOut);
|
||||
}
|
||||
|
||||
List<Model.SitePerson_Person> person_Peoples = new List<Model.SitePerson_Person>();
|
||||
person_Peoples.AddRange(db1.SitePerson_Person.Where(x => x.ProjectId == personInOutList[0].ProjectId && personIds.Contains(x.PersonId)).ToList());
|
||||
person_Peoples.AddRange(db1.SitePerson_Person.Where(x => x.ProjectId == personInOutList[0].ProjectId && personIds.Contains(x.IdentityCard)).ToList());
|
||||
foreach (var newPersonInOut in newPersonInOutList)
|
||||
{
|
||||
Model.SitePerson_Person getPerson = new Model.SitePerson_Person();
|
||||
getPerson = person_Peoples.FirstOrDefault(x => x.PersonId == newPersonInOut.PersonId || x.IdentityCard == newPersonInOut.IdentityCard);
|
||||
if (getPerson != null && !string.IsNullOrEmpty(getPerson.PersonId))
|
||||
{
|
||||
newPersonInOut.ProjectId = getPerson.ProjectId;
|
||||
newPersonInOut.PersonId = getPerson.PersonId;
|
||||
newPersonInOut.PersonName = getPerson.PersonName;
|
||||
newPersonInOut.IdentityCard = getPerson.IdentityCard;
|
||||
newPersonInOut.UnitId = getPerson.UnitId;
|
||||
newPersonInOut.UnitName = UnitService.GetUnitNameByUnitId(getPerson.UnitId);
|
||||
newPersonInOut.WorkPostId = getPerson.WorkPostId;
|
||||
if (!string.IsNullOrEmpty(getPerson.WorkPostId))
|
||||
{
|
||||
var getWorkPost = WorkPostService.GetWorkPostById(getPerson.WorkPostId);
|
||||
if (getWorkPost != null)
|
||||
{
|
||||
newPersonInOut.WorkPostName = getWorkPost.WorkPostName;
|
||||
newPersonInOut.PostType = getWorkPost.PostType;
|
||||
}
|
||||
}
|
||||
if (string.IsNullOrEmpty(newPersonInOut.WorkAreaName) && !string.IsNullOrEmpty(newPersonInOut.WorkAreaId))
|
||||
{
|
||||
newPersonInOut.WorkAreaName = UnitWorkService.GetUnitWorkName(newPersonInOut.WorkAreaId);
|
||||
}
|
||||
}
|
||||
|
||||
if (!getPerson.OutTime.HasValue || getPerson.OutTime > DateTime.Now)
|
||||
{
|
||||
//// 插入当日记录表
|
||||
needInsertPersonInOutList.Add(newPersonInOut);
|
||||
}
|
||||
}
|
||||
db1.SitePerson_PersonInOut.InsertAllOnSubmit(newPersonInOutList);
|
||||
db1.SubmitChanges();
|
||||
|
||||
if (needInsertPersonInOutList.Count>0)
|
||||
{
|
||||
//// 插入当日记录表
|
||||
PersonInOutService.InsertPersonInOutNowNow(needInsertPersonInOutList);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region 插入当日出入记录表
|
||||
@@ -273,6 +356,104 @@ namespace BLL
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void InsertPersonInOutNowNow(List<Model.SitePerson_PersonInOut> PersonInOuts)
|
||||
{
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
List<string> unitIds = new List<string>();
|
||||
List<SitePerson_PersonInOutNow> newPersonInOutList = new List<SitePerson_PersonInOutNow>();
|
||||
foreach (var PersonInOut in PersonInOuts)
|
||||
{
|
||||
Model.SitePerson_PersonInOutNow newPersonInOut = new Model.SitePerson_PersonInOutNow
|
||||
{
|
||||
PersonInOutId = PersonInOut.PersonInOutId,
|
||||
ProjectId = PersonInOut.ProjectId,
|
||||
UnitId = PersonInOut.UnitId,
|
||||
UnitName = PersonInOut.UnitName,
|
||||
PersonId = PersonInOut.PersonId,
|
||||
PersonName = PersonInOut.PersonName,
|
||||
IsIn = PersonInOut.IsIn,
|
||||
ChangeTime = PersonInOut.ChangeTime,
|
||||
WorkPostId = PersonInOut.WorkPostId,
|
||||
WorkPostName = PersonInOut.WorkPostName,
|
||||
PostType = PersonInOut.PostType,
|
||||
Name = PersonInOut.PersonName,
|
||||
IdentityCard = PersonInOut.IdentityCard,
|
||||
IdcardNumber = PersonInOut.IdentityCard,
|
||||
CheckType = "ZHENGCHANG_KAOQINLEIBIE",
|
||||
CheckWay = "FACE_FANGSHI",
|
||||
InOutWay = PersonInOut.InOutWay,
|
||||
Address = PersonInOut.Address,
|
||||
Remark = PersonInOut.Remark,
|
||||
};
|
||||
unitIds.Add(PersonInOut.UnitId);
|
||||
newPersonInOutList.Add(newPersonInOut);
|
||||
}
|
||||
db.SitePerson_PersonInOutNow.InsertAllOnSubmit(newPersonInOutList);
|
||||
db.SubmitChanges();
|
||||
|
||||
string proCode = ProjectService.GetContractNoByProjectId(PersonInOuts[0].ProjectId);
|
||||
var getRealNameP = db.RealName_Project.FirstOrDefault(x => x.ProCode == proCode);
|
||||
|
||||
/// 监理 业主 不进入
|
||||
var getPUnitS = db.Project_ProjectUnit.Where(x => x.ProjectId == PersonInOuts[0].ProjectId && unitIds.Contains(x.UnitId)).ToList();
|
||||
|
||||
foreach (var newPersonInOut in newPersonInOutList)
|
||||
{
|
||||
var getPUnit = getPUnitS.FirstOrDefault(x => x.UnitId == newPersonInOut.UnitId);
|
||||
if (getPUnit.UnitType != Const.ProjectUnitType_3 && getPUnit.UnitType != Const.ProjectUnitType_4 && getPUnit.IsSynchro == true)
|
||||
{
|
||||
if (getRealNameP != null && newPersonInOut.ChangeTime.HasValue)
|
||||
{
|
||||
var getNow = db.RealName_PersonInOutNow.FirstOrDefault(x => x.PersonInOutId == newPersonInOut.PersonInOutId);
|
||||
if (getNow == null)
|
||||
{
|
||||
int hour = newPersonInOut.ChangeTime.Value.Hour;
|
||||
bool isIn = newPersonInOut.IsIn ?? true;
|
||||
DateTime date = newPersonInOut.ChangeTime.Value;
|
||||
var getMorning = db.RealName_PersonInOutNow.FirstOrDefault(x => x.PersonId == newPersonInOut.PersonId
|
||||
&& ((x.ChangeTime.Value.Hour < 12 && hour < 12) || (x.ChangeTime.Value.Hour >= 12 && hour >= 12))
|
||||
&& x.ChangeTime >= date.Date && x.ChangeTime.Value < date.Date.AddDays(1)
|
||||
&& ((x.IsIn == true && x.ChangeTime < date) || (x.IsIn == false && x.ChangeTime > date)));
|
||||
if (getMorning == null)
|
||||
{
|
||||
Model.RealName_PersonInOutNow newR = new Model.RealName_PersonInOutNow
|
||||
{
|
||||
PersonInOutId = newPersonInOut.PersonInOutId,
|
||||
ProjectId = newPersonInOut.ProjectId,
|
||||
UnitId = newPersonInOut.UnitId,
|
||||
PersonId = newPersonInOut.PersonId,
|
||||
IsIn = newPersonInOut.IsIn,
|
||||
ChangeTime = newPersonInOut.ChangeTime,
|
||||
WorkPostId = newPersonInOut.WorkPostId,
|
||||
PostType = newPersonInOut.PostType,
|
||||
ProCode = proCode,
|
||||
Name = newPersonInOut.PersonName,
|
||||
IdcardType = "SHENFEN_ZHENGJIAN",
|
||||
IdcardNumber = newPersonInOut.IdentityCard,
|
||||
CheckType = "ZHENGCHANG_KAOQINLEIBIE",
|
||||
CheckWay = "FACE_FANGSHI",
|
||||
};
|
||||
db.RealName_PersonInOutNow.InsertOnSubmit(newR);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
db.SubmitChanges();
|
||||
var getLastList = from x in db.SitePerson_PersonInOutNow
|
||||
where x.ChangeTime <= PersonInOuts[0].ChangeTime.Value.AddHours(-48)
|
||||
select x;
|
||||
if (getLastList.Count() > 0)
|
||||
{
|
||||
db.SitePerson_PersonInOutNow.DeleteAllOnSubmit(getLastList);
|
||||
db.SubmitChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region 更新人员出入记录
|
||||
|
||||
Reference in New Issue
Block a user