| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | 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 | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     /// <summary> | 
					
						
							|  |  |  |  |     ///  | 
					
						
							|  |  |  |  |     /// </summary> | 
					
						
							|  |  |  |  |     public class DoorServerController : ApiController | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         #region 获取部门、人员、出入记录最大ID | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  获取部门、人员、出入记录最大ID | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							| 
									
										
										
										
											2021-05-20 17:16:01 +08:00
										 |  |  |  |         /// <param name="queryValue">查询条件</param> | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         /// <returns></returns> | 
					
						
							| 
									
										
										
										
											2021-05-20 17:16:01 +08:00
										 |  |  |  |         public string getMaxID(string projectId, string queryValue = null) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2021-05-20 17:16:01 +08:00
										 |  |  |  |             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) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             { | 
					
						
							|  |  |  |  |                 DepartmentID = getD.Max(); | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2021-05-20 17:16:01 +08:00
										 |  |  |  |             var getE = Funs.DB.T_d_employinfo.Where(x => x.ProjectId == projectId).Select(x => x.EmployID); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             if (getE.Count() > 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 EmployID = getE.Max(); | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2021-05-20 17:16:01 +08:00
										 |  |  |  |             if (!string.IsNullOrEmpty(queryValue)) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2021-05-20 17:16:01 +08:00
										 |  |  |  |                 var getI = Funs.DB.T_d_facerecord.Where(x => x.ProjectId == projectId && x.RoleID == queryValue).Select(x => x.ID); | 
					
						
							|  |  |  |  |                 if (getI.Count() > 0) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     ID = getI.Max(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var getI = Funs.DB.T_d_facerecord.Where(x => x.ProjectId == projectId).Select(x => x.ID); | 
					
						
							|  |  |  |  |                 if (getI.Count() > 0) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     ID = getI.Max(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |             var getV = Funs.DB.T_d_validcardevent.Where(x => x.ProjectId == projectId).Select(x => x.ValidEventID); | 
					
						
							|  |  |  |  |             if (getV.Count() > 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 ValidEventID = getV.Max(); | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2021-05-20 17:16:01 +08:00
										 |  |  |  |             return ("$" + DepartmentID.ToString() + "$" + EmployID.ToString() + "$" + ID.ToString() + "$" + ValidEventID.ToString() + "$"); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							| 
									
										
										
										
											2021-06-30 16:00:32 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         #region 保存部门信息 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 保存部门信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="department">部门信息</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         [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) | 
					
						
							|  |  |  |  |                     { | 
					
						
							| 
									
										
										
										
											2021-06-30 16:00:32 +08:00
										 |  |  |  |                         var getDep = db.T_d_department.FirstOrDefault(x => x.DepartmentID == department.DepartmentID && x.ProjectId == department.ProjectId); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                         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 保存人员信息 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 保存人员信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="employinfo">人员信息</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         [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) | 
					
						
							|  |  |  |  |                     { | 
					
						
							| 
									
										
										
										
											2021-06-30 16:00:32 +08:00
										 |  |  |  |                         var getEm = db.T_d_employinfo.FirstOrDefault(x => x.EmployID == employinfo.EmployID && x.ProjectId == employinfo.ProjectId); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                         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) | 
					
						
							|  |  |  |  |                                 { | 
					
						
							| 
									
										
										
										
											2021-06-30 16:00:32 +08:00
										 |  |  |  |                                     newEmploy.InstallationId = getDep.DepartmentID; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                 } | 
					
						
							|  |  |  |  |                                 else | 
					
						
							|  |  |  |  |                                 { | 
					
						
							| 
									
										
										
										
											2021-06-30 16:00:32 +08:00
										 |  |  |  |                                     var getDep0 = BLL.DoorServerService.GetSupDep(newEmploy.ProjectId, getDep.ParentID, 0); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                     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 保存人脸识别出入记录信息 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 保存出入记录信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="facerecord">出入记录信息</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         [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) | 
					
						
							|  |  |  |  |                     { | 
					
						
							| 
									
										
										
										
											2021-12-07 16:34:32 +08:00
										 |  |  |  |                         string projectId = facerecord.ProjectId; | 
					
						
							|  |  |  |  |                         string personName = facerecord.EmployName; | 
					
						
							| 
									
										
										
										
											2022-06-16 17:34:24 +08:00
										 |  |  |  |                         Model.SitePerson_Person getPerson = new Model.SitePerson_Person(); | 
					
						
							| 
									
										
										
										
											2022-03-04 16:15:21 +08:00
										 |  |  |  |                         string ProjectId_19261 = "1be62038-2b94-4ac2-9b5f-80cef85deeb2"; | 
					
						
							|  |  |  |  |                         string ProjectId_20041 = "e9fe4b89-f62d-4b3a-a40c-57c87010aa92"; | 
					
						
							|  |  |  |  |                         if (projectId == ProjectId_19261 || projectId == ProjectId_20041) | 
					
						
							| 
									
										
										
										
											2021-12-07 16:34:32 +08:00
										 |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2022-06-16 17:34:24 +08:00
										 |  |  |  |                             getPerson = db.SitePerson_Person.FirstOrDefault(x => x.IdentityCard == facerecord.EmployNO && (x.ProjectId == ProjectId_19261 || x.ProjectId == ProjectId_20041) && !x.OutTime.HasValue); | 
					
						
							|  |  |  |  |                             if (getPerson != null) | 
					
						
							| 
									
										
										
										
											2022-03-04 16:15:21 +08:00
										 |  |  |  |                             { | 
					
						
							| 
									
										
										
										
											2022-06-16 17:34:24 +08:00
										 |  |  |  |                                 personName = getPerson.PersonName; | 
					
						
							|  |  |  |  |                                 projectId = getPerson.ProjectId; | 
					
						
							| 
									
										
										
										
											2022-03-04 16:15:21 +08:00
										 |  |  |  |                             } | 
					
						
							|  |  |  |  |                         } | 
					
						
							| 
									
										
										
										
											2021-12-07 16:34:32 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-04 16:15:21 +08:00
										 |  |  |  |                         string ProjectId_20197 = "310e790e-5ede-4345-98a4-8bd0866e69ef"; | 
					
						
							|  |  |  |  |                         string ProjectId_21126 = "a7f692aa-4bd5-4fb3-87f8-ba1ab8f94cc2"; | 
					
						
							|  |  |  |  |                         if (projectId == ProjectId_20197 || projectId == ProjectId_21126) | 
					
						
							|  |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2022-06-16 17:34:24 +08:00
										 |  |  |  |                             getPerson = db.SitePerson_Person.FirstOrDefault(x => x.IdentityCard == facerecord.EmployNO && (x.ProjectId == ProjectId_20197 || x.ProjectId == ProjectId_21126) && !x.OutTime.HasValue); | 
					
						
							|  |  |  |  |                             if (getPerson != null) | 
					
						
							| 
									
										
										
										
											2022-03-04 16:15:21 +08:00
										 |  |  |  |                             { | 
					
						
							| 
									
										
										
										
											2022-06-16 17:34:24 +08:00
										 |  |  |  |                                 personName = getPerson.PersonName; | 
					
						
							|  |  |  |  |                                 projectId = getPerson.ProjectId; | 
					
						
							| 
									
										
										
										
											2022-03-04 16:15:21 +08:00
										 |  |  |  |                             } | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                          | 
					
						
							| 
									
										
										
										
											2021-12-07 16:34:32 +08:00
										 |  |  |  |                         var getFacerecord = db.T_d_facerecord.FirstOrDefault(x => x.ID == facerecord.ID && x.ProjectId == projectId && x.RoleID == facerecord.RoleID); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                         if (getFacerecord == null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             Model.T_d_facerecord newFacerecord = new Model.T_d_facerecord() | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 NewID = SQLHelper.GetNewID(), | 
					
						
							| 
									
										
										
										
											2021-12-07 16:34:32 +08:00
										 |  |  |  |                                 ProjectId = projectId, | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                 ID = facerecord.ID, | 
					
						
							| 
									
										
										
										
											2021-12-07 16:34:32 +08:00
										 |  |  |  |                                 EmployName =personName, | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                 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(); | 
					
						
							|  |  |  |  |                             ///// 根据出入记录 写入考勤记录 | 
					
						
							|  |  |  |  |                             facerecord.IDCardNo = facerecord.EmployNO; | 
					
						
							| 
									
										
										
										
											2022-06-16 17:34:24 +08:00
										 |  |  |  |                             DoorServerService.InsertEmployInOutRecord(facerecord, getPerson); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             if (facerecord.DateTimeRecord.HasValue) | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 int isIn = 0; | 
					
						
							|  |  |  |  |                                 if (facerecord.InOrOut == "进门") | 
					
						
							|  |  |  |  |                                 { | 
					
						
							|  |  |  |  |                                     isIn = 1; | 
					
						
							|  |  |  |  |                                 } | 
					
						
							| 
									
										
										
										
											2022-06-16 17:34:24 +08:00
										 |  |  |  |                                 APIPersonService.getPersonInOut(getPerson, isIn, facerecord.DateTimeRecord.Value); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             } | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         responeData.code = 2; | 
					
						
							|  |  |  |  |                         responeData.message = "信息有误!"; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             catch (Exception ex) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 responeData.code = 0; | 
					
						
							|  |  |  |  |                 responeData.message = ex.Message; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return responeData; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 保存刷卡出入记录信息 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 保存出入记录信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="validcardevent">出入记录信息</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         [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(); | 
					
						
							|  |  |  |  |                             ///// 根据出入记录 写入考勤记录 | 
					
						
							|  |  |  |  |                             Model.t_d_facerecordItem newFacerecord = new Model.t_d_facerecordItem | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 ProjectId = validcardevent.ProjectId, | 
					
						
							|  |  |  |  |                                 ID = validcardevent.ValidEventID, | 
					
						
							|  |  |  |  |                                 EmployName = validcardevent.EmployName, | 
					
						
							|  |  |  |  |                                 DepartmentID = validcardevent.DepartmentID, | 
					
						
							|  |  |  |  |                                 DepartName = validcardevent.DepartmentName, | 
					
						
							|  |  |  |  |                                 AreaID = validcardevent.AreaID, | 
					
						
							|  |  |  |  |                                 AreaName = validcardevent.AreaName, | 
					
						
							|  |  |  |  |                                 EmployNO = validcardevent.IDCardNo, | 
					
						
							|  |  |  |  |                                 IDCardNo = validcardevent.IDCardNo, | 
					
						
							|  |  |  |  |                                 DateTimeRecord = validcardevent.RecordDateTime, | 
					
						
							|  |  |  |  |                                 InOrOut = validcardevent.InOrOut == 1 ? "进门" : "出门", | 
					
						
							|  |  |  |  |                             }; | 
					
						
							| 
									
										
										
										
											2022-06-16 17:34:24 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |                             var getPerson = db.SitePerson_Person.FirstOrDefault(x => x.ProjectId == validcardevent.ProjectId && x.IdentityCard == validcardevent.IDCardNo); | 
					
						
							|  |  |  |  |                             if (getPerson != null) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             { | 
					
						
							| 
									
										
										
										
											2022-06-16 17:34:24 +08:00
										 |  |  |  |                                 DoorServerService.InsertEmployInOutRecord(newFacerecord, getPerson); | 
					
						
							|  |  |  |  |                                 if (validcardevent.RecordDateTime.HasValue) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                 { | 
					
						
							| 
									
										
										
										
											2022-06-16 17:34:24 +08:00
										 |  |  |  |                                     int isIn = 0; | 
					
						
							|  |  |  |  |                                     if (validcardevent.InOrOut == 1) | 
					
						
							|  |  |  |  |                                     { | 
					
						
							|  |  |  |  |                                         isIn = 1; | 
					
						
							|  |  |  |  |                                     } | 
					
						
							|  |  |  |  |                                     APIPersonService.getPersonInOut(getPerson, isIn, validcardevent.RecordDateTime.Value); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                 } | 
					
						
							|  |  |  |  |                             } | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         responeData.code = 2; | 
					
						
							|  |  |  |  |                         responeData.message = "信息有误!"; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             catch (Exception ex) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 responeData.code = 0; | 
					
						
							|  |  |  |  |                 responeData.message = ex.Message; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return responeData; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 保存出入记录信息 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 保存出入记录信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="facerecord">出入记录信息</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         [HttpPost] | 
					
						
							|  |  |  |  |         public Model.ResponeData SaveEmployInOutRecord([FromBody] Model.t_d_facerecordItem facerecord) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             var responeData = new Model.ResponeData(); | 
					
						
							|  |  |  |  |             try | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 if (facerecord != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     ///// 根据出入记录 写入考勤记录 | 
					
						
							|  |  |  |  |                     facerecord.IDCardNo = facerecord.EmployNO; | 
					
						
							| 
									
										
										
										
											2022-06-16 17:34:24 +08:00
										 |  |  |  |                     var getPerson = Funs.DB.SitePerson_Person.FirstOrDefault(x => x.ProjectId == facerecord.ProjectId && x.IdentityCard == facerecord.EmployNO); | 
					
						
							|  |  |  |  |                     if (getPerson != null) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         DoorServerService.InsertEmployInOutRecord(facerecord, getPerson); | 
					
						
							|  |  |  |  |                     } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     responeData.code = 2; | 
					
						
							|  |  |  |  |                     responeData.message = "信息有误!"; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             catch (Exception ex) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 responeData.code = 0; | 
					
						
							|  |  |  |  |                 responeData.message = ex.Message; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return responeData; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  |         #region 获取门禁人员考勤统计 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取人员信息出入场记录 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							|  |  |  |  |         /// <param name="startDate"></param> | 
					
						
							|  |  |  |  |         /// <param name="endDate"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public Model.ResponeData getInOutstatistics(string projectId, DateTime startDate, DateTime endDate) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             var responeData = new Model.ResponeData(); | 
					
						
							|  |  |  |  |             try | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 string unitId = null; | 
					
						
							|  |  |  |  |                 string postId = null; | 
					
						
							| 
									
										
										
										
											2021-06-30 16:00:32 +08:00
										 |  |  |  |                 responeData.data = Funs.DB.spInOutManHoursReport(projectId, unitId, postId, startDate, endDate).ToList(); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |             catch (Exception ex) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 responeData.code = 0; | 
					
						
							|  |  |  |  |                 responeData.message = ex.Message; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return responeData; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							|  |  |  |  |         /// <param name="unitId"></param> | 
					
						
							|  |  |  |  |         /// <param name="startDate"></param> | 
					
						
							|  |  |  |  |         /// <param name="endDate"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							| 
									
										
										
										
											2021-06-30 16:00:32 +08:00
										 |  |  |  |         public Model.ResponeData getUnitSumInOutstatistics(string projectId, string unitId, DateTime startDate, DateTime endDate) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             var responeData = new Model.ResponeData(); | 
					
						
							|  |  |  |  |             try | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 string postId = null; | 
					
						
							| 
									
										
										
										
											2021-06-30 16:00:32 +08:00
										 |  |  |  |                 var getData = Funs.DB.spInOutManHoursReport(projectId, unitId, postId, startDate, endDate).ToList(); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 responeData.data = getData.Sum(x => x.ManCountSum); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             catch (Exception ex) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 responeData.code = 0; | 
					
						
							|  |  |  |  |                 responeData.message = ex.Message; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return responeData; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |