| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | using Newtonsoft.Json; | 
					
						
							|  |  |  |  | using Newtonsoft.Json.Linq; | 
					
						
							|  |  |  |  | using SgManager.AI; | 
					
						
							|  |  |  |  | using System; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using System.Configuration; | 
					
						
							|  |  |  |  | using System.Linq; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace BLL | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     public static class APIPersonService | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         #region 获取项目现场人员登录信息 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取项目现场人员登录信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="userInfo"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static Model.UserItem PersonLogOn(Model.UserItem userInfo) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var getUser = from x in db.SitePerson_Person | 
					
						
							|  |  |  |  |                               where (x.Telephone == userInfo.Account || x.PersonName == userInfo.Account) | 
					
						
							|  |  |  |  |                               && (x.Password == Funs.EncryptionPassword(userInfo.Password) | 
					
						
							|  |  |  |  |                                  || (x.IdentityCard != null && x.IdentityCard.Substring(x.IdentityCard.Length - 4) == userInfo.Password)) | 
					
						
							|  |  |  |  |                               && x.InTime <= DateTime.Now && (!x.OutTime.HasValue || x.OutTime >= DateTime.Now) && x.IsUsed == true | 
					
						
							|  |  |  |  |                               select new Model.UserItem | 
					
						
							|  |  |  |  |                               { | 
					
						
							|  |  |  |  |                                   UserId = x.PersonId, | 
					
						
							|  |  |  |  |                                   UserCode = x.CardNo, | 
					
						
							|  |  |  |  |                                   Password = x.Password, | 
					
						
							|  |  |  |  |                                   UserName = x.PersonName, | 
					
						
							|  |  |  |  |                                   UnitId = x.UnitId, | 
					
						
							|  |  |  |  |                                   LoginProjectId = x.ProjectId, | 
					
						
							|  |  |  |  |                                   IdentityCard = x.IdentityCard, | 
					
						
							|  |  |  |  |                                   Account = x.Telephone, | 
					
						
							|  |  |  |  |                                   UnitName = db.Base_Unit.First(u => u.UnitId == x.UnitId).UnitName, | 
					
						
							|  |  |  |  |                                   LoginProjectName = db.Base_Project.First(u => u.ProjectId == x.ProjectId).ProjectName, | 
					
						
							|  |  |  |  |                                   Telephone = x.Telephone, | 
					
						
							|  |  |  |  |                                   WorkPostId = x.WorkPostId, | 
					
						
							|  |  |  |  |                                   WorkPostName = db.Base_WorkPost.First(w => w.WorkPostId == x.WorkPostId).WorkPostName, | 
					
						
							|  |  |  |  |                                   UserType = "3", | 
					
						
							|  |  |  |  |                               }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 return getUser.FirstOrDefault(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 根据personId获取人员信息 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据personId获取人员信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="personId"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static Model.PersonItem getPersonByPersonId(string personId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var getPerson = from x in db.View_SitePerson_Person | 
					
						
							|  |  |  |  |                                 where x.PersonId == personId || x.IdentityCard == personId | 
					
						
							|  |  |  |  |                                 select new Model.PersonItem | 
					
						
							|  |  |  |  |                                 { | 
					
						
							|  |  |  |  |                                     PersonId = x.PersonId, | 
					
						
							|  |  |  |  |                                     CardNo = x.CardNo, | 
					
						
							|  |  |  |  |                                     PersonName = x.PersonName, | 
					
						
							|  |  |  |  |                                     Sex = x.Sex, | 
					
						
							|  |  |  |  |                                     SexName = x.SexName, | 
					
						
							|  |  |  |  |                                     IdentityCard = x.IdentityCard, | 
					
						
							|  |  |  |  |                                     Address = x.Address, | 
					
						
							|  |  |  |  |                                     ProjectId = x.ProjectId, | 
					
						
							|  |  |  |  |                                     ProjectCode = x.ProjectCode, | 
					
						
							|  |  |  |  |                                     ProjectName = x.ProjectName, | 
					
						
							|  |  |  |  |                                     UnitId = x.UnitId, | 
					
						
							|  |  |  |  |                                     UnitCode = x.UnitCode, | 
					
						
							|  |  |  |  |                                     UnitName = x.UnitName, | 
					
						
							|  |  |  |  |                                     TeamGroupId = x.TeamGroupId, | 
					
						
							|  |  |  |  |                                     TeamGroupName = x.TeamGroupName, | 
					
						
							|  |  |  |  |                                     WorkPostId = x.WorkPostId, | 
					
						
							|  |  |  |  |                                     WorkPostName = x.WorkPostName, | 
					
						
							|  |  |  |  |                                     InTime = string.Format("{0:yyyy-MM-dd}", x.InTime), | 
					
						
							|  |  |  |  |                                     OutTime = string.Format("{0:yyyy-MM-dd}", x.OutTime), | 
					
						
							|  |  |  |  |                                     OutResult = x.OutResult, | 
					
						
							|  |  |  |  |                                     Telephone = x.Telephone, | 
					
						
							|  |  |  |  |                                     PhotoUrl = x.PhotoUrl, | 
					
						
							|  |  |  |  |                                     DepartName = x.DepartName, | 
					
						
							|  |  |  |  |                                     IsUsed = x.IsUsed, | 
					
						
							|  |  |  |  |                                     IsUsedName = x.IsUsed == false ? "不启用" : "启用", | 
					
						
							|  |  |  |  |                                     AuditorId = x.AuditorId, | 
					
						
							|  |  |  |  |                                     AuditorName = db.Sys_User.First(z => z.UserId == x.AuditorId).UserName, | 
					
						
							|  |  |  |  |                                     IsForeign = x.IsForeign.HasValue ? x.IsForeign : false, | 
					
						
							|  |  |  |  |                                     IsOutside = x.IsOutside.HasValue ? x.IsOutside : false, | 
					
						
							|  |  |  |  |                                     AuditorDate = string.Format("{0:yyyy-MM-dd}", x.AuditorDate), | 
					
						
							|  |  |  |  |                                     AttachUrl1 = x.IDCardUrl == null ? APIUpLoadFileService.getFileUrl(personId + "#1", null) : x.IDCardUrl.Replace('\\', '/'), | 
					
						
							|  |  |  |  |                                     AttachUrl2 = APIUpLoadFileService.getFileUrl(personId + "#2", null), | 
					
						
							|  |  |  |  |                                     AttachUrl3 = APIUpLoadFileService.getFileUrl(personId + "#3", null), | 
					
						
							|  |  |  |  |                                     AttachUrl4 = getAttachUrl4(x.PersonId), | 
					
						
							|  |  |  |  |                                     AttachUrl5 = APIUpLoadFileService.getFileUrl(personId + "#5", null), | 
					
						
							|  |  |  |  |                                     IdcardType=x.IdcardType, | 
					
						
							|  |  |  |  |                                     IdcardTypeName=x.IdcardTypeName, | 
					
						
							|  |  |  |  |                                     IdcardStartDate= string.Format("{0:yyyy-MM-dd}", x.IdcardStartDate), | 
					
						
							|  |  |  |  |                                     IdcardEndDate = string.Format("{0:yyyy-MM-dd}", x.IdcardEndDate), | 
					
						
							|  |  |  |  |                                     IdcardForever=x.IdcardForever, | 
					
						
							|  |  |  |  |                                     IdcardForeverStr=x.IdcardForeverStr, | 
					
						
							|  |  |  |  |                                     PoliticsStatus=x.PoliticsStatus, | 
					
						
							|  |  |  |  |                                     PoliticsStatusName=x.PoliticsStatusName, | 
					
						
							|  |  |  |  |                                     IdcardAddress=x.IdcardAddress, | 
					
						
							|  |  |  |  |                                     Nation=x.Nation, | 
					
						
							|  |  |  |  |                                     NationName=x.NationName, | 
					
						
							|  |  |  |  |                                     EduLevel=x.EduLevel, | 
					
						
							|  |  |  |  |                                     EduLevelName=x.EduLevelName, | 
					
						
							|  |  |  |  |                                     MaritalStatus=x.MaritalStatus, | 
					
						
							|  |  |  |  |                                     MaritalStatusName=x.MaritalStatusName, | 
					
						
							|  |  |  |  |                                     CountryCode=x.CountryCode, | 
					
						
							|  |  |  |  |                                     CountryName=x.CountryName, | 
					
						
							|  |  |  |  |                                     ProvinceCode=x.ProvinceCode, | 
					
						
							|  |  |  |  |                                     ProvinceName=x.ProvinceName, | 
					
						
							|  |  |  |  |                                     MainCNProfessionalId=x.MainCNProfessionalId, | 
					
						
							|  |  |  |  |                                     MainCNProfessionalName=x.MainCNProfessionalName, | 
					
						
							|  |  |  |  |                                     ViceCNProfessionalId=x.ViceCNProfessionalId, | 
					
						
							|  |  |  |  |                                     ViceCNProfessionalName=x.ViceCNProfessionalName | 
					
						
							|  |  |  |  |                                 }; | 
					
						
							|  |  |  |  |                 return getPerson.FirstOrDefault(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static string getAttachUrl4(string personId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 string returnUrl = APIUpLoadFileService.getFileUrl(personId + "#4", null); | 
					
						
							|  |  |  |  |                 var getPersonQuality = db.QualityAudit_PersonQuality.FirstOrDefault(x => x.PersonId == personId); | 
					
						
							|  |  |  |  |                 if (getPersonQuality != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     string url1 = APIUpLoadFileService.getFileUrl(getPersonQuality.PersonQualityId, null); | 
					
						
							|  |  |  |  |                     if (!string.IsNullOrEmpty(url1)) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         if (!string.IsNullOrEmpty(returnUrl)) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             returnUrl += "," + url1; | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                         else | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             returnUrl = url1; | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 return returnUrl; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 根据personId获取人员信息 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据personId获取人员信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="personId"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static Model.PersonItem getPersonByProjectIdIdentityCard(string projectId, string identityCard) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var getPerson = from x in db.View_SitePerson_Person | 
					
						
							|  |  |  |  |                                 where x.ProjectId == projectId && (x.PersonId == identityCard || x.IdentityCard == identityCard) | 
					
						
							|  |  |  |  |                                 select new Model.PersonItem | 
					
						
							|  |  |  |  |                                 { | 
					
						
							|  |  |  |  |                                     PersonId = x.PersonId, | 
					
						
							|  |  |  |  |                                     CardNo = x.CardNo, | 
					
						
							|  |  |  |  |                                     PersonName = x.PersonName, | 
					
						
							|  |  |  |  |                                     Sex = x.Sex, | 
					
						
							|  |  |  |  |                                     SexName = x.SexName, | 
					
						
							|  |  |  |  |                                     IdentityCard = x.IdentityCard, | 
					
						
							|  |  |  |  |                                     Address = x.Address, | 
					
						
							|  |  |  |  |                                     ProjectId = x.ProjectId, | 
					
						
							|  |  |  |  |                                     ProjectCode = x.ProjectCode, | 
					
						
							|  |  |  |  |                                     ProjectName = x.ProjectName, | 
					
						
							|  |  |  |  |                                     UnitId = x.UnitId, | 
					
						
							|  |  |  |  |                                     UnitCode = x.UnitCode, | 
					
						
							|  |  |  |  |                                     UnitName = x.UnitName, | 
					
						
							|  |  |  |  |                                     TeamGroupId = x.TeamGroupId, | 
					
						
							|  |  |  |  |                                     TeamGroupName = x.TeamGroupName, | 
					
						
							|  |  |  |  |                                     WorkPostId = x.WorkPostId, | 
					
						
							|  |  |  |  |                                     WorkPostName = x.WorkPostName, | 
					
						
							|  |  |  |  |                                     InTime = string.Format("{0:yyyy-MM-dd}", x.InTime), | 
					
						
							|  |  |  |  |                                     OutTime = string.Format("{0:yyyy-MM-dd}", x.OutTime), | 
					
						
							|  |  |  |  |                                     OutResult = x.OutResult, | 
					
						
							|  |  |  |  |                                     Telephone = x.Telephone, | 
					
						
							|  |  |  |  |                                     PhotoUrl = x.PhotoUrl, | 
					
						
							|  |  |  |  |                                     DepartName = x.DepartName, | 
					
						
							|  |  |  |  |                                     IsUsed = x.IsUsed, | 
					
						
							|  |  |  |  |                                     IsUsedName = x.IsUsed == false ? "不启用" : "启用", | 
					
						
							|  |  |  |  |                                     AuditorId = x.AuditorId, | 
					
						
							|  |  |  |  |                                     AuditorName = db.Sys_User.First(z => z.UserId == x.AuditorId).UserName, | 
					
						
							|  |  |  |  |                                     IsForeign = x.IsForeign.HasValue ? x.IsForeign : false, | 
					
						
							|  |  |  |  |                                     IsOutside = x.IsOutside.HasValue ? x.IsOutside : false, | 
					
						
							|  |  |  |  |                                     AuditorDate = string.Format("{0:yyyy-MM-dd}", x.AuditorDate), | 
					
						
							|  |  |  |  |                                     AttachUrl1 = x.IDCardUrl == null ? APIUpLoadFileService.getFileUrl(x.PersonId + "#1", null) : x.IDCardUrl.Replace('\\', '/'), | 
					
						
							|  |  |  |  |                                     AttachUrl2 = APIUpLoadFileService.getFileUrl(x.PersonId + "#2", null), | 
					
						
							|  |  |  |  |                                     AttachUrl3 = APIUpLoadFileService.getFileUrl(x.PersonId + "#3", null), | 
					
						
							|  |  |  |  |                                     AttachUrl4 = getAttachUrl4(x.PersonId), | 
					
						
							|  |  |  |  |                                     AttachUrl5 = APIUpLoadFileService.getFileUrl(x.PersonId + "#5", null), | 
					
						
							|  |  |  |  |                                     IdcardType = x.IdcardType, | 
					
						
							|  |  |  |  |                                     IdcardTypeName = x.IdcardTypeName, | 
					
						
							|  |  |  |  |                                     IdcardStartDate = string.Format("{0:yyyy-MM-dd}", x.IdcardStartDate), | 
					
						
							|  |  |  |  |                                     IdcardEndDate = string.Format("{0:yyyy-MM-dd}", x.IdcardEndDate), | 
					
						
							|  |  |  |  |                                     IdcardForever = x.IdcardForever, | 
					
						
							|  |  |  |  |                                     IdcardForeverStr = x.IdcardForeverStr, | 
					
						
							|  |  |  |  |                                     PoliticsStatus = x.PoliticsStatus, | 
					
						
							|  |  |  |  |                                     PoliticsStatusName = x.PoliticsStatusName, | 
					
						
							|  |  |  |  |                                     IdcardAddress = x.IdcardAddress, | 
					
						
							|  |  |  |  |                                     Nation = x.Nation, | 
					
						
							|  |  |  |  |                                     NationName = x.NationName, | 
					
						
							|  |  |  |  |                                     EduLevel = x.EduLevel, | 
					
						
							|  |  |  |  |                                     EduLevelName = x.EduLevelName, | 
					
						
							|  |  |  |  |                                     MaritalStatus = x.MaritalStatus, | 
					
						
							|  |  |  |  |                                     MaritalStatusName = x.MaritalStatusName, | 
					
						
							|  |  |  |  |                                     CountryCode = x.CountryCode, | 
					
						
							|  |  |  |  |                                     CountryName = x.CountryName, | 
					
						
							|  |  |  |  |                                     ProvinceCode = x.ProvinceCode, | 
					
						
							|  |  |  |  |                                     ProvinceName = x.ProvinceName, | 
					
						
							|  |  |  |  |                                     MainCNProfessionalId = x.MainCNProfessionalId, | 
					
						
							|  |  |  |  |                                     MainCNProfessionalName = x.MainCNProfessionalName, | 
					
						
							|  |  |  |  |                                     ViceCNProfessionalId = x.ViceCNProfessionalId, | 
					
						
							|  |  |  |  |                                     ViceCNProfessionalName = x.ViceCNProfessionalName | 
					
						
							|  |  |  |  |                                 }; | 
					
						
							|  |  |  |  |                 return getPerson.FirstOrDefault(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 根据personid人员打回 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据personid人员打回 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="personId"></param> | 
					
						
							|  |  |  |  |         /// <param name="userId"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static void getReUserPersonByPersonId(string personId, string userId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var getPerson = db.SitePerson_Person.FirstOrDefault(x => x.PersonId == personId); | 
					
						
							|  |  |  |  |                 if (getPerson != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getPerson.IsUsed = false; | 
					
						
							|  |  |  |  |                     getPerson.AuditorId = userId; | 
					
						
							|  |  |  |  |                     getPerson.AuditorDate = DateTime.Now; | 
					
						
							|  |  |  |  |                     db.SubmitChanges(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 根据projectId、unitid获取人员信息 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据projectId、unitid获取人员信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="personId"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.PersonItem> getPersonByProjectIdUnitId(string projectId, string unitId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var persons = from x in db.View_SitePerson_Person | 
					
						
							|  |  |  |  |                               where x.ProjectId == projectId && (x.UnitId == unitId || unitId == null) && x.IsUsed == true | 
					
						
							|  |  |  |  |                               && x.InTime <= DateTime.Now && (!x.OutTime.HasValue || x.OutTime >= DateTime.Now) | 
					
						
							|  |  |  |  |                               orderby x.CardNo descending | 
					
						
							|  |  |  |  |                               select new Model.PersonItem | 
					
						
							|  |  |  |  |                               { | 
					
						
							|  |  |  |  |                                   PersonId = x.PersonId, | 
					
						
							|  |  |  |  |                                   CardNo = x.CardNo, | 
					
						
							|  |  |  |  |                                   PersonName = x.PersonName, | 
					
						
							|  |  |  |  |                                   SexName = x.SexName, | 
					
						
							|  |  |  |  |                                   IdentityCard = x.IdentityCard, | 
					
						
							|  |  |  |  |                                   Address = x.Address, | 
					
						
							|  |  |  |  |                                   ProjectId = x.ProjectId, | 
					
						
							|  |  |  |  |                                   ProjectCode = x.ProjectCode, | 
					
						
							|  |  |  |  |                                   ProjectName = x.ProjectName, | 
					
						
							|  |  |  |  |                                   UnitId = x.UnitId, | 
					
						
							|  |  |  |  |                                   UnitCode = x.UnitCode, | 
					
						
							|  |  |  |  |                                   UnitName = x.UnitName, | 
					
						
							|  |  |  |  |                                   TeamGroupId = x.TeamGroupId, | 
					
						
							|  |  |  |  |                                   TeamGroupName = x.TeamGroupName, | 
					
						
							|  |  |  |  |                                   WorkPostId = x.WorkPostId, | 
					
						
							|  |  |  |  |                                   WorkPostName = x.WorkPostName, | 
					
						
							|  |  |  |  |                                   InTime = string.Format("{0:yyyy-MM-dd}", x.InTime), | 
					
						
							|  |  |  |  |                                   OutTime = string.Format("{0:yyyy-MM-dd}", x.OutTime), | 
					
						
							|  |  |  |  |                                   OutResult = x.OutResult, | 
					
						
							|  |  |  |  |                                   Telephone = x.Telephone, | 
					
						
							|  |  |  |  |                                   PhotoUrl = x.PhotoUrl, | 
					
						
							|  |  |  |  |                                   DepartName = x.DepartName, | 
					
						
							|  |  |  |  |                                   WorkAreaId = x.WorkAreaId, | 
					
						
							|  |  |  |  |                                   WorkAreaName = x.WorkAreaName, | 
					
						
							|  |  |  |  |                                   PostType = x.PostType, | 
					
						
							|  |  |  |  |                                   IsForeign = x.IsForeign.HasValue ? x.IsForeign : false, | 
					
						
							|  |  |  |  |                                   IsOutside = x.IsOutside.HasValue ? x.IsOutside : false, | 
					
						
							|  |  |  |  |                                   PostTypeName = db.Sys_Const.First(z => z.GroupId == ConstValue.Group_PostType && z.ConstValue == x.PostType).ConstText, | 
					
						
							|  |  |  |  |                               }; | 
					
						
							|  |  |  |  |                 return persons.ToList(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 获取在岗、离岗、待审人员列表 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 记录数 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static int getPersonListCount | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get; | 
					
						
							|  |  |  |  |             set; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取在岗、离岗、待审人员列表 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							|  |  |  |  |         /// <param name="unitId"></param> | 
					
						
							|  |  |  |  |         /// <param name="states">0待审1在岗2离岗</param> | 
					
						
							|  |  |  |  |         /// <param name="strUnitId">查询单位</param> | 
					
						
							|  |  |  |  |         /// <param name="strWorkPostId">查询岗位</param> | 
					
						
							|  |  |  |  |         ///  <param name="strParam">查询条件</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.PersonItem> getPersonListByProjectIdStates(string projectId, string unitId, string states, string strUnitId, string strWorkPostId, string strParam, int pageIndex) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var getViews = from x in db.SitePerson_Person | 
					
						
							|  |  |  |  |                                where x.ProjectId == projectId && (strUnitId == null || x.UnitId == strUnitId) | 
					
						
							|  |  |  |  |                                && (strWorkPostId == null || x.WorkPostId == strWorkPostId) | 
					
						
							|  |  |  |  |                                select x; | 
					
						
							|  |  |  |  |                 if (unitId != Const.UnitId_CWCEC && !string.IsNullOrEmpty(unitId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getViews = getViews.Where(x => x.UnitId == unitId); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(strParam)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getViews = getViews.Where(x => x.PersonName.Contains(strParam) || x.IdentityCard.Contains(strParam)); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (states == "0") | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getViews = getViews.Where(x => x.IsUsed == false && !x.AuditorDate.HasValue); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else if (states == "1") | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getViews = getViews.Where(x => x.IsUsed == true && x.InTime <= DateTime.Now && (!x.OutTime.HasValue || x.OutTime >= DateTime.Now)); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else if (states == "2") | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getViews = getViews.Where(x => x.IsUsed == true && x.OutTime <= DateTime.Now); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else if (states == "-1") | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getViews = getViews.Where(x => x.IsUsed == false && x.AuditorDate.HasValue); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 getPersonListCount = getViews.Count(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 if (getPersonListCount == 0) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     return null; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     var persons = from x in getViews | 
					
						
							|  |  |  |  |                                   join y in db.Base_Unit on x.UnitId equals y.UnitId | 
					
						
							|  |  |  |  |                                   orderby x.InTime descending | 
					
						
							|  |  |  |  |                                   select new Model.PersonItem | 
					
						
							|  |  |  |  |                                   { | 
					
						
							|  |  |  |  |                                       PersonId = x.PersonId, | 
					
						
							|  |  |  |  |                                       CardNo = x.CardNo, | 
					
						
							|  |  |  |  |                                       PersonName = x.PersonName, | 
					
						
							|  |  |  |  |                                       SexName = (x.Sex == "2" ? "女" : "男"), | 
					
						
							|  |  |  |  |                                       IdentityCard = x.IdentityCard, | 
					
						
							|  |  |  |  |                                       Address = x.Address, | 
					
						
							|  |  |  |  |                                       ProjectId = x.ProjectId, | 
					
						
							|  |  |  |  |                                       UnitId = x.UnitId, | 
					
						
							|  |  |  |  |                                       UnitCode = y.UnitCode, | 
					
						
							|  |  |  |  |                                       UnitName = y.UnitName, | 
					
						
							|  |  |  |  |                                       TeamGroupId = x.TeamGroupId, | 
					
						
							|  |  |  |  |                                       TeamGroupName = db.ProjectData_TeamGroup.First(z => z.TeamGroupId == x.TeamGroupId).TeamGroupName, | 
					
						
							|  |  |  |  |                                       WorkPostId = x.WorkPostId, | 
					
						
							|  |  |  |  |                                       WorkPostName = db.Base_WorkPost.First(z => z.WorkPostId == x.WorkPostId).WorkPostName, | 
					
						
							|  |  |  |  |                                       InTime = string.Format("{0:yyyy-MM-dd}", x.InTime), | 
					
						
							|  |  |  |  |                                       OutTime = string.Format("{0:yyyy-MM-dd}", x.OutTime), | 
					
						
							|  |  |  |  |                                       OutResult = x.OutResult, | 
					
						
							|  |  |  |  |                                       Telephone = x.Telephone, | 
					
						
							|  |  |  |  |                                       PhotoUrl = x.PhotoUrl, | 
					
						
							|  |  |  |  |                                       IsUsed = x.IsUsed, | 
					
						
							|  |  |  |  |                                       IsUsedName = (x.IsUsed == true ? "启用" : "未启用"), | 
					
						
							|  |  |  |  |                                       WorkAreaId = x.WorkAreaId, | 
					
						
							|  |  |  |  |                                       WorkAreaName = UnitWorkService.GetUnitWorkName(x.WorkAreaId), | 
					
						
							|  |  |  |  |                                       PostType = ReturnQuality(x.PersonId, x.WorkPostId), | 
					
						
							|  |  |  |  |                                       //PostTypeName = db.Sys_Const.First(p => p.GroupId == ConstValue.Group_PostType && p.ConstValue == p.PostType).ConstText, | 
					
						
							|  |  |  |  |                                       IsForeign = x.IsForeign.HasValue ? x.IsForeign : false, | 
					
						
							|  |  |  |  |                                       IsOutside = x.IsOutside.HasValue ? x.IsOutside : false, | 
					
						
							|  |  |  |  |                                   }; | 
					
						
							|  |  |  |  |                     if (pageIndex > 0) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         return persons.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         return persons.ToList(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name=""></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         private static string ReturnQuality(string personId, string workPostId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 string postType = ""; | 
					
						
							|  |  |  |  |                 var workPost = db.Base_WorkPost.FirstOrDefault(x => x.WorkPostId == workPostId); | 
					
						
							|  |  |  |  |                 if (workPost != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     if (workPost.PostType == Const.PostType_2) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         var getPerQ = db.QualityAudit_PersonQuality.FirstOrDefault(x => x.PersonId == personId && x.States == Const.State_2 && x.LimitDate >= DateTime.Now.AddMonths(1)); | 
					
						
							|  |  |  |  |                         if (getPerQ == null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             postType = "1"; | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else if (workPost.PostType == Const.PostType_5) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         var getPerQ = db.QualityAudit_EquipmentPersonQuality.FirstOrDefault(x => x.PersonId == personId && x.States == Const.State_2 && x.LimitDate >= DateTime.Now.AddMonths(1)); | 
					
						
							|  |  |  |  |                         if (getPerQ == null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             postType = "3"; | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     if (workPost.IsHsse == true) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         var getPerQ = db.QualityAudit_SafePersonQuality.FirstOrDefault(x => x.PersonId == personId && x.States == Const.State_2 && x.LimitDate >= DateTime.Now.AddMonths(1)); | 
					
						
							|  |  |  |  |                         if (getPerQ == null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             postType = "2"; | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 return postType; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 根据培训类型获取项目培训人员信息 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据培训类型获取项目培训人员信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId">项目ID</param> | 
					
						
							|  |  |  |  |         /// <param name="unitIds">培训单位ID</param> | 
					
						
							|  |  |  |  |         /// <param name="workPostIds">培训岗位ID</param> | 
					
						
							|  |  |  |  |         /// <param name="trainTypeId">培训类型ID</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.PersonItem> getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 List<string> unitIdList = Funs.GetStrListByStr(unitIds, ','); | 
					
						
							|  |  |  |  |                 var getPersons = from x in db.View_SitePerson_Person | 
					
						
							|  |  |  |  |                                  where x.ProjectId == projectId && unitIdList.Contains(x.UnitId) && x.IsUsed == true | 
					
						
							|  |  |  |  |                                  && x.InTime <= DateTime.Now && (!x.OutTime.HasValue || x.OutTime >= DateTime.Now) | 
					
						
							|  |  |  |  |                                  select new Model.PersonItem | 
					
						
							|  |  |  |  |                                  { | 
					
						
							|  |  |  |  |                                      PersonId = x.PersonId, | 
					
						
							|  |  |  |  |                                      CardNo = x.CardNo, | 
					
						
							|  |  |  |  |                                      PersonName = x.PersonName, | 
					
						
							|  |  |  |  |                                      SexName = x.SexName, | 
					
						
							|  |  |  |  |                                      IdentityCard = x.IdentityCard, | 
					
						
							|  |  |  |  |                                      Address = x.Address, | 
					
						
							|  |  |  |  |                                      ProjectId = x.ProjectId, | 
					
						
							|  |  |  |  |                                      ProjectCode = x.ProjectCode, | 
					
						
							|  |  |  |  |                                      ProjectName = x.ProjectName, | 
					
						
							|  |  |  |  |                                      UnitId = x.UnitId, | 
					
						
							|  |  |  |  |                                      UnitCode = x.UnitCode, | 
					
						
							|  |  |  |  |                                      UnitName = x.UnitName, | 
					
						
							|  |  |  |  |                                      TeamGroupId = x.TeamGroupId, | 
					
						
							|  |  |  |  |                                      TeamGroupName = x.TeamGroupName, | 
					
						
							|  |  |  |  |                                      WorkPostId = x.WorkPostId, | 
					
						
							|  |  |  |  |                                      WorkPostName = x.WorkPostName, | 
					
						
							|  |  |  |  |                                      InTime = string.Format("{0:yyyy-MM-dd}", x.InTime), | 
					
						
							|  |  |  |  |                                      OutTime = string.Format("{0:yyyy-MM-dd}", x.OutTime), | 
					
						
							|  |  |  |  |                                      OutResult = x.OutResult, | 
					
						
							|  |  |  |  |                                      Telephone = x.Telephone, | 
					
						
							|  |  |  |  |                                      PhotoUrl = x.PhotoUrl, | 
					
						
							|  |  |  |  |                                      DepartName = x.DepartName, | 
					
						
							|  |  |  |  |                                  }; | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(workPostIds)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     List<string> workPostIdList = Funs.GetStrListByStr(workPostIds, ','); | 
					
						
							|  |  |  |  |                     getPersons = getPersons.Where(x => workPostIdList.Contains(x.WorkPostId)); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 List<Model.PersonItem> getTrainPersonList = new List<Model.PersonItem>(); | 
					
						
							|  |  |  |  |                 var getTrainType = TrainTypeService.GetTrainTypeById(trainTypeId); | 
					
						
							|  |  |  |  |                 if (getTrainType != null && (!getTrainType.IsRepeat.HasValue || getTrainType.IsRepeat == false)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     foreach (var item in getPersons) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         var getTrainPersonIdList1 = (from x in db.EduTrain_TrainRecordDetail | 
					
						
							|  |  |  |  |                                                      join y in db.EduTrain_TrainRecord on x.TrainingId equals y.TrainingId | 
					
						
							|  |  |  |  |                                                      where y.ProjectId == projectId && y.TrainTypeId == trainTypeId && x.CheckResult == true && x.PersonId == item.PersonId | 
					
						
							|  |  |  |  |                                                      select x).FirstOrDefault(); | 
					
						
							|  |  |  |  |                         if (getTrainPersonIdList1 == null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             var getTrainPersonIdList2 = (from x in db.Training_Task | 
					
						
							|  |  |  |  |                                                          join y in db.Training_Plan on x.PlanId equals y.PlanId | 
					
						
							|  |  |  |  |                                                          where y.ProjectId == projectId && y.TrainTypeId == trainTypeId && y.States != "3" && x.UserId == item.PersonId | 
					
						
							|  |  |  |  |                                                          select x).FirstOrDefault(); | 
					
						
							|  |  |  |  |                             if (getTrainPersonIdList2 == null) | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 getTrainPersonList.Add(item); | 
					
						
							|  |  |  |  |                             } | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     return getTrainPersonList; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     return getPersons.ToList(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 根据培训类型获取项目培训人员信息 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据培训类型获取项目培训人员信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId">项目ID</param> | 
					
						
							|  |  |  |  |         /// <param name="unitIds">培训单位ID</param> | 
					
						
							|  |  |  |  |         /// <param name="workPostIds">培训岗位ID</param> | 
					
						
							|  |  |  |  |         /// <param name="trainTypeId">培训类型ID</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.PersonItem> getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, string strParam) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 List<string> unitIdList = Funs.GetStrListByStr(unitIds, ','); | 
					
						
							|  |  |  |  |                 var getPersons = from x in db.View_SitePerson_Person | 
					
						
							|  |  |  |  |                                  where unitIdList.Contains(x.UnitId) && x.IsUsed == true | 
					
						
							|  |  |  |  |                                  && x.InTime <= DateTime.Now && (!x.OutTime.HasValue || x.OutTime >= DateTime.Now) | 
					
						
							|  |  |  |  |                                  select new Model.PersonItem | 
					
						
							|  |  |  |  |                                  { | 
					
						
							|  |  |  |  |                                      PersonId = x.PersonId, | 
					
						
							|  |  |  |  |                                      CardNo = x.CardNo, | 
					
						
							|  |  |  |  |                                      PersonName = x.PersonName, | 
					
						
							|  |  |  |  |                                      SexName = x.SexName, | 
					
						
							|  |  |  |  |                                      IdentityCard = x.IdentityCard, | 
					
						
							|  |  |  |  |                                      Address = x.Address, | 
					
						
							|  |  |  |  |                                      ProjectId = x.ProjectId, | 
					
						
							|  |  |  |  |                                      ProjectCode = x.ProjectCode, | 
					
						
							|  |  |  |  |                                      ProjectName = x.ProjectName, | 
					
						
							|  |  |  |  |                                      UnitId = x.UnitId, | 
					
						
							|  |  |  |  |                                      UnitCode = x.UnitCode, | 
					
						
							|  |  |  |  |                                      UnitName = x.UnitName, | 
					
						
							|  |  |  |  |                                      TeamGroupId = x.TeamGroupId, | 
					
						
							|  |  |  |  |                                      TeamGroupName = x.TeamGroupName, | 
					
						
							|  |  |  |  |                                      WorkPostId = x.WorkPostId, | 
					
						
							|  |  |  |  |                                      WorkPostName = x.WorkPostName, | 
					
						
							|  |  |  |  |                                      InTime = string.Format("{0:yyyy-MM-dd}", x.InTime), | 
					
						
							|  |  |  |  |                                      OutTime = string.Format("{0:yyyy-MM-dd}", x.OutTime), | 
					
						
							|  |  |  |  |                                      OutResult = x.OutResult, | 
					
						
							|  |  |  |  |                                      Telephone = x.Telephone, | 
					
						
							|  |  |  |  |                                      PhotoUrl = x.PhotoUrl, | 
					
						
							|  |  |  |  |                                      DepartName = x.DepartName, | 
					
						
							|  |  |  |  |                                  }; | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(projectId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getPersons = getPersons.Where(x => x.ProjectId == projectId); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getPersons = getPersons.Where(x => x.ProjectId == null); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(strParam)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getPersons = getPersons.Where(x => x.PersonName.Contains(strParam)); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(workPostIds)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     List<string> workPostIdList = Funs.GetStrListByStr(workPostIds, ','); | 
					
						
							|  |  |  |  |                     getPersons = getPersons.Where(x => workPostIdList.Contains(x.WorkPostId)); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 List<Model.PersonItem> getTrainPersonList = new List<Model.PersonItem>(); | 
					
						
							|  |  |  |  |                 var getTrainType = TrainTypeService.GetTrainTypeById(trainTypeId); | 
					
						
							|  |  |  |  |                 if (getTrainType != null && (!getTrainType.IsRepeat.HasValue || getTrainType.IsRepeat == false)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     foreach (var item in getPersons) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         var getTrainPersonIdList1 = (from x in db.EduTrain_TrainRecordDetail | 
					
						
							|  |  |  |  |                                                      join y in db.EduTrain_TrainRecord on x.TrainingId equals y.TrainingId | 
					
						
							|  |  |  |  |                                                      where y.ProjectId == projectId && y.TrainTypeId == trainTypeId && x.CheckResult == true && x.PersonId == item.PersonId | 
					
						
							|  |  |  |  |                                                      select x).FirstOrDefault(); | 
					
						
							|  |  |  |  |                         if (getTrainPersonIdList1 == null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             var getTrainPersonIdList2 = (from x in db.Training_Task | 
					
						
							|  |  |  |  |                                                          join y in db.Training_Plan on x.PlanId equals y.PlanId | 
					
						
							|  |  |  |  |                                                          where y.ProjectId == projectId && y.TrainTypeId == trainTypeId && y.States != "3" && x.UserId == item.PersonId | 
					
						
							|  |  |  |  |                                                          select x).FirstOrDefault(); | 
					
						
							|  |  |  |  |                             if (getTrainPersonIdList2 == null) | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 getTrainPersonList.Add(item); | 
					
						
							|  |  |  |  |                             } | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     return getTrainPersonList.ToList(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     return getPersons.ToList(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据培训类型获取项目培训人员信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId">项目ID</param> | 
					
						
							|  |  |  |  |         /// <param name="unitIds">培训单位ID</param> | 
					
						
							|  |  |  |  |         /// <param name="workPostIds">培训岗位ID</param> | 
					
						
							|  |  |  |  |         /// <param name="trainTypeId">培训类型ID</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.PersonItem> getTrainingPersonListByTrainTypeId(Model.PersonItem person) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB  db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 List<string> unitIdList = Funs.GetStrListByStr(person.UnitId, ','); | 
					
						
							|  |  |  |  |                 var getPersons = from x in db.View_SitePerson_Person | 
					
						
							|  |  |  |  |                                  where unitIdList.Contains(x.UnitId) && x.IsUsed == true | 
					
						
							|  |  |  |  |                                  && (!x.OutTime.HasValue || x.OutTime >= DateTime.Now) | 
					
						
							|  |  |  |  |                                  select x; | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(person.ProjectId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getPersons = getPersons.Where(x => x.ProjectId == person.ProjectId); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getPersons = getPersons.Where(x => x.ProjectId == null); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(person.strParam)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getPersons = getPersons.Where(x => x.PersonName.Contains(person.strParam)); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(person.WorkPostId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     List<string> workPostIdList = Funs.GetStrListByStr(person.WorkPostId, ','); | 
					
						
							|  |  |  |  |                     getPersons = getPersons.Where(x => workPostIdList.Contains(x.WorkPostId)); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(person.InTime)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     DateTime? intimeD = Funs.GetNewDateTime(person.InTime); | 
					
						
							|  |  |  |  |                     getPersons = getPersons.Where(x => x.InTime == intimeD); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 var getPersonItems = from x in getPersons | 
					
						
							|  |  |  |  |                                      select new Model.PersonItem | 
					
						
							|  |  |  |  |                                      { | 
					
						
							|  |  |  |  |                                          PersonId = x.PersonId, | 
					
						
							|  |  |  |  |                                          CardNo = x.CardNo, | 
					
						
							|  |  |  |  |                                          PersonName = x.PersonName, | 
					
						
							|  |  |  |  |                                          SexName = x.SexName, | 
					
						
							|  |  |  |  |                                          IdentityCard = x.IdentityCard, | 
					
						
							|  |  |  |  |                                          Address = x.Address, | 
					
						
							|  |  |  |  |                                          ProjectId = x.ProjectId, | 
					
						
							|  |  |  |  |                                          ProjectCode = x.ProjectCode, | 
					
						
							|  |  |  |  |                                          ProjectName = x.ProjectName, | 
					
						
							|  |  |  |  |                                          UnitId = x.UnitId, | 
					
						
							|  |  |  |  |                                          UnitCode = x.UnitCode, | 
					
						
							|  |  |  |  |                                          UnitName = x.UnitName, | 
					
						
							|  |  |  |  |                                          TeamGroupId = x.TeamGroupId, | 
					
						
							|  |  |  |  |                                          TeamGroupName = x.TeamGroupName, | 
					
						
							|  |  |  |  |                                          WorkPostId = x.WorkPostId, | 
					
						
							|  |  |  |  |                                          WorkPostName = x.WorkPostName, | 
					
						
							|  |  |  |  |                                          InTime = string.Format("{0:yyyy-MM-dd}", x.InTime), | 
					
						
							|  |  |  |  |                                          OutTime = string.Format("{0:yyyy-MM-dd}", x.OutTime), | 
					
						
							|  |  |  |  |                                          OutResult = x.OutResult, | 
					
						
							|  |  |  |  |                                          Telephone = x.Telephone, | 
					
						
							|  |  |  |  |                                          PhotoUrl = x.PhotoUrl, | 
					
						
							|  |  |  |  |                                          DepartName = x.DepartName, | 
					
						
							|  |  |  |  |                                      }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 List<Model.PersonItem> getTrainPersonList = new List<Model.PersonItem>(); | 
					
						
							|  |  |  |  |                 var getTrainType = TrainTypeService.GetTrainTypeById(person.TrainTypeId); | 
					
						
							|  |  |  |  |                 if (getTrainType != null && (!getTrainType.IsRepeat.HasValue || getTrainType.IsRepeat == false)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     foreach (var item in getPersonItems) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         var getTrainPersonIdList1 = (from x in db.EduTrain_TrainRecordDetail | 
					
						
							|  |  |  |  |                                                      join y in db.EduTrain_TrainRecord on x.TrainingId equals y.TrainingId | 
					
						
							|  |  |  |  |                                                      where y.ProjectId == person.ProjectId && y.TrainTypeId == person.TrainTypeId && x.CheckResult == true && x.PersonId == item.PersonId | 
					
						
							|  |  |  |  |                                                      select x).FirstOrDefault(); | 
					
						
							|  |  |  |  |                         if (getTrainPersonIdList1 == null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             var getTrainPersonIdList2 = (from x in db.Training_Task | 
					
						
							|  |  |  |  |                                                          join y in db.Training_Plan on x.PlanId equals y.PlanId | 
					
						
							|  |  |  |  |                                                          where y.ProjectId == person.ProjectId && y.TrainTypeId == person.TrainTypeId && y.States != "3" && x.UserId == item.PersonId | 
					
						
							|  |  |  |  |                                                          select x).FirstOrDefault(); | 
					
						
							|  |  |  |  |                             if (getTrainPersonIdList2 == null) | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 getTrainPersonList.Add(item); | 
					
						
							|  |  |  |  |                             } | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     return getTrainPersonList.ToList(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     return getPersonItems.ToList(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 人员信息保存方法 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 人员信息保存方法 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="person">人员信息</param> | 
					
						
							|  |  |  |  |         public static string SaveSitePerson(Model.PersonItem person) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Model.SitePerson_Person newPerson = new Model.SitePerson_Person | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     PersonId = person.PersonId, | 
					
						
							|  |  |  |  |                     ProjectId = person.ProjectId, | 
					
						
							|  |  |  |  |                     CardNo = person.CardNo, | 
					
						
							|  |  |  |  |                     PersonName = person.PersonName, | 
					
						
							|  |  |  |  |                     IdentityCard = person.IdentityCard.Trim(), | 
					
						
							|  |  |  |  |                     Address = person.Address, | 
					
						
							|  |  |  |  |                     UnitId = person.UnitId, | 
					
						
							|  |  |  |  |                     OutResult = person.OutResult, | 
					
						
							|  |  |  |  |                     Telephone = person.Telephone, | 
					
						
							|  |  |  |  |                     PhotoUrl = person.PhotoUrl, | 
					
						
							|  |  |  |  |                     IDCardUrl = person.AttachUrl1, | 
					
						
							|  |  |  |  |                     InTime = Funs.GetNewDateTime(person.InTime), | 
					
						
							|  |  |  |  |                     OutTime = Funs.GetNewDateTime(person.OutTime), | 
					
						
							|  |  |  |  |                     AuditorId = person.AuditorId, | 
					
						
							|  |  |  |  |                     IsForeign = person.IsForeign, | 
					
						
							|  |  |  |  |                     IsOutside = person.IsOutside, | 
					
						
							|  |  |  |  |                     //AuditorDate = Funs.GetNewDateTime(person.AuditorDate), | 
					
						
							|  |  |  |  |                     Sex = person.Sex, | 
					
						
							|  |  |  |  |                     WorkAreaId = person.WorkAreaId,                    | 
					
						
							|  |  |  |  |                     IdcardStartDate = Funs.GetNewDateTime(person.IdcardStartDate), | 
					
						
							|  |  |  |  |                     IdcardEndDate = Funs.GetNewDateTime(person.IdcardEndDate), | 
					
						
							|  |  |  |  |                     IdcardForever=person.IdcardForever, | 
					
						
							|  |  |  |  |                     IdcardAddress = person.IdcardAddress, | 
					
						
							|  |  |  |  |                     IdcardType= "SHENFEN_ZHENGJIAN", | 
					
						
							|  |  |  |  |                 }; | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(person.TeamGroupId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.TeamGroupId = person.TeamGroupId; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(person.WorkPostId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.WorkPostId = person.WorkPostId; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 //if (!string.IsNullOrEmpty(person.IdcardType)) | 
					
						
							|  |  |  |  |                 //{ | 
					
						
							|  |  |  |  |                 //    newPerson.IdcardType = person.IdcardType; | 
					
						
							|  |  |  |  |                 //} | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(person.PoliticsStatus)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.PoliticsStatus = person.PoliticsStatus; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(person.Nation)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.Nation = person.Nation; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(person.EduLevel)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.EduLevel = person.EduLevel; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(person.MaritalStatus)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.MaritalStatus = person.MaritalStatus; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(person.CountryCode)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.CountryCode = person.CountryCode; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(person.ProvinceCode)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.ProvinceCode = person.ProvinceCode; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(person.MainCNProfessionalId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.MainCNProfessionalId = person.MainCNProfessionalId; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(person.ViceCNProfessionalId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.ViceCNProfessionalId = person.ViceCNProfessionalId; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (person.IsUsed == true) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.IsUsed = true; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.IsUsed = false; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 newPerson.Password = PersonService.GetPersonPassWord(person.IdentityCard); | 
					
						
							|  |  |  |  |                 string rootUrl = ConfigurationManager.AppSettings["localRoot"]; | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(rootUrl) && !string.IsNullOrEmpty(person.PhotoUrl)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.HeadImage = AttachFileService.SetImageToByteArray(rootUrl + person.PhotoUrl); | 
					
						
							|  |  |  |  |                 }                 | 
					
						
							|  |  |  |  |                 var getPerson = db.SitePerson_Person.FirstOrDefault(x => (x.IdentityCard == newPerson.IdentityCard && x.ProjectId == newPerson.ProjectId) || x.PersonId == newPerson.PersonId); | 
					
						
							|  |  |  |  |                 if (getPerson == null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.Isprint = "0"; | 
					
						
							|  |  |  |  |                     newPerson.PersonId = SQLHelper.GetNewID(); | 
					
						
							| 
									
										
										
										
											2021-08-30 21:49:56 +08:00
										 |  |  |  |                     newPerson.IsCardNoOK = IDCardValid.CheckIDCard(person.IdentityCard); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                     db.SitePerson_Person.InsertOnSubmit(newPerson); | 
					
						
							|  |  |  |  |                     db.SubmitChanges(); | 
					
						
							|  |  |  |  |                     CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(Const.PersonListMenuId, person.ProjectId, person.UnitId, person.PersonId, newPerson.InTime); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPerson.PersonId = getPerson.PersonId; | 
					
						
							|  |  |  |  |                     getPerson.ProjectId = person.ProjectId; | 
					
						
							|  |  |  |  |                     getPerson.CardNo = person.CardNo; | 
					
						
							|  |  |  |  |                     getPerson.PersonName = person.PersonName; | 
					
						
							|  |  |  |  |                     getPerson.IdentityCard = person.IdentityCard; | 
					
						
							|  |  |  |  |                     getPerson.Address = person.Address; | 
					
						
							|  |  |  |  |                     getPerson.UnitId = person.UnitId; | 
					
						
							|  |  |  |  |                     getPerson.OutResult = person.OutResult; | 
					
						
							|  |  |  |  |                     getPerson.Telephone = person.Telephone; | 
					
						
							|  |  |  |  |                     getPerson.Password = newPerson.Password; | 
					
						
							|  |  |  |  |                     getPerson.MainCNProfessionalId = newPerson.MainCNProfessionalId; | 
					
						
							|  |  |  |  |                     getPerson.ViceCNProfessionalId = newPerson.ViceCNProfessionalId; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     getPerson.IdcardStartDate = newPerson.IdcardStartDate; | 
					
						
							|  |  |  |  |                     getPerson.IdcardEndDate = newPerson.IdcardEndDate; | 
					
						
							|  |  |  |  |                     getPerson.IdcardForever = newPerson.IdcardForever; | 
					
						
							|  |  |  |  |                     getPerson.IdcardAddress = newPerson.IdcardAddress; | 
					
						
							|  |  |  |  |                     getPerson.IdcardType = newPerson.IdcardType; | 
					
						
							|  |  |  |  |                     getPerson.EduLevel = newPerson.EduLevel; | 
					
						
							|  |  |  |  |                     getPerson.MaritalStatus = newPerson.MaritalStatus; | 
					
						
							|  |  |  |  |                     getPerson.PoliticsStatus = newPerson.PoliticsStatus; | 
					
						
							|  |  |  |  |                     getPerson.Nation = newPerson.Nation; | 
					
						
							|  |  |  |  |                     getPerson.CountryCode = newPerson.CountryCode; | 
					
						
							|  |  |  |  |                     getPerson.ProvinceCode = newPerson.ProvinceCode; | 
					
						
							|  |  |  |  |                     getPerson.MainCNProfessionalId = newPerson.MainCNProfessionalId; | 
					
						
							|  |  |  |  |                     getPerson.ViceCNProfessionalId = newPerson.ViceCNProfessionalId; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     if (!string.IsNullOrEmpty(person.PhotoUrl)) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         getPerson.PhotoUrl = person.PhotoUrl; | 
					
						
							|  |  |  |  |                         getPerson.HeadImage = newPerson.HeadImage; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     if (!string.IsNullOrEmpty(person.AttachUrl1)) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         getPerson.IDCardUrl = person.AttachUrl1; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     getPerson.InTime = Funs.GetNewDateTime(person.InTime); | 
					
						
							|  |  |  |  |                     getPerson.OutTime = Funs.GetNewDateTime(person.OutTime); | 
					
						
							|  |  |  |  |                     getPerson.Sex = person.Sex; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     // getPerson.AuditorDate = Funs.GetNewDateTime(person.AuditorDate); | 
					
						
							|  |  |  |  |                     if (!string.IsNullOrEmpty(person.TeamGroupId)) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         getPerson.TeamGroupId = person.TeamGroupId; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     if (!string.IsNullOrEmpty(person.WorkPostId)) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         getPerson.WorkPostId = person.WorkPostId; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     if (!string.IsNullOrEmpty(person.WorkAreaId)) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         getPerson.WorkAreaId = person.WorkAreaId; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     if (getPerson.AuditorDate.HasValue && getPerson.IsUsed == false) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         getPerson.AuditorDate = null; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         getPerson.IsUsed = person.IsUsed; | 
					
						
							|  |  |  |  |                         getPerson.AuditorDate = DateTime.Now; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     getPerson.AuditorId = person.AuditorId; | 
					
						
							|  |  |  |  |                     if (!newPerson.OutTime.HasValue) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         getPerson.OutTime = null; | 
					
						
							|  |  |  |  |                         getPerson.ExchangeTime = null; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     getPerson.ExchangeTime2 = null; | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |                     getPerson.RealNameUpdateTime = null; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                     getPerson.IsForeign = person.IsForeign; | 
					
						
							|  |  |  |  |                     getPerson.IsOutside = person.IsOutside; | 
					
						
							| 
									
										
										
										
											2021-08-30 21:49:56 +08:00
										 |  |  |  |                     getPerson.IsCardNoOK = IDCardValid.CheckIDCard(getPerson.IdentityCard); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                     db.SubmitChanges(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(newPerson.PersonId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     SaveMeetUrl(newPerson.PersonId, Const.PersonListMenuId, person.AttachUrl1, person.AttachUrl2, person.AttachUrl3, person.AttachUrl4, person.AttachUrl5); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 // 更新同身份证号码用户的电话 | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(newPerson.Telephone)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     var getUser = db.Sys_User.FirstOrDefault(x => x.IdentityCard == newPerson.IdentityCard); | 
					
						
							|  |  |  |  |                     if (getUser != null) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         getUser.Telephone = newPerson.Telephone; | 
					
						
							|  |  |  |  |                         db.SubmitChanges(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 if (!newPerson.AuditorDate.HasValue && string.IsNullOrEmpty(newPerson.AuditorId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     APICommonService.SendSubscribeMessage(newPerson.AuditorId, "人员信息待您审核", person.ProjectCode, string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now)); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 return newPerson.PersonId; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 人员附件保存方法 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 人员附件保存方法 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static void SaveMeetUrl(string personId, string menuId, string url1, string url2, string url3, string url4, string url5) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.ToDoItem toDoItem = new Model.ToDoItem | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 MenuId = menuId, | 
					
						
							|  |  |  |  |                 DataId = personId + "#1", | 
					
						
							|  |  |  |  |                 UrlStr = url1, | 
					
						
							|  |  |  |  |             }; | 
					
						
							|  |  |  |  |             if (!string.IsNullOrEmpty(url1)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 APIUpLoadFileService.SaveAttachUrl(toDoItem); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             toDoItem.DataId = personId + "#2"; | 
					
						
							|  |  |  |  |             toDoItem.UrlStr = url2; | 
					
						
							|  |  |  |  |             if (!string.IsNullOrEmpty(url2)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 APIUpLoadFileService.SaveAttachUrl(toDoItem); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             toDoItem.DataId = personId + "#3"; | 
					
						
							|  |  |  |  |             toDoItem.UrlStr = url3; | 
					
						
							|  |  |  |  |             if (!string.IsNullOrEmpty(url3)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 APIUpLoadFileService.SaveAttachUrl(toDoItem); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             toDoItem.DataId = personId + "#4"; | 
					
						
							|  |  |  |  |             toDoItem.UrlStr = url4; | 
					
						
							|  |  |  |  |             if (!string.IsNullOrEmpty(url4)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 APIUpLoadFileService.SaveAttachUrl(toDoItem); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             toDoItem.DataId = personId + "#5"; | 
					
						
							|  |  |  |  |             toDoItem.UrlStr = url5; | 
					
						
							|  |  |  |  |             if (!string.IsNullOrEmpty(url5)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 APIUpLoadFileService.SaveAttachUrl(toDoItem); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 更新人员附件 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 更新人员附件 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="person"></param> | 
					
						
							|  |  |  |  |         public static void SaveSitePersonAttachment(Model.PersonItem person) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var getPerson = db.SitePerson_Person.FirstOrDefault(x => x.IdentityCard == person.IdentityCard || x.PersonId == person.PersonId); | 
					
						
							|  |  |  |  |                 if (getPerson != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     if (!string.IsNullOrEmpty(person.PhotoUrl)) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         getPerson.PhotoUrl = person.PhotoUrl; | 
					
						
							|  |  |  |  |                         string rootUrl = ConfigurationManager.AppSettings["localRoot"]; | 
					
						
							|  |  |  |  |                         if (!string.IsNullOrEmpty(rootUrl) && !string.IsNullOrEmpty(person.PhotoUrl)) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             getPerson.HeadImage = AttachFileService.SetImageToByteArray(rootUrl + person.PhotoUrl); | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     if (!string.IsNullOrEmpty(person.AttachUrl1)) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         getPerson.IDCardUrl = person.AttachUrl1; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     db.SubmitChanges(); | 
					
						
							|  |  |  |  |                     SaveMeetUrl(getPerson.PersonId, Const.PersonListMenuId, person.AttachUrl1, person.AttachUrl2, person.AttachUrl3, person.AttachUrl4, person.AttachUrl5); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 人员离场 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 人员离场 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="personId"></param> | 
					
						
							|  |  |  |  |         public static void getPersonOut(string personId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (!string.IsNullOrEmpty(personId)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     List<string> getLists = Funs.GetStrListByStr(personId, ','); | 
					
						
							|  |  |  |  |                     foreach (var item in getLists) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         var getPerson = db.SitePerson_Person.FirstOrDefault(x => x.PersonId == item); | 
					
						
							|  |  |  |  |                         if (getPerson != null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             getPerson.OutTime = DateTime.Now; | 
					
						
							|  |  |  |  |                             PersonService.UpdatePerson(getPerson); | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 人员出入场 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 人员出入场 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param>w | 
					
						
							|  |  |  |  |         /// <param name="idCard"></param> | 
					
						
							|  |  |  |  |         /// <param name="isIn"></param> | 
					
						
							|  |  |  |  |         /// <param name="changeTime"></param> | 
					
						
							|  |  |  |  |         public static void getPersonInOut(string projectId, string idCard, int isIn, DateTime changeTime) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (!string.IsNullOrEmpty(idCard)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     var getPerson = db.SitePerson_Person.FirstOrDefault(x => x.ProjectId == projectId && x.IdentityCard == idCard); | 
					
						
							|  |  |  |  |                     if (getPerson != null) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         string postType = null; | 
					
						
							|  |  |  |  |                         var getWokPost = db.Base_WorkPost.FirstOrDefault(x => x.WorkPostId == getPerson.WorkPostId); | 
					
						
							|  |  |  |  |                         if (getWokPost != null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             postType = getWokPost.PostType; | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                         var getPersonInOut = db.SitePerson_PersonInOut.FirstOrDefault(x => x.PersonId == getPerson.PersonId && x.ProjectId == projectId && x.ChangeTime == changeTime); | 
					
						
							|  |  |  |  |                         if (getPersonInOut == null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             Model.SitePerson_PersonInOut newInOut = new Model.SitePerson_PersonInOut | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 PersonInOutId = SQLHelper.GetNewID(), | 
					
						
							|  |  |  |  |                                 ProjectId = projectId, | 
					
						
							|  |  |  |  |                                 UnitId = getPerson.UnitId, | 
					
						
							|  |  |  |  |                                 PersonId = getPerson.PersonId, | 
					
						
							|  |  |  |  |                                 IsIn = isIn == 1 ? true : false, | 
					
						
							|  |  |  |  |                                 ChangeTime = changeTime, | 
					
						
							|  |  |  |  |                                 WorkPostId = getPerson.WorkPostId, | 
					
						
							|  |  |  |  |                                 PostType = postType, | 
					
						
							|  |  |  |  |                             }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                             db.SitePerson_PersonInOut.InsertOnSubmit(newInOut); | 
					
						
							|  |  |  |  |                             db.SubmitChanges(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-08 20:34:29 +08:00
										 |  |  |  |                             string proCode = ProjectService.GetJTProjectCodeByProjectId(projectId); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             Model.SitePerson_PersonInOutNow newNow = new Model.SitePerson_PersonInOutNow | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 PersonInOutId = newInOut.PersonInOutId, | 
					
						
							|  |  |  |  |                                 ProjectId = newInOut.ProjectId, | 
					
						
							|  |  |  |  |                                 UnitId = newInOut.UnitId, | 
					
						
							|  |  |  |  |                                 PersonId = newInOut.PersonId, | 
					
						
							|  |  |  |  |                                 IsIn = newInOut.IsIn, | 
					
						
							|  |  |  |  |                                 ChangeTime = newInOut.ChangeTime, | 
					
						
							|  |  |  |  |                                 WorkPostId = newInOut.WorkPostId, | 
					
						
							|  |  |  |  |                                 PostType = newInOut.PostType, | 
					
						
							|  |  |  |  |                                 ProCode = proCode, | 
					
						
							|  |  |  |  |                                 Name = getPerson.PersonName, | 
					
						
							|  |  |  |  |                                 IdcardType = getPerson.IdcardType, | 
					
						
							|  |  |  |  |                                 IdcardNumber = getPerson.IdentityCard, | 
					
						
							|  |  |  |  |                             }; | 
					
						
							| 
									
										
										
										
											2021-09-08 15:15:08 +08:00
										 |  |  |  |                             if (!getPerson.OutTime.HasValue || getPerson.OutTime > DateTime.Now) | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 //// 插入当日记录表 | 
					
						
							|  |  |  |  |                                 PersonInOutService.InsertPersonInOutNowNow(newNow); | 
					
						
							|  |  |  |  |                                 // GetDataService.CorrectingPersonInOutNumber(projectId); | 
					
						
							|  |  |  |  |                             } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion         | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |         #region 获取人员信息出入场记录        | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取人员信息出入场记录 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							|  |  |  |  |         /// <param name="unitId"></param> | 
					
						
							|  |  |  |  |         /// <param name="strParam"></param> | 
					
						
							|  |  |  |  |         /// <param name="startTime"></param> | 
					
						
							|  |  |  |  |         /// <param name="endTime"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.PersonInOutItem> getPersonInOutList(string projectId, string unitId, string startTime, string endTime) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 DateTime? startTimeD = Funs.GetNewDateTime(startTime); | 
					
						
							|  |  |  |  |                 DateTime? endTimeD = Funs.GetNewDateTime(endTime); | 
					
						
							|  |  |  |  |                 var personInOuts = from x in db.SitePerson_PersonInOut | 
					
						
							|  |  |  |  |                                    join y in db.SitePerson_Person on x.PersonId equals y.PersonId | 
					
						
							|  |  |  |  |                                    where x.ProjectId == projectId | 
					
						
							|  |  |  |  |                                    select new Model.PersonInOutItem | 
					
						
							|  |  |  |  |                                    { | 
					
						
							|  |  |  |  |                                        PersonId = x.PersonId, | 
					
						
							|  |  |  |  |                                        PersonName = y.PersonName, | 
					
						
							|  |  |  |  |                                        ProjectId = x.ProjectId, | 
					
						
							|  |  |  |  |                                        UnitId = y.UnitId, | 
					
						
							|  |  |  |  |                                        UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName, | 
					
						
							|  |  |  |  |                                        WorkPostId = y.WorkPostId, | 
					
						
							|  |  |  |  |                                        WorkPostName = db.Base_WorkPost.First(z => z.WorkPostId == y.WorkPostId).WorkPostName, | 
					
						
							|  |  |  |  |                                        IsIn = x.IsIn, | 
					
						
							|  |  |  |  |                                        IsInName = x.IsIn == true ? "进场" : "出场", | 
					
						
							|  |  |  |  |                                        ChangeTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ChangeTime), | 
					
						
							|  |  |  |  |                                        ChangeTimeD = x.ChangeTime, | 
					
						
							|  |  |  |  |                                    }; | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(unitId) && unitId != Const.UnitId_CWCEC) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     personInOuts = personInOuts.Where(x => x.UnitId == unitId); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 if (startTimeD.HasValue) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     personInOuts = personInOuts.Where(x => x.ChangeTimeD >= startTimeD); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (endTimeD.HasValue) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     personInOuts = personInOuts.Where(x => x.ChangeTimeD <= endTimeD); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 return personInOuts.OrderByDescending(x => x.ChangeTimeD).ToList(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 获取人员信息出入场记录 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static int getPersonInOutListCount | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get; | 
					
						
							|  |  |  |  |             set; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         /// 获取人员信息出入场记录 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							|  |  |  |  |         /// <param name="unitId"></param> | 
					
						
							|  |  |  |  |         /// <param name="strParam"></param> | 
					
						
							|  |  |  |  |         /// <param name="startTime"></param> | 
					
						
							|  |  |  |  |         /// <param name="endTime"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |         public static List<Model.PersonInOutItem> getPersonInOutList(string projectId, string userUnitId, string unitId, string workPostId, string strParam, string startTime, string endTime, int pageIndex) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 DateTime? startTimeD = Funs.GetNewDateTime(startTime); | 
					
						
							|  |  |  |  |                 DateTime? endTimeD = Funs.GetNewDateTime(endTime); | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |                 var getPersonInOutList = from x in db.SitePerson_PersonInOut | 
					
						
							|  |  |  |  |                                          where x.ProjectId == projectId | 
					
						
							|  |  |  |  |                                          select x;                 | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 if (!string.IsNullOrEmpty(userUnitId) && userUnitId != Const.UnitId_CWCEC) | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |                     getPersonInOutList = getPersonInOutList.Where(x => x.UnitId == userUnitId); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(unitId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |                     getPersonInOutList = getPersonInOutList.Where(x => x.UnitId == unitId); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(workPostId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |                     getPersonInOutList = getPersonInOutList.Where(x => x.WorkPostId == workPostId); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (startTimeD.HasValue) | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |                     getPersonInOutList = getPersonInOutList.Where(x => x.ChangeTime >= startTimeD); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (endTimeD.HasValue) | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |                     getPersonInOutList = getPersonInOutList.Where(x => x.ChangeTime <= endTimeD); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(strParam)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |                     getPersonInOutList = from x in getPersonInOutList | 
					
						
							|  |  |  |  |                                          join y in db.SitePerson_Person on x.PersonId equals y.PersonId | 
					
						
							|  |  |  |  |                                          where y.ProjectId == projectId && y.PersonName.Contains(strParam) | 
					
						
							|  |  |  |  |                                          select x;                      | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 getPersonListCount = getPersonInOutList.Count(); | 
					
						
							|  |  |  |  |                 if (getPersonListCount == 0) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     return null; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     var personInOuts = from x in getPersonInOutList | 
					
						
							|  |  |  |  |                                        join y in db.SitePerson_Person on x.PersonId equals y.PersonId | 
					
						
							|  |  |  |  |                                        where x.ProjectId == projectId | 
					
						
							|  |  |  |  |                                        select new Model.PersonInOutItem | 
					
						
							|  |  |  |  |                                        { | 
					
						
							|  |  |  |  |                                            PersonId = x.PersonId, | 
					
						
							|  |  |  |  |                                            PersonName = y.PersonName, | 
					
						
							|  |  |  |  |                                            ProjectId = x.ProjectId, | 
					
						
							|  |  |  |  |                                            UnitId = y.UnitId, | 
					
						
							|  |  |  |  |                                            UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName, | 
					
						
							|  |  |  |  |                                            WorkPostId = y.WorkPostId, | 
					
						
							|  |  |  |  |                                            WorkPostName = db.Base_WorkPost.First(z => z.WorkPostId == y.WorkPostId).WorkPostName, | 
					
						
							|  |  |  |  |                                            IsIn = x.IsIn, | 
					
						
							|  |  |  |  |                                            IsInName = x.IsIn == true ? "进场" : "出场", | 
					
						
							|  |  |  |  |                                            ChangeTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ChangeTime), | 
					
						
							|  |  |  |  |                                            ChangeTimeD = x.ChangeTime, | 
					
						
							|  |  |  |  |                                        }; | 
					
						
							|  |  |  |  |                     if (pageIndex > 0) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         return personInOuts.OrderByDescending(x => x.ChangeTimeD).Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         return personInOuts.ToList(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 根据人员ID获取个人出入场记录 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static int getPersonInOutListByPersonIdCount | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get; | 
					
						
							|  |  |  |  |             set; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         /// 根据人员ID获取个人出入场记录 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="personId"></param> | 
					
						
							|  |  |  |  |         /// <param name="startTime"></param> | 
					
						
							|  |  |  |  |         /// <param name="endTime"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |         public static List<Model.PersonInOutItem> getPersonInOutListByPersonId(string personId, string startTime, string endTime, int pageIndex) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 DateTime? startTimeD = Funs.GetNewDateTime(startTime); | 
					
						
							|  |  |  |  |                 DateTime? endTimeD = Funs.GetNewDateTime(endTime); | 
					
						
							|  |  |  |  |                 var personInOuts = from x in db.SitePerson_PersonInOut | 
					
						
							|  |  |  |  |                                    where x.PersonId == personId | 
					
						
							|  |  |  |  |                                    select new Model.PersonInOutItem | 
					
						
							|  |  |  |  |                                    { | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |                                        PersonInOutId =x.PersonInOutId, | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                        PersonId = x.PersonId, | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |                                        PersonName = db.SitePerson_Person.First(z=>z.PersonId==x.PersonId).PersonName, | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                        ProjectId = x.ProjectId, | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |                                        UnitId = x.UnitId, | 
					
						
							|  |  |  |  |                                        UnitName = db.Base_Unit.First(z => z.UnitId == x.UnitId).UnitName, | 
					
						
							|  |  |  |  |                                        WorkPostId = x.WorkPostId, | 
					
						
							|  |  |  |  |                                        WorkPostName = db.Base_WorkPost.First(z => z.WorkPostId == x.WorkPostId).WorkPostName, | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                        IsIn = x.IsIn, | 
					
						
							|  |  |  |  |                                        IsInName = x.IsIn == true ? "进场" : "出场", | 
					
						
							|  |  |  |  |                                        ChangeTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ChangeTime), | 
					
						
							|  |  |  |  |                                        ChangeTimeD = x.ChangeTime, | 
					
						
							|  |  |  |  |                                    }; | 
					
						
							|  |  |  |  |                 if (startTimeD.HasValue) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     personInOuts = personInOuts.Where(x => x.ChangeTimeD >= startTimeD); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (endTimeD.HasValue) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     personInOuts = personInOuts.Where(x => x.ChangeTimeD <= endTimeD); | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2021-08-12 10:45:31 +08:00
										 |  |  |  |                 getPersonListCount = personInOuts.Count(); | 
					
						
							|  |  |  |  |                 if (getPersonListCount == 0) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     return null; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     if (pageIndex > 0) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         return personInOuts.OrderByDescending(x => x.ChangeTimeD).Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         return personInOuts.ToList(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 根据identityCard获取人员资质信息 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据identityCard获取人员资质信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="identityCard"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static Model.PersonQualityItem getPersonQualityByIdentityCard(string identityCard, string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var getLists = from y in db.SitePerson_Person | 
					
						
							|  |  |  |  |                                join x in db.QualityAudit_PersonQuality on y.PersonId equals x.PersonId | 
					
						
							|  |  |  |  |                                where (y.IdentityCard == identityCard || x.PersonId == identityCard) && (projectId == null || y.ProjectId == projectId) | 
					
						
							|  |  |  |  |                                orderby y.CardNo | 
					
						
							|  |  |  |  |                                select new Model.PersonQualityItem | 
					
						
							|  |  |  |  |                                { | 
					
						
							|  |  |  |  |                                    PersonQualityId = x.PersonQualityId, | 
					
						
							|  |  |  |  |                                    PersonId = x.PersonId, | 
					
						
							|  |  |  |  |                                    PersonName = y.PersonName, | 
					
						
							|  |  |  |  |                                    CardNo = y.CardNo, | 
					
						
							|  |  |  |  |                                    IdentityCard = y.IdentityCard, | 
					
						
							|  |  |  |  |                                    ProjectId = y.ProjectId, | 
					
						
							|  |  |  |  |                                    UnitId = y.UnitId, | 
					
						
							|  |  |  |  |                                    UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName, | 
					
						
							|  |  |  |  |                                    UnitCode = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitCode, | 
					
						
							|  |  |  |  |                                    WorkPostId = y.WorkPostId, | 
					
						
							|  |  |  |  |                                    WorkPostName = db.Base_WorkPost.First(z => z.WorkPostId == y.WorkPostId).WorkPostName, | 
					
						
							|  |  |  |  |                                    CertificateId = x.CertificateId, | 
					
						
							|  |  |  |  |                                    CertificateName = db.Base_Certificate.First(z => z.CertificateId == x.CertificateId).CertificateName, | 
					
						
							|  |  |  |  |                                    CertificateNo = x.CertificateNo, | 
					
						
							|  |  |  |  |                                    Grade = x.Grade, | 
					
						
							|  |  |  |  |                                    SendUnit = x.SendUnit, | 
					
						
							|  |  |  |  |                                    SendDate = string.Format("{0:yyyy-MM-dd}", x.SendDate), | 
					
						
							|  |  |  |  |                                    LimitDate = string.Format("{0:yyyy-MM-dd}", x.LimitDate), | 
					
						
							|  |  |  |  |                                    LateCheckDate = string.Format("{0:yyyy-MM-dd}", x.LateCheckDate), | 
					
						
							|  |  |  |  |                                    ApprovalPerson = db.Sys_User.First(z => z.UserId == x.AuditorId).UserName, | 
					
						
							|  |  |  |  |                                    Remark = x.Remark, | 
					
						
							|  |  |  |  |                                    CompileMan = x.CompileMan, | 
					
						
							|  |  |  |  |                                    CompileManName = db.Sys_User.First(z => z.UserId == x.CompileMan).UserName, | 
					
						
							|  |  |  |  |                                    CompileDate = string.Format("{0:yyyy-MM-dd}", x.CompileDate), | 
					
						
							|  |  |  |  |                                    AuditDate = string.Format("{0:yyyy-MM-dd}", x.AuditDate), | 
					
						
							|  |  |  |  |                                    AuditorName = db.Sys_User.First(z => z.UserId == x.AuditorId).UserName, | 
					
						
							|  |  |  |  |                                    AttachUrl = APIUpLoadFileService.getFileUrl(x.PersonQualityId, null), | 
					
						
							|  |  |  |  |                                }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 return getLists.FirstOrDefault(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 根据identityCard获取人员资质信息 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据identityCard获取人员资质信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="identityCard"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.TestRecordItem> getPersonTestRecoedByIdentityCard(string identityCard, string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var getLists = from x in db.EduTrain_TrainRecordDetail | 
					
						
							|  |  |  |  |                                join y in db.SitePerson_Person on x.PersonId equals y.PersonId | 
					
						
							|  |  |  |  |                                join z in db.EduTrain_TrainRecord on x.TrainingId equals z.TrainingId | 
					
						
							|  |  |  |  |                                where y.IdentityCard == identityCard && (projectId == null || z.ProjectId == projectId) | 
					
						
							|  |  |  |  |                                orderby z.TrainStartDate descending | 
					
						
							|  |  |  |  |                                select new Model.TestRecordItem | 
					
						
							|  |  |  |  |                                { | 
					
						
							|  |  |  |  |                                    TestRecordId = x.TrainDetailId, | 
					
						
							|  |  |  |  |                                    ProjectId = z.ProjectId, | 
					
						
							|  |  |  |  |                                    ProjectName = db.Base_Project.First(u => u.ProjectId == z.ProjectId).ProjectName, | 
					
						
							|  |  |  |  |                                    TestPlanName = z.TrainTitle, | 
					
						
							|  |  |  |  |                                    TestManId = x.PersonId, | 
					
						
							|  |  |  |  |                                    TestManName = y.PersonName, | 
					
						
							|  |  |  |  |                                    TestStartTime = string.Format("{0:yyyy-MM-dd HH:mm}", z.TrainStartDate), | 
					
						
							|  |  |  |  |                                    TestEndTime = string.Format("{0:yyyy-MM-dd HH:mm}", z.TrainEndDate), | 
					
						
							|  |  |  |  |                                    TestScores = x.CheckScore ?? 0, | 
					
						
							|  |  |  |  |                                    CheckResult = x.CheckResult, | 
					
						
							|  |  |  |  |                                    TestType = db.Base_TrainType.First(u => u.TrainTypeId == z.TrainTypeId).TrainTypeName, | 
					
						
							|  |  |  |  |                                }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 return getLists.ToList(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 根据projectId、unitid获取特岗人员资质信息 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据projectId、unitid获取特岗人员资质信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId">项目ID</param> | 
					
						
							|  |  |  |  |         /// <param name="unitId">单位ID</param> | 
					
						
							|  |  |  |  |         /// <param name="type">数据类型0-已过期;1-即将过期;2-无证书</param> | 
					
						
							|  |  |  |  |         /// <param name="pageIndex">页码</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.PersonQualityItem> getPersonQualityByProjectIdUnitId(string projectId, string unitId, string type) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var getLists = (from x in db.SitePerson_Person | 
					
						
							|  |  |  |  |                                 join y in db.QualityAudit_PersonQuality on x.PersonId equals y.PersonId | 
					
						
							|  |  |  |  |                                 join z in db.Base_WorkPost on x.WorkPostId equals z.WorkPostId | 
					
						
							|  |  |  |  |                                 where x.ProjectId == projectId && z.PostType == "2" | 
					
						
							|  |  |  |  |                                 orderby y.LimitDate | 
					
						
							|  |  |  |  |                                 select new Model.PersonQualityItem | 
					
						
							|  |  |  |  |                                 { | 
					
						
							|  |  |  |  |                                     PersonQualityId = y.PersonQualityId, | 
					
						
							|  |  |  |  |                                     PersonId = y.PersonId, | 
					
						
							|  |  |  |  |                                     PersonName = x.PersonName, | 
					
						
							|  |  |  |  |                                     CardNo = x.CardNo, | 
					
						
							|  |  |  |  |                                     IdentityCard = x.IdentityCard, | 
					
						
							|  |  |  |  |                                     ProjectId = x.ProjectId, | 
					
						
							|  |  |  |  |                                     UnitId = x.UnitId, | 
					
						
							|  |  |  |  |                                     UnitName = db.Base_Unit.First(z => z.UnitId == x.UnitId).UnitName, | 
					
						
							|  |  |  |  |                                     CertificateId = y.CertificateId, | 
					
						
							|  |  |  |  |                                     CertificateName = db.Base_Certificate.First(z => z.CertificateId == y.CertificateId).CertificateName, | 
					
						
							|  |  |  |  |                                     WorkPostId = x.WorkPostId, | 
					
						
							|  |  |  |  |                                     WorkPostName = db.Base_WorkPost.First(z => z.WorkPostId == x.WorkPostId).WorkPostName, | 
					
						
							|  |  |  |  |                                     CertificateNo = y.CertificateNo, | 
					
						
							|  |  |  |  |                                     Grade = y.Grade, | 
					
						
							|  |  |  |  |                                     SendUnit = y.SendUnit, | 
					
						
							|  |  |  |  |                                     SendDate = string.Format("{0:yyyy-MM-dd}", y.SendDate), | 
					
						
							|  |  |  |  |                                     LimitDate = string.Format("{0:yyyy-MM-dd}", y.LimitDate), | 
					
						
							|  |  |  |  |                                     LimitDateD = y.LimitDate, | 
					
						
							|  |  |  |  |                                     LateCheckDate = string.Format("{0:yyyy-MM-dd}", y.LateCheckDate), | 
					
						
							|  |  |  |  |                                     ApprovalPerson = db.Sys_User.First(z => z.UserId == x.AuditorId).UserName, | 
					
						
							|  |  |  |  |                                     Remark = y.Remark, | 
					
						
							|  |  |  |  |                                     CompileMan = y.CompileMan, | 
					
						
							|  |  |  |  |                                     CompileManName = db.Sys_User.First(z => z.UserId == y.CompileMan).UserName, | 
					
						
							|  |  |  |  |                                     CompileDate = string.Format("{0:yyyy-MM-dd}", y.CompileDate), | 
					
						
							|  |  |  |  |                                     AuditDate = string.Format("{0:yyyy-MM-dd}", y.AuditDate), | 
					
						
							|  |  |  |  |                                     AuditorName = db.Sys_User.First(z => z.UserId == x.AuditorId).UserName, | 
					
						
							|  |  |  |  |                                     AttachUrl = APIUpLoadFileService.getFileUrl(y.PersonQualityId, null), | 
					
						
							|  |  |  |  |                                 }).ToList(); | 
					
						
							|  |  |  |  |                 if (ProjectUnitService.GetProjectUnitTypeByProjectIdUnitId(projectId, unitId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getLists = getLists.Where(x => x.UnitId == unitId).ToList(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (type == "0") | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getLists = getLists.Where(x => x.CertificateId != null && x.LimitDateD < DateTime.Now).ToList(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else if (type == "1") | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getLists = getLists.Where(x => x.CertificateId != null && x.LimitDateD >= DateTime.Now && x.LimitDateD < DateTime.Now.AddMonths(1)).ToList(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else if (type == "2") | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     getLists = getLists.Where(x => x.CertificateId == null).ToList(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 return getLists; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 人员资质信息保存方法 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 人员资质信息保存方法 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="personQuality">人员信息</param> | 
					
						
							|  |  |  |  |         public static void SavePersonQuality(Model.PersonQualityItem personQuality) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Model.QualityAudit_PersonQuality newPersonQuality = new Model.QualityAudit_PersonQuality | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     PersonQualityId = personQuality.PersonQualityId, | 
					
						
							|  |  |  |  |                     PersonId = personQuality.PersonId, | 
					
						
							|  |  |  |  |                     CertificateNo = personQuality.CertificateNo, | 
					
						
							|  |  |  |  |                     CertificateName = personQuality.CertificateName, | 
					
						
							|  |  |  |  |                     Grade = personQuality.Grade, | 
					
						
							|  |  |  |  |                     SendUnit = personQuality.SendUnit, | 
					
						
							|  |  |  |  |                     SendDate = Funs.GetNewDateTime(personQuality.SendDate), | 
					
						
							|  |  |  |  |                     LimitDate = Funs.GetNewDateTime(personQuality.LimitDate), | 
					
						
							|  |  |  |  |                     LateCheckDate = Funs.GetNewDateTime(personQuality.LateCheckDate), | 
					
						
							|  |  |  |  |                     ApprovalPerson = personQuality.ApprovalPerson, | 
					
						
							|  |  |  |  |                     Remark = personQuality.Remark, | 
					
						
							|  |  |  |  |                     CompileDate = Funs.GetNewDateTime(personQuality.CompileDate), | 
					
						
							|  |  |  |  |                     AuditDate = Funs.GetNewDateTime(personQuality.AuditDate), | 
					
						
							|  |  |  |  |                 }; | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(personQuality.CertificateId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPersonQuality.CertificateId = personQuality.CertificateId; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(personQuality.CompileMan)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPersonQuality.CompileMan = personQuality.CompileMan; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(personQuality.AuditorId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPersonQuality.AuditorId = personQuality.AuditorId; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 var getPersonQuality = db.QualityAudit_PersonQuality.FirstOrDefault(x => x.PersonQualityId == newPersonQuality.PersonQualityId || x.PersonId == newPersonQuality.PersonId); | 
					
						
							|  |  |  |  |                 if (getPersonQuality == null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPersonQuality.PersonQualityId = SQLHelper.GetNewID(); | 
					
						
							|  |  |  |  |                     newPersonQuality.AuditDate = null; | 
					
						
							|  |  |  |  |                     db.QualityAudit_PersonQuality.InsertOnSubmit(newPersonQuality); | 
					
						
							|  |  |  |  |                     db.SubmitChanges(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     newPersonQuality.PersonQualityId = getPersonQuality.PersonQualityId; | 
					
						
							|  |  |  |  |                     getPersonQuality.CertificateId = newPersonQuality.CertificateId; | 
					
						
							|  |  |  |  |                     getPersonQuality.CertificateNo = newPersonQuality.CertificateNo; | 
					
						
							|  |  |  |  |                     getPersonQuality.CertificateName = newPersonQuality.CertificateName; | 
					
						
							|  |  |  |  |                     getPersonQuality.Grade = newPersonQuality.Grade; | 
					
						
							|  |  |  |  |                     getPersonQuality.SendUnit = newPersonQuality.SendUnit; | 
					
						
							|  |  |  |  |                     getPersonQuality.SendDate = newPersonQuality.SendDate; | 
					
						
							|  |  |  |  |                     getPersonQuality.LimitDate = newPersonQuality.LimitDate; | 
					
						
							|  |  |  |  |                     getPersonQuality.LateCheckDate = newPersonQuality.LateCheckDate; | 
					
						
							|  |  |  |  |                     getPersonQuality.ApprovalPerson = newPersonQuality.ApprovalPerson; | 
					
						
							|  |  |  |  |                     getPersonQuality.Remark = newPersonQuality.Remark; | 
					
						
							|  |  |  |  |                     getPersonQuality.CompileMan = newPersonQuality.CompileMan; | 
					
						
							|  |  |  |  |                     getPersonQuality.CompileDate = newPersonQuality.CompileDate; | 
					
						
							|  |  |  |  |                     getPersonQuality.AuditDate = newPersonQuality.AuditDate; | 
					
						
							|  |  |  |  |                     getPersonQuality.AuditorId = newPersonQuality.AuditorId; | 
					
						
							|  |  |  |  |                     db.SubmitChanges(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(newPersonQuality.PersonQualityId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     APIUpLoadFileService.SaveAttachUrl(Const.PersonQualityMenuId, newPersonQuality.PersonQualityId, personQuality.AttachUrl, "0"); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 获取异常人员信息出入场记录 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取异常人员信息出入场记录 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							|  |  |  |  |         /// <param name="unitId">单位ID</param> | 
					
						
							|  |  |  |  |         /// <param name="startTime">开始时间</param> | 
					
						
							|  |  |  |  |         /// <param name="endTime">结束时间</param> | 
					
						
							|  |  |  |  |         /// <param name="inOut"> 入场异常 0 出场异常 1</param> | 
					
						
							|  |  |  |  |         /// <param name="pageIndex">页码</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.PersonInOutItem> getAbnormalPersonInOutList(string projectId, string unitId, string startTime, string endTime, string inOut, int pageIndex) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 DateTime startTimeD = Funs.GetNewDateTimeOrNow(startTime); | 
					
						
							|  |  |  |  |                 DateTime endTimeD = Funs.GetNewDateTimeOrNow(endTime); | 
					
						
							|  |  |  |  |                 List<Model.PersonInOutItem> getAbnormalPersonInOutList = new List<Model.PersonInOutItem>(); | 
					
						
							|  |  |  |  |                 //// 入场异常 | 
					
						
							|  |  |  |  |                 if (inOut == "0") | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     var getAllPersonInOutLists = getPersonInOutLists(projectId, unitId, startTimeD.AddHours(-18), endTimeD); | 
					
						
							|  |  |  |  |                     /// 出场 | 
					
						
							|  |  |  |  |                     var getPersonOuts = getAllPersonInOutLists.Where(x => (x.IsIn == false || x.IsIn == null) && x.ChangeTimeD >= startTimeD ); | 
					
						
							|  |  |  |  |                     var getgetPersonIns = getAllPersonInOutLists.Where(x => x.IsIn == true ); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     Model.PersonInOutItem newItem = new Model.PersonInOutItem(); | 
					
						
							|  |  |  |  |                     foreach (var item in getPersonOuts) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         var getIn = getgetPersonIns.FirstOrDefault(x => x.PersonId == item.PersonId && x.ChangeTimeD.Value.AddHours(18) >= item.ChangeTimeD && x.ChangeTimeD < item.ChangeTimeD); | 
					
						
							|  |  |  |  |                         if (getIn == null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             getAbnormalPersonInOutList.Add(item); | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     }                    | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else //// 出场异常 | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     var getAllPersonInOutLists = getPersonInOutLists(projectId, unitId, startTimeD, endTimeD.AddHours(18)); | 
					
						
							|  |  |  |  |                     /// 进场 | 
					
						
							|  |  |  |  |                     var getPersonInts = getAllPersonInOutLists.Where(x => x.IsIn == true && x.ChangeTimeD <= endTimeD); | 
					
						
							|  |  |  |  |                     var getPersonOuts = getAllPersonInOutLists.Where(x => (x.IsIn == false || x.IsIn == null)); | 
					
						
							|  |  |  |  |                     Model.PersonInOutItem newItem = new Model.PersonInOutItem(); | 
					
						
							|  |  |  |  |                     foreach (var item in getPersonInts) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         var getOut = getPersonOuts.FirstOrDefault(x => x.PersonId == item.PersonId && x.ChangeTimeD.Value.AddHours(-18) <= item.ChangeTimeD && x.ChangeTimeD > item.ChangeTimeD); | 
					
						
							|  |  |  |  |                         if (getOut == null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             getAbnormalPersonInOutList.Add(item); | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 return getAbnormalPersonInOutList.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							|  |  |  |  |         /// <param name="unitId"></param> | 
					
						
							|  |  |  |  |         /// <param name="startTime"></param> | 
					
						
							|  |  |  |  |         /// <param name="endTime"></param> | 
					
						
							|  |  |  |  |         /// <param name="inOut"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.PersonInOutItem> getPersonInOutLists(string projectId, string unitId, DateTime startTimeD, DateTime endTimeD) | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2021-05-20 17:16:01 +08:00
										 |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2021-05-20 17:16:01 +08:00
										 |  |  |  |                 var personInOuts = from x in db.SitePerson_PersonInOut | 
					
						
							|  |  |  |  |                                    join y in db.SitePerson_Person on x.PersonId equals y.PersonId | 
					
						
							|  |  |  |  |                                    where x.ProjectId == projectId && x.ChangeTime >= startTimeD && x.ChangeTime <= endTimeD | 
					
						
							|  |  |  |  |                                    select new Model.PersonInOutItem | 
					
						
							|  |  |  |  |                                    { | 
					
						
							|  |  |  |  |                                        PersonId = x.PersonId, | 
					
						
							|  |  |  |  |                                        PersonName = y.PersonName, | 
					
						
							|  |  |  |  |                                        ProjectId = x.ProjectId, | 
					
						
							|  |  |  |  |                                        UnitId = y.UnitId, | 
					
						
							|  |  |  |  |                                        UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName, | 
					
						
							|  |  |  |  |                                        WorkPostId = y.WorkPostId, | 
					
						
							|  |  |  |  |                                        WorkPostName = db.Base_WorkPost.First(z => z.WorkPostId == y.WorkPostId).WorkPostName, | 
					
						
							|  |  |  |  |                                        IsIn = x.IsIn, | 
					
						
							|  |  |  |  |                                        IsInName = x.IsIn == true ? "进场" : "出场", | 
					
						
							|  |  |  |  |                                        ChangeTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ChangeTime), | 
					
						
							|  |  |  |  |                                        ChangeTimeD = x.ChangeTime, | 
					
						
							|  |  |  |  |                                    }; | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(unitId)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     personInOuts = personInOuts.Where(x => x.UnitId == unitId); | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-20 17:16:01 +08:00
										 |  |  |  |                 return personInOuts.ToList(); | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="person"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static string PersonFace(Model.SitePerson_Person person) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string message = string.Empty; | 
					
						
							|  |  |  |  |             string filePath = ConfigurationManager.AppSettings["localRoot"] + person.PhotoUrl; | 
					
						
							|  |  |  |  |             List<SgManager.AI.faceResult> kqFace = null; | 
					
						
							|  |  |  |  |             try | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 kqFace = (List<SgManager.AI.faceResult>)SgManager.AI.FaceClass.SearchFileFace(filePath); | 
					
						
							|  |  |  |  |                 if (kqFace != null || kqFace.Count > 0 || kqFace[0].errMess == "SUCCESS") | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     string result = FaceClass.FaceVerify(filePath); | 
					
						
							|  |  |  |  |                     JObject jresult = JObject.Parse(result); | 
					
						
							|  |  |  |  |                     JObject lvresult = jresult.Value<JObject>("result"); | 
					
						
							|  |  |  |  |                     bool isOK = false; | 
					
						
							|  |  |  |  |                     if (jresult.Value<int>("error_code") == 0) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         if (lvresult.Value<double>("face_liveness") >= ConfigAppSetting.getConfigAppSetting("BD_face_liveness") ? true : false)//99.5%//活体度 | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             if (Convert.ToDouble(lvresult["face_list"][0]["location"]["width"]) > ConfigAppSetting.getConfigAppSetting("BD_width") ? true : false) | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 if (Convert.ToDouble(lvresult["face_list"][0]["location"]["height"]) > ConfigAppSetting.getConfigAppSetting("BD_height") ? true : false) | 
					
						
							|  |  |  |  |                                 { | 
					
						
							|  |  |  |  |                                     if (System.Math.Abs(Convert.ToDouble(lvresult["face_list"][0]["angle"]["roll"])) <= ConfigAppSetting.getConfigAppSetting("BD_roll") ? true : false)//角度正负度数 | 
					
						
							|  |  |  |  |                                     { | 
					
						
							|  |  |  |  |                                         if (System.Math.Abs(Convert.ToDouble(lvresult["face_list"][0]["angle"]["yaw"])) <= ConfigAppSetting.getConfigAppSetting("BD_roll") + 1 ? true : false)//角度正负度数 | 
					
						
							|  |  |  |  |                                         { | 
					
						
							|  |  |  |  |                                             if (System.Math.Abs(Convert.ToDouble(lvresult["face_list"][0]["angle"]["pitch"])) <= ConfigAppSetting.getConfigAppSetting("BD_roll") + 1 ? true : false)//角度正负度数 | 
					
						
							|  |  |  |  |                                             { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                                                 if (Convert.ToDouble(lvresult["face_list"][0]["quality"]["occlusion"]["left_eye"]) <= ConfigAppSetting.getConfigAppSetting("BD_occlusion") ? true : false)// 0为无遮挡,1是完全遮挡 | 
					
						
							|  |  |  |  |                                                 { | 
					
						
							|  |  |  |  |                                                     if (Convert.ToDouble(lvresult["face_list"][0]["quality"]["occlusion"]["right_eye"]) <= ConfigAppSetting.getConfigAppSetting("BD_occlusion") ? true : false)// 0为无遮挡,1是完全遮挡 | 
					
						
							|  |  |  |  |                                                     { | 
					
						
							|  |  |  |  |                                                         if (Convert.ToDouble(lvresult["face_list"][0]["quality"]["occlusion"]["nose"]) <= ConfigAppSetting.getConfigAppSetting("BD_occlusion") ? true : false)// 0为无遮挡,1是完全遮挡 | 
					
						
							|  |  |  |  |                                                         { | 
					
						
							|  |  |  |  |                                                             if (Convert.ToDouble(lvresult["face_list"][0]["quality"]["occlusion"]["mouth"]) <= ConfigAppSetting.getConfigAppSetting("BD_occlusion") ? true : false)// 0为无遮挡,1是完全遮挡 | 
					
						
							|  |  |  |  |                                                             { | 
					
						
							|  |  |  |  |                                                                 if (Convert.ToDouble(lvresult["face_list"][0]["quality"]["occlusion"]["left_cheek"]) <= ConfigAppSetting.getConfigAppSetting("BD_occlusion") ? true : false)// 0为无遮挡,1是完全遮挡 | 
					
						
							|  |  |  |  |                                                                 { | 
					
						
							|  |  |  |  |                                                                     if (Convert.ToDouble(lvresult["face_list"][0]["quality"]["occlusion"]["right_cheek"]) <= ConfigAppSetting.getConfigAppSetting("BD_occlusion") ? true : false)// 0为无遮挡,1是完全遮挡 | 
					
						
							|  |  |  |  |                                                                     { | 
					
						
							|  |  |  |  |                                                                         if (Convert.ToDouble(lvresult["face_list"][0]["quality"]["occlusion"]["chin_contour"]) <= ConfigAppSetting.getConfigAppSetting("BD_occlusion") ? true : false)// 0为无遮挡,1是完全遮挡 | 
					
						
							|  |  |  |  |                                                                         { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                                                                             if (Convert.ToDouble(lvresult["face_list"][0]["quality"]["blur"]) <= ConfigAppSetting.getConfigAppSetting("BD_blur") ? true : false)//模糊度,0---1,小于0.7 | 
					
						
							|  |  |  |  |                                                                             { isOK = true; } | 
					
						
							|  |  |  |  |                                                                             else message = "清晰度检测失败"; ; | 
					
						
							|  |  |  |  |                                                                         } | 
					
						
							|  |  |  |  |                                                                         else message = "遮挡检测失败"; | 
					
						
							|  |  |  |  |                                                                     } | 
					
						
							|  |  |  |  |                                                                     else message = "遮挡检测失败"; | 
					
						
							|  |  |  |  |                                                                 } | 
					
						
							|  |  |  |  |                                                                 else message = "遮挡检测失败"; | 
					
						
							|  |  |  |  |                                                             } | 
					
						
							|  |  |  |  |                                                             else message = "遮挡检测失败"; | 
					
						
							|  |  |  |  |                                                         } | 
					
						
							|  |  |  |  |                                                         else message = "遮挡检测失败"; | 
					
						
							|  |  |  |  |                                                     } | 
					
						
							|  |  |  |  |                                                     else message = "遮挡检测失败"; | 
					
						
							|  |  |  |  |                                                 } | 
					
						
							|  |  |  |  |                                                 else message = "遮挡检测失败"; | 
					
						
							|  |  |  |  |                                             } | 
					
						
							|  |  |  |  |                                             else message = "角度检测失败"; | 
					
						
							|  |  |  |  |                                         } | 
					
						
							|  |  |  |  |                                         else message = "角度检测失败"; | 
					
						
							|  |  |  |  |                                     } | 
					
						
							|  |  |  |  |                                     else message = "角度检测失败"; | 
					
						
							|  |  |  |  |                                 } | 
					
						
							|  |  |  |  |                                 else message = "宽高检测失败"; | 
					
						
							|  |  |  |  |                             } | 
					
						
							|  |  |  |  |                             else message = "宽高检测失败"; | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                         else message = "活体检测失败"; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else message = "识别不到人脸"; | 
					
						
							|  |  |  |  |                     if (isOK) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         var faceResult = FaceClass.add(person.PersonId, person.IdentityCard, System.Configuration.ConfigurationManager.AppSettings["CEMS_IMG_URL"].ToString() + person.PhotoUrl, AccessToken.getAccessToken()); | 
					
						
							|  |  |  |  |                         var face = JsonConvert.DeserializeObject<dynamic>(faceResult); | 
					
						
							|  |  |  |  |                         // JsonConvert.DeserializeObject<dynamic>(myPunishItem); | 
					
						
							|  |  |  |  |                         if (face.error_code == 0 || face.error_code == 223105) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             message = "人脸库注册成功!"; | 
					
						
							|  |  |  |  |                             // face_token = face.result.face_token; | 
					
						
							|  |  |  |  |                             //APIPersonService.SaveSitePerson(person); | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                         else | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             message = "注册人脸库失败" + face.error_code + face.error_msg; | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         message += "注册人脸库失败"; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             catch (Exception ex) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 message = "注册人脸库失败"; | 
					
						
							|  |  |  |  |                 ErrLogInfo.WriteLog(ex, "PC-人员信息保存", "SitePerson.PersonListEdit"); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return message; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |