using BLL; using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; using SgManager.AI; using System.Configuration; using Newtonsoft.Json.Linq; using Newtonsoft.Json; namespace WebAPI.Controllers { /// /// /// public class PersonController : ApiController { #region 根据personid获取人员信息 /// /// 根据personid获取人员信息 /// /// /// public Model.ResponeData getPersonByPersonId(string personId) { var responeData = new Model.ResponeData(); try { responeData.data = APIPersonService.getPersonByPersonId(personId); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据identityCard获取人员信息 /// /// 根据identityCard获取人员信息 /// /// /// public Model.ResponeData getPersonByIdentityCard(string identityCard) { var responeData = new Model.ResponeData(); try { responeData.data = APIPersonService.getPersonByPersonId(identityCard); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据projectId、identityCard获取人员信息 /// /// 根据projectId、identityCard获取人员信息 /// /// /// /// public Model.ResponeData getPersonByProjectIdIdentityCard(string projectId,string identityCard) { var responeData = new Model.ResponeData(); try { responeData.data = APIPersonService.getPersonByProjectIdIdentityCard(projectId,identityCard); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据projectId、unitid获取人员信息 /// /// 根据projectId、unitid获取人员信息 /// /// /// /// /// public Model.ResponeData getPersonByProjectIdUnitId(string projectId, string unitId, int pageIndex) { var responeData = new Model.ResponeData(); try { var getDataList = APIPersonService.getPersonByProjectIdUnitId(projectId, unitId); int pageCount = getDataList.Count; if (pageCount > 0 && pageIndex > 0) { getDataList = getDataList.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); } responeData.data = new { pageCount, getDataList }; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 获取在岗、离岗、待审人员数量 /// /// 获取在岗、离岗、待审人员列表 /// /// /// /// /// /// /// /// public Model.ResponeData getPersonStatesCount(string projectId, string unitId, string states, string strUnitId, string strWorkPostId, string strParam) { var responeData = new Model.ResponeData(); try { 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)); } int tatalCount = getViews.Count(); //在审 int count0 = getViews.Where(x => x.IsUsed == false && !x.AuditorDate.HasValue).Count(); //在岗 int count1 = getViews.Where(x => x.IsUsed == true && x.InTime <= DateTime.Now && (!x.OutTime.HasValue || x.OutTime >= DateTime.Now)).Count(); //离岗 int count2 = getViews.Where(x => x.IsUsed == true && x.OutTime <= DateTime.Now).Count(); //打回 int count3 = getViews.Where(x => x.IsUsed == false && x.AuditorDate.HasValue).Count(); responeData.data = new { tatalCount, count0, count1, count2, count3 }; } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 获取在岗、离岗、待审人员列表 /// /// 获取在岗、离岗、待审人员列表 /// /// /// 当前人单位ID /// 0待审1在岗2离岗 /// 查询单位 /// 查询岗位 /// 查询条件 /// /// public Model.ResponeData getPersonListByProjectIdStates(string projectId, string unitId, string states, string strUnitId, string strWorkPostId, string strParam, int pageIndex) { var responeData = new Model.ResponeData(); try { var getDataList = APIPersonService.getPersonListByProjectIdStates(projectId, unitId, states, strUnitId, strWorkPostId, strParam, pageIndex); int pageCount = APIPersonService.getPersonListCount; responeData.data = new { pageCount, getDataList }; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据identityCard获取人员培训考试信息 /// /// 根据identityCard获取人员培训考试信息 /// /// /// /// public Model.ResponeData getPersonTestRecoedByIdentityCard(string identityCard, string projectId = null) { var responeData = new Model.ResponeData(); try { responeData.data = APIPersonService.getPersonTestRecoedByIdentityCard(identityCard, projectId); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据identityCard获取人员资质信息 /// /// 根据identityCard获取人员资质信息 /// /// /// /// public Model.ResponeData getPersonQualityByIdentityCard(string identityCard, string projectId = null) { var responeData = new Model.ResponeData(); try { responeData.data = APIPersonService.getPersonQualityByIdentityCard(identityCard, projectId); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据projectId、unitid获取特岗人员资质各状态数 /// /// 根据projectId、unitid获取特岗人员资质各状态数 /// /// 项目ID /// 单位ID /// 人员资质数量 public Model.ResponeData getPersonQualityCount(string projectId, string unitId) { var responeData = new Model.ResponeData(); try { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getDataList = db.View_QualityAudit_PersonQuality.Where(x => x.ProjectId == projectId && x.CertificateId != null); if (ProjectUnitService.GetProjectUnitTypeByProjectIdUnitId(projectId, unitId)) { getDataList = getDataList.Where(x => x.UnitId == unitId); } //总数 int tatalCount = getDataList.Count(); //过期 int count1 = getDataList.Where(x => x.LimitDate < DateTime.Now).Count(); //即将过期 int count2 = getDataList.Where(x => x.LimitDate >= DateTime.Now && x.LimitDate < DateTime.Now.AddMonths(1)).Count(); responeData.data = new { tatalCount, count1, count2 }; } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据projectId、unitid获取特岗人员资质信息 /// /// 根据projectId、unitid获取特岗人员资质信息 /// /// 项目ID /// 单位ID /// 数据类型0-已过期;1-即将过期;2-无证;3-待审核;4-已审核;-1打回 /// 页码 /// public Model.ResponeData getPersonQualityByProjectIdUnitId(string projectId, string unitId, string type, int pageIndex) { var responeData = new Model.ResponeData(); try { var getDataList = APIPersonService.getPersonQualityByProjectIdUnitId(projectId, unitId, type); int pageCount = getDataList.Count(); if (pageCount > 0 && pageIndex > 0) { getDataList = getDataList.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); } responeData.data = new { pageCount, getDataList }; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 保存 人员资质信息 QualityAudit_PersonQuality /// /// 保存Meeting /// /// 人员资质信息 /// [HttpPost] public Model.ResponeData SavePersonQuality([FromBody] Model.PersonQualityItem personQuality) { var responeData = new Model.ResponeData(); try { APIPersonService.SavePersonQuality(personQuality); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据项目\单位\岗位\培训类型获取项目培训\考试人员信息 /// /// 根据项目\单位\岗位\培训类型获取项目培训\考试人员信息 /// /// 项目ID /// 培训单位ID /// 培训岗位ID(可为空) /// 培训类型ID(可为空) /// 分页 /// public Model.ResponeData getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, int pageIndex) { var responeData = new Model.ResponeData(); try { var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(projectId, unitIds, workPostIds, trainTypeId).OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList(); int pageCount = getDataList.Count; if (pageCount > 0 && pageIndex > 0) { getDataList = getDataList.OrderBy(u => u.UnitName).ThenBy(u => u.PersonName).Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); ////200 ->Funs.PageSize } responeData.data = new { pageCount, getDataList }; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } /// /// /// /// /// [HttpPost] public Model.ResponeData postTrainingPersonListByTrainTypeId([FromBody] Model.PersonItem person) { var responeData = new Model.ResponeData(); try { var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(person).OrderBy(x => x.UnitName).ThenBy(x => x.PersonName).ToList(); int pageCount = getDataList.Count; if (pageCount > 0 && person.PageIndex > 0) { getDataList = getDataList.Skip(Funs.PageSize * (person.PageIndex - 1)).Take(Funs.PageSize).ToList(); ////200 ->Funs.PageSize } responeData.data = new { pageCount, getDataList }; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 保存项目人员信息 /// /// 保存项目人员信息 /// /// 人员信息 /// [HttpPost] public Model.ResponeData SaveSitePerson([FromBody] Model.PersonItem person) { var responeData = new Model.ResponeData(); try { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { if (person != null && !string.IsNullOrEmpty(person.IdentityCard)) { string photourl = person.PhotoUrl; var getPerson = db.SitePerson_Person.FirstOrDefault(x => x.IdentityCard == person.IdentityCard.Trim() && x.ProjectId == person.ProjectId); if (getPerson != null && getPerson.PersonId != person.PersonId && !string.IsNullOrEmpty(person.PersonId)) { responeData.code = -1; responeData.message = "该身份证号码已存在两条记录,请联系管理员处理!"; } else { if (getPerson != null) { person.PersonId = getPerson.PersonId; } person.PersonId = APIPersonService.SaveSitePerson(person); var getProject = ProjectService.GetProjectByProjectId(person.ProjectId); if (!string.IsNullOrEmpty(photourl) && getProject != null && getProject.IsFace == true) { try { string filePath = ConfigurationManager.AppSettings["localRoot"] + photourl; string result = FaceClass.FaceVerify(filePath); JObject jresult = JObject.Parse(result); JObject lvresult = jresult.Value("result"); bool isOK = false; // string resMsg = ""; if (jresult.Value("error_code") == 0) { if (lvresult.Value("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 responeData.message = "清晰度检测失败"; ; } else responeData.message = "遮挡检测失败"; } else responeData.message = "遮挡检测失败"; } else responeData.message = "遮挡检测失败"; } else responeData.message = "遮挡检测失败"; } else responeData.message = "遮挡检测失败"; } else responeData.message = "遮挡检测失败"; } else responeData.message = "遮挡检测失败"; } else responeData.message = "角度检测失败"; } else responeData.message = "角度检测失败"; } else responeData.message = "角度检测失败"; } else responeData.message = "宽高检测失败"; } else responeData.message = "宽高检测失败"; } else responeData.message = "活体检测失败"; } else responeData.message = "识别不到人脸"; if (isOK) { var faceResult = FaceClass.add(person.PersonId, person.IdentityCard, System.Configuration.ConfigurationManager.AppSettings["CEMS_IMG_URL"].ToString() + photourl, AccessToken.getAccessToken()); var face = JsonConvert.DeserializeObject(faceResult); // JsonConvert.DeserializeObject(myPunishItem); if (face.error_code == 0 || face.error_code == 223105) { // face_token = face.result.face_token; // APIPersonService.SaveSitePerson(person); } else { responeData.code = 2; responeData.message = "注册人脸库失败"+ face.error_code + face.error_msg; } } else { responeData.code = 2; } } catch (Exception ex) { responeData.code = 2; responeData.message = "百度人脸注册失败!"; responeData.message = ex.Message; ErrLogInfo.WriteLog(ex, "WX接口-人员信息保存", "PersonController.SaveSitePerson"); } } } } else { responeData.code = -1; responeData.message = "人员信息有误!"; } } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据personid人员打回 /// /// 根据personid人员打回 /// /// 人员ID /// 审核人id /// public Model.ResponeData getReUserPersonByPersonId(string personId, string userId) { var responeData = new Model.ResponeData(); try { APIPersonService.getReUserPersonByPersonId(personId, userId); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 更新人员更新附件 /// /// 更新人员更新附件 /// /// 人员信息 /// [HttpPost] public Model.ResponeData SaveSitePersonAttachment([FromBody] Model.PersonItem person) { var responeData = new Model.ResponeData(); try { if (person != null) { var getProject = ProjectService.GetProjectByProjectId(person.ProjectId); if (!string.IsNullOrEmpty(person.PhotoUrl) && getProject != null && getProject.IsFace == true) { string filePath = ConfigurationManager.AppSettings["localRoot"] + person.PhotoUrl; List kqFace = null; try { kqFace = (List)SgManager.AI.FaceClass.SearchFileFace(filePath); } catch (Exception e) { } if (kqFace == null || kqFace.Count == 0 || kqFace[0].errMess != "SUCCESS") { try { string result = FaceClass.FaceVerify(filePath); JObject jresult = JObject.Parse(result); JObject lvresult = jresult.Value("result"); bool isOK = false; string resMsg = ""; if (jresult.Value("error_code") == 0) { if (lvresult.Value("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 responeData.message = "清晰度检测失败"; ; } else responeData.message = "遮挡检测失败"; } else responeData.message = "遮挡检测失败"; } else responeData.message = "遮挡检测失败"; } else responeData.message = "遮挡检测失败"; } else responeData.message = "遮挡检测失败"; } else responeData.message = "遮挡检测失败"; } else responeData.message = "遮挡检测失败"; } else responeData.message = "角度检测失败"; } else responeData.message = "角度检测失败"; } else responeData.message = "角度检测失败"; } else responeData.message = "宽高检测失败"; } else responeData.message = "宽高检测失败"; } else responeData.message = "活体检测失败"; } else responeData.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(faceResult); // JsonConvert.DeserializeObject(myPunishItem); if (face.error_code == 0 || face.error_code == 223105) { // face_token = face.result.face_token; APIPersonService.SaveSitePerson(person); } else { responeData.code = 2; responeData.message = "注册人脸库失败"; } } else { responeData.code = 2; } } catch (Exception ex) { responeData.code = 2; responeData.message = "百度人脸注册失败!"; responeData.message = ex.Message; } } } APIPersonService.SaveSitePersonAttachment(person); } else { responeData.code = 2; responeData.message = "人员附件信息有误!"; } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 人员离场 /// /// 人员离场 /// /// /// public Model.ResponeData getPersonOut(string personId) { var responeData = new Model.ResponeData(); try { APIPersonService.getPersonOut(personId); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 插入人员出入场记录 /// /// 获取人员出入场记录 /// /// /// /// /// /// public Model.ResponeData getPersonInOut(string projectId, string idCard, int isIn,DateTime changeTime) { var responeData = new Model.ResponeData(); try { APIDoorServerService.SaveDoorInOutRecord(projectId, idCard, isIn, changeTime, "白名单"); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; ErrLogInfo.WriteLog(ex, "WX接口-插入人员出入场记录", "PersonController.getPersonInOut"); } return responeData; } #endregion #region 获取发卡人员 /// /// 获取发卡人员 /// /// /// public Model.ResponeData getPersonDataExchange(string projectId) { var responeData = new Model.ResponeData(); try { responeData.data = (from x in Funs.DB.SitePerson_Person_Bak join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId where x.ProjectId == projectId && !x.ExchangeTime.HasValue && (!x.OutTime.HasValue || x.OutTime > DateTime.Now) && x.InTime.HasValue && x.InTime < DateTime.Now && x.IsUsed == true && x.PhotoUrl != null select new { x.PersonId, x.PersonName, x.CardNo, x.IdentityCard, x.UnitId, y.UnitCode, y.UnitName, y.ShortUnitName, Funs.DB.ProjectData_TeamGroup.First(z => z.TeamGroupId == x.TeamGroupId).TeamGroupName, Sex=x.Sex ?? "1", Funs.DB.Base_WorkPost.First(z => z.WorkPostId == x.WorkPostId).WorkPostName, x.Telephone, x.Address, x.InTime, x.AuditorDate, x.ExchangeTime, x.ExchangeTime2, x.PhotoUrl, }).Take(400).ToList(); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; ErrLogInfo.WriteLog(ex, "WX接口-获取人员下发门禁", "PersonController.getPersonDataExchange"); } return responeData; } #endregion #region 获取离场人员 /// /// 获取离场人员 /// /// /// public Model.ResponeData getPersonOutDataExchange(string projectId) { var responeData = new Model.ResponeData(); try { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { responeData.data = (from x in db.SitePerson_Person_Bak where x.ProjectId == projectId && x.InTime.HasValue && x.InTime < DateTime.Now && ((x.IsUsed == true && !x.OutTime.HasValue) || x.OutTime.HasValue) && !x.ExchangeTime2.HasValue && x.ExchangeTime.HasValue select new { x.PersonId, x.PersonName, x.CardNo, x.IdentityCard, OutTime = x.OutTime == null ? DateTime.Now.AddYears(10) : x.OutTime, }).Take(200).ToList(); } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 更新人员数据交换时间 /// /// 更新人员数据交换时间 /// /// 人员ID /// 交换类型 /// public Model.ResponeData getUpdatePersonExchangeTime(string personId, string type) { var responeData = new Model.ResponeData(); try { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getPerson = db.SitePerson_Person.FirstOrDefault(e => e.PersonId == personId); if (getPerson != null && !string.IsNullOrEmpty(type)) { if (type == "1") { getPerson.ExchangeTime2 = DateTime.Now; if (!getPerson.ExchangeTime.HasValue) { getPerson.ExchangeTime = DateTime.Now; } } else { getPerson.ExchangeTime = DateTime.Now; } db.SubmitChanges(); } var getPersonb = db.SitePerson_Person_Bak.FirstOrDefault(e => e.PersonId == personId); if (getPersonb != null && !string.IsNullOrEmpty(type)) { if (type == "1") { getPersonb.ExchangeTime2 = DateTime.Now; if (!getPersonb.ExchangeTime.HasValue) { getPersonb.ExchangeTime = DateTime.Now; } } else { getPersonb.ExchangeTime = DateTime.Now; } db.SubmitChanges(); } } } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; ErrLogInfo.WriteLog(ex, "WX接口-更新人员数据交换时间", "PersonController.getUpdatePersonExchangeTime"); } return responeData; } #endregion #region 获取人员信息出入场记录 /// /// 获取人员信息出入场记录 /// /// /// 当前人单位ID /// /// /// 页码 /// public Model.ResponeData getPersonInOutList(string projectId, string unitId, string startTime, string endTime, int pageIndex) { var responeData = new Model.ResponeData(); try { var getDataList = APIPersonService.getPersonInOutList(projectId, unitId, startTime, endTime); int pageCount = getDataList.Count(); if (pageCount > 0 && pageIndex > 0) { getDataList = getDataList.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); } responeData.data = new { pageCount, getDataList }; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; ErrLogInfo.WriteLog(ex, "WX接口-获取人员信息出入场记录", "PersonController.getPersonInOutList"); } return responeData; } #endregion #region 获取人员信息出入场记录-查询 /// /// 获取人员信息出入场记录 /// /// /// /// 当前人单位ID /// 岗位 /// 查询条件 /// /// /// 页码 /// public Model.ResponeData getPersonInOutList(string projectId, string userUnitId, string workPostId, string strParam, string startTime, string endTime, int pageIndex, string unitId = null) { var responeData = new Model.ResponeData(); try { var getDataList = APIPersonService.getPersonInOutList(projectId, userUnitId, unitId, workPostId, strParam, startTime, endTime, pageIndex); int pageCount = APIPersonService.getPersonInOutListCount; responeData.data = new { pageCount, getDataList }; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 根据人员ID获取个人出入场记录 /// /// 根据人员ID获取个人出入场记录 /// /// /// /// /// 页码 /// public Model.ResponeData getPersonInOutListByPersonId(string personId, string startTime, string endTime, int pageIndex) { var responeData = new Model.ResponeData(); try { var getDataList = APIPersonService.getPersonInOutListByPersonId(personId, startTime, endTime, pageIndex); int pageCount = APIPersonService.getPersonInOutListByPersonIdCount; responeData.data = new { pageCount, getDataList }; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion #region 获取异常人员信息出入场记录 /// /// 获取异常人员信息出入场记录 /// /// /// 单位ID /// 开始时间 /// 结束时间 /// 入场异常 0 出场异常 1 /// 页码 /// public Model.ResponeData getAbnormalPersonInOutList(string projectId, string unitId, string startTime, string endTime, string inOut, int pageIndex) { var responeData = new Model.ResponeData(); try { var getDataList = APIPersonService.getAbnormalPersonInOutList(projectId, unitId, startTime, endTime, inOut, pageIndex); int pageCount = getDataList.Count(); responeData.data = new { pageCount, getDataList }; } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; ErrLogInfo.WriteLog(ex, "WX接口-获取异常人员信息出入场记录", "PersonController.getAbnormalPersonInOutList"); } return responeData; } #endregion #region 根据人员ID获取下一步办理人 /// /// 根据人员ID获取下一步办理人 /// /// /// /// /// public Model.ResponeData getUserByProjectIdUserIdsQuery(string projectId, string userIds, string strParam) { var responeData = new Model.ResponeData(); try { responeData.data = APIUserService.getUserByProjectIdUserIdsQuery(projectId, userIds, strParam); } catch (Exception ex) { responeData.code = 0; responeData.message = ex.Message; } return responeData; } #endregion } }