using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using BLL; using WebAPI.Filter; namespace WebAPI.Controllers { /// /// /// public class DoorServerController : ApiController { #region 获取部门、人员、出入记录最大ID /// /// 获取部门、人员、出入记录最大ID /// /// /// public string getMaxID(string projectId) { int DepartmentID = 0, ID=0; long EmployID = 0, ValidEventID=0; var getD = Funs.DB.T_d_department.Where(x=> x.ProjectId == projectId).Select(x => x.DepartmentID); if (getD.Count()>0) { DepartmentID = getD.Max(); } var getE= Funs.DB.T_d_employinfo.Where(x => x.ProjectId == projectId).Select(x => x.EmployID); if (getE.Count() > 0) { EmployID = getE.Max(); } var getI = Funs.DB.T_d_facerecord.Where(x => x.ProjectId == projectId).Select(x => x.ID); if (getI.Count() > 0) { ID = getI.Max(); } var getV = Funs.DB.T_d_validcardevent.Where(x => x.ProjectId == projectId).Select(x => x.ValidEventID); if (getV.Count() > 0) { ValidEventID = getV.Max(); } return ("$" + DepartmentID.ToString()+"$"+ EmployID.ToString()+"$"+ID.ToString() + "$" + ValidEventID.ToString() + "$"); } #endregion #region 保存部门信息 /// /// 保存部门信息 /// /// 部门信息 /// [HttpPost] public Model.ResponeData SaveDepartment([FromBody] Model.t_d_departmentItem department) { var responeData = new Model.ResponeData(); try { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { if (department != null) { var getDep = db.T_d_department.FirstOrDefault(x => x.DepartmentID == department.DepartmentID && x.ProjectId ==department.ProjectId); if (getDep == null) { Model.T_d_department newDep = new Model.T_d_department() { NewID = SQLHelper.GetNewID(), ProjectId = department.ProjectId, DepartmentID = department.DepartmentID, DepartmentName = department.DepartmentName, ParentID = department.ParentID, IsDel = department.IsDel, IsDown = department.IsDown, ParentDepartmentName = department.ParentDepartmentName, IsEnable = department.IsEnable, }; db.T_d_department.InsertOnSubmit(newDep); db.SubmitChanges(); } } else { responeData.code = 2; responeData.message = "信息有误!"; } } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 保存人员信息 /// /// 保存人员信息 /// /// 人员信息 /// [HttpPost] public Model.ResponeData SaveEmployinfo([FromBody] Model.t_d_employinfoItem employinfo) { var responeData = new Model.ResponeData(); try { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { if (employinfo != null) { var getEm = db.T_d_employinfo.FirstOrDefault(x => x.EmployID == employinfo.EmployID && x.ProjectId ==employinfo.ProjectId); if (getEm == null) { Model.T_d_employinfo newEmploy = new Model.T_d_employinfo() { NewID = SQLHelper.GetNewID(), ProjectId = employinfo.ProjectId, EmployID = employinfo.EmployID, WxEmployID = employinfo.WxEmployID, EmployNO = employinfo.EmployNO, EmployName = employinfo.EmployName, CardNO = employinfo.CardNO, GroupID = employinfo.GroupID, IsAttend = employinfo.IsAttend, IsDoor = employinfo.IsDoor, BeginDateTime = employinfo.BeginDateTime, EndDateTime = employinfo.EndDateTime, InPassWord = employinfo.InPassWord, DepartmentName = employinfo.DepartmentName, Mailbox = employinfo.Mailbox, Mobilephone = employinfo.Mobilephone, WeiXinNO = employinfo.WeiXinNO, PostName = employinfo.PostName, Gender = employinfo.Gender, IsDown = employinfo.IsDown, IsWxDown = employinfo.IsWxDown, IDCardNo = employinfo.IDCardNo, PlayCardNumber = employinfo.PlayCardNumber, PlayCardSum = employinfo.PlayCardSum, UpdataCloud = employinfo.UpdataCloud, Birthday = employinfo.Birthday, Police = employinfo.Police, Nation = employinfo.Nation, Address = employinfo.Address, UpdateState = employinfo.UpdateState, UpdateDateTime = employinfo.UpdateDateTime, IsSubmarineBack = employinfo.IsSubmarineBack, OnSiteState = employinfo.OnSiteState, TimeNumber = employinfo.TimeNumber, CardTimeRecord = employinfo.CardTimeRecord, ReservedFieldsOne = employinfo.ReservedFieldsOne, ReservedFieldsTwo = employinfo.ReservedFieldsTwo, ReservedFieldsThree = employinfo.ReservedFieldsThree, ReservedFieldsFour = employinfo.ReservedFieldsFour, ReservedFieldsFive = employinfo.ReservedFieldsFive, }; #region 获取部门 var getDep = Funs.DB.T_d_department.FirstOrDefault(x => x.ProjectId == newEmploy.ProjectId && x.DepartmentID == newEmploy.GroupID); if (getDep != null) { if (getDep.ParentID == 0) { newEmploy.InstallationId = getDep.DepartmentID; } else { var getDep0 =BLL.DoorServerService.GetSupDep(newEmploy.ProjectId, getDep.ParentID, 0); if (getDep0 != null) { newEmploy.UnitId = newEmploy.GroupID; newEmploy.InstallationId = getDep0.DepartmentID; var getUnit = BLL.DoorServerService.GetSupDep(newEmploy.ProjectId, getDep.DepartmentID, newEmploy.InstallationId ?? 0); if (getUnit != null) { newEmploy.UnitId = getUnit.DepartmentID; } } } } #endregion db.T_d_employinfo.InsertOnSubmit(newEmploy); db.SubmitChanges(); } } else { responeData.code = 2; responeData.message = "信息有误!"; } } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 保存人脸识别出入记录信息 /// /// 保存出入记录信息 /// /// 出入记录信息 /// [HttpPost] public Model.ResponeData SaveFacerecord([FromBody] Model.t_d_facerecordItem facerecord) { var responeData = new Model.ResponeData(); try { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { if (facerecord != null) { var getFacerecord = db.T_d_facerecord.FirstOrDefault(x => x.ID == facerecord.ID && x.ProjectId == facerecord.ProjectId); if (getFacerecord == null) { Model.T_d_facerecord newFacerecord = new Model.T_d_facerecord() { NewID = SQLHelper.GetNewID(), ProjectId = facerecord.ProjectId, ID = facerecord.ID, EmployName = facerecord.EmployName, DepartmentID = facerecord.DepartmentID, DepartName = facerecord.DepartName, AreaID = facerecord.AreaID, AreaName = facerecord.AreaName, EmployNO = facerecord.EmployNO, CardID = facerecord.CardID, RoleID = facerecord.RoleID, DateTimeRecord = facerecord.DateTimeRecord, RecordDes = facerecord.RecordDes, FaceIP = facerecord.FaceIP, InOrOut = facerecord.InOrOut, Des1 = facerecord.Des1, Des2 = facerecord.Des2, Des3 = facerecord.Des3, Des4 = facerecord.Des4, }; db.T_d_facerecord.InsertOnSubmit(newFacerecord); db.SubmitChanges(); if (facerecord.DateTimeRecord.HasValue) { Model.SitePerson_PersonInOut newInOut = new Model.SitePerson_PersonInOut { ProjectId = facerecord.ProjectId, IdentityCard = facerecord.EmployNO, IsIn = facerecord.InOrOut == "进门" ? true : false, ChangeTime = facerecord.DateTimeRecord.Value, InOutWay = Const.InOutWay_1, }; PersonInOutService.AddPersonInOut(newInOut); } } } else { responeData.code = 2; responeData.message = "信息有误!"; } } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 保存刷卡出入记录信息 /// /// 保存出入记录信息 /// /// 出入记录信息 /// [HttpPost] public Model.ResponeData SaveValidcardevent([FromBody] Model.t_d_validcardeventItem validcardevent) { var responeData = new Model.ResponeData(); try { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { if (validcardevent != null) { var getValidcardevent = db.T_d_facerecord.FirstOrDefault(x => x.ID == validcardevent.ValidEventID && x.ProjectId == validcardevent.ProjectId); if (getValidcardevent == null) { Model.T_d_validcardevent newValidcardevent = new Model.T_d_validcardevent() { NewID = SQLHelper.GetNewID(), ProjectId = validcardevent.ProjectId, ValidEventID = validcardevent.ValidEventID, RecordDateTime = validcardevent.RecordDateTime, CardNO = validcardevent.CardNO, ConsumerID = validcardevent.ConsumerID, InOrOut = validcardevent.InOrOut, ControllerID = validcardevent.ControllerID, ReaderNO = validcardevent.ReaderNO, RecordFlashLoc = validcardevent.RecordFlashLoc, RecordAll = validcardevent.RecordAll, JPGPath = validcardevent.JPGPath, IsDown = validcardevent.IsDown, EquipmentSN = validcardevent.EquipmentSN, ConsumerNO = validcardevent.ConsumerNO, EmployNO = validcardevent.EmployNO, EmployName = validcardevent.EmployName, CardType = validcardevent.CardType, Card = validcardevent.Card, DepartmentID = validcardevent.DepartmentID, DepartmentName = validcardevent.DepartmentName, ControllerSN = validcardevent.ControllerSN, DoorID = validcardevent.DoorID, DoorName = validcardevent.DoorName, ReaderName = validcardevent.ReaderName, AreaID = validcardevent.AreaID, AreaName = validcardevent.AreaName, WorkType = validcardevent.WorkType, Positions = validcardevent.Positions, IDCardNo = validcardevent.IDCardNo, }; db.T_d_validcardevent.InsertOnSubmit(newValidcardevent); db.SubmitChanges(); if (validcardevent.RecordDateTime.HasValue) { Model.SitePerson_PersonInOut newInOut = new Model.SitePerson_PersonInOut { ProjectId = validcardevent.ProjectId, IdentityCard = validcardevent.EmployNO, IsIn = validcardevent.InOrOut == 1 ? true : false, ChangeTime = validcardevent.RecordDateTime.Value, InOutWay = Const.InOutWay_1, }; PersonInOutService.AddPersonInOut(newInOut); } } } else { responeData.code = 2; responeData.message = "信息有误!"; } } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 获取门禁人员考勤统计 /// /// 获取人员信息出入场记录 /// /// /// /// /// public Model.ResponeData getInOutstatistics(string projectId, DateTime startDate, DateTime endDate) { var responeData = new Model.ResponeData(); try { string unitId = null; string postId = null; responeData.data = Funs.DB.spInOutManHoursReport(projectId, unitId, postId, startDate, endDate).ToList(); ; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion } }