using Model; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; namespace BLL { public static class APIPersonService { #region 获取项目现场人员登录信息 /// /// 获取项目现场人员登录信息 /// /// /// 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 join y in db.Person_Persons on x.IdentityCard equals y.IdentityCard where (y.Telephone == userInfo.Account || x.PersonName == userInfo.Account) && (y.Password == Funs.EncryptionPassword(userInfo.Password) || (x.IdentityCard != null && x.IdentityCard.Substring(x.IdentityCard.Length - 4) == userInfo.Password)) && x.States == Const.ProjectPersonStates_1 select new Model.UserItem { PersonId = x.PersonId, UserCode = x.CardNo, Password = y.Password, PersonName = x.PersonName, UnitId = x.UnitId, LoginProjectId = x.ProjectId, IdentityCard = x.IdentityCard, Account = y.Telephone, UnitName = db.Base_Unit.First(u => u.UnitId == x.UnitId).UnitName, LoginProjectName = db.Base_Project.First(u => u.ProjectId == x.ProjectId).ProjectName, Telephone = y.Telephone, WorkPostId = x.WorkPostId, WorkPostName = db.Base_WorkPost.First(w => w.WorkPostId == x.WorkPostId).WorkPostName, UserType = "3", }; return getUser.FirstOrDefault(); } } #endregion #region 根据personId获取人员信息 -项目人员 及人员信息 /// /// 根据personId获取人员信息 /// /// /// public static Model.PersonItem getPersonBySitePersonId(string sitePersonId, string projectId, string idcard) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { Model.PersonItem person = new Model.PersonItem(); var getProjectPerson = db.SitePerson_Person.FirstOrDefault(x => x.SitePersonId == sitePersonId || (x.ProjectId == projectId && x.ProjectId.Length > 1 && x.IdentityCard == idcard)); if (getProjectPerson != null) { person.SitePersonId = getProjectPerson.SitePersonId; person.PersonId = getProjectPerson.PersonId; person.States = getProjectPerson.States; person.CardNo = getProjectPerson.CardNo; person.PersonName = getProjectPerson.PersonName; person.IdentityCard = getProjectPerson.IdentityCard; idcard = getProjectPerson.IdentityCard; person.ProjectId = getProjectPerson.ProjectId; var getProject = db.Base_Project.FirstOrDefault(x => x.ProjectId == getProjectPerson.ProjectId); if (getProject != null) { person.ProjectCode = getProject.ProjectCode; person.ProjectName = getProject.ProjectName; } person.UnitId = getProjectPerson.UnitId; var gettUnit = db.Base_Unit.FirstOrDefault(x => x.UnitId == getProjectPerson.UnitId); if (gettUnit != null) { person.UnitCode = gettUnit.UnitCode; person.UnitName = gettUnit.UnitName; } person.WorkAreaId = getProjectPerson.WorkAreaId; var getWorkArea = db.WBS_UnitWork.FirstOrDefault(e => e.UnitWorkId == getProjectPerson.WorkAreaId); if (getWorkArea != null) { person.WorkAreaName = getWorkArea.UnitWorkName; } person.TeamGroupId = getProjectPerson.TeamGroupId; var getTeam = db.ProjectData_TeamGroup.FirstOrDefault(e => e.TeamGroupId == getProjectPerson.TeamGroupId); if (getTeam != null) { person.TeamGroupName = getTeam.TeamGroupName; } person.WorkPostId = getProjectPerson.WorkPostId; var getWorkPost = db.Base_WorkPost.FirstOrDefault(x => x.WorkPostId == getProjectPerson.WorkPostId); if (getWorkPost != null) { person.WorkPostName = getWorkPost.WorkPostName; } person.InTime = string.Format("{0:yyyy-MM-dd}", getProjectPerson.InTime); person.OutTime = string.Format("{0:yyyy-MM-dd}", getProjectPerson.OutTime); person.OutResult = getProjectPerson.OutResult; person.AuditorId = getProjectPerson.AuditorId; var getAuPerson = db.Person_Persons.FirstOrDefault(z => z.PersonId == getProjectPerson.AuditorId); if (getAuPerson != null) { person.AuditorName = getAuPerson.PersonName; } else { var getAs = Person_PersonsService.GetUserListByProjectIdUnitIdRoleId(getProjectPerson.ProjectId, Const.UnitId_SEDIN, BLL.Const.HSSEManager + "," + BLL.Const.HSSEAssistantManager); if (getAs.Count() > 0) { var getA = getAs.FirstOrDefault(); if (getA != null) { person.AuditorId = getA.PersonId; person.AuditorName = getA.PersonName; } } } person.AuditorDate = string.Format("{0:yyyy-MM-dd}", getProjectPerson.AuditorDate); person.AttachUrl2 = APIUpLoadFileService.getFileUrl(getProjectPerson.PersonId + "#2", null); person.AttachUrl3 = APIUpLoadFileService.getFileUrl(getProjectPerson.PersonId + "#3", null); person.AttachUrl4 = getAttachUrl4(getProjectPerson.PersonId); person.AttachUrl5 = APIUpLoadFileService.getFileUrl(getProjectPerson.PersonId + "#5", null); person.AttachUrl6 = APIUpLoadFileService.getFileUrl(getProjectPerson.PersonId + "#6", null); } var getPerson = db.Person_Persons.FirstOrDefault(x => x.IdentityCard == idcard && idcard.Length > 1); if (getPerson != null) { person.PersonId = getPerson.PersonId; person.PersonName = getPerson.PersonName; person.IdentityCard = getPerson.IdentityCard; person.Sex = getPerson.Sex; person.SexName = getPerson.Sex == "1" ? "男" : "女"; person.Address = getPerson.Address; person.Telephone = getPerson.Telephone; person.PhotoUrl = getPerson.PhotoUrl; person.IsForeign = getPerson.IsForeign.HasValue ? getPerson.IsForeign : false; person.PersonType = getPerson.PersonType; person.PersonTypeName = DropListService.getPersonTypeNameByValue(getPerson.PersonType); person.AttachUrl1 = getPerson.IDCardUrl == null ? APIUpLoadFileService.getFileUrl(getProjectPerson.PersonId + "#1", null) : getPerson.IDCardUrl.Replace('\\', '/'); person.AttachUrl5 = getPerson.IDCardBackUrl == null ? APIUpLoadFileService.getFileUrl(getProjectPerson.PersonId + "#5", null) : getPerson.IDCardBackUrl.Replace('\\', '/'); person.IdcardType = getPerson.IdcardType; person.IdcardTypeName = "身份证"; person.IdcardStartDate = string.Format("{0:yyyy-MM-dd}", getPerson.IdcardStartDate); person.IdcardEndDate = string.Format("{0:yyyy-MM-dd}", getPerson.IdcardEndDate); person.IdcardForever = getPerson.IdcardForever; person.IdcardForeverStr = getPerson.IdcardForever == "Y" ? "是" : "否"; person.PoliticsStatus = getPerson.PoliticsStatus; person.UnitId = getPerson.UnitId; var gettUnit = db.Base_Unit.FirstOrDefault(x => x.UnitId == getPerson.UnitId); if (gettUnit != null) { person.UnitCode = gettUnit.UnitCode; person.UnitName = gettUnit.UnitName; } person.WorkPostId = getPerson.WorkPostId; var getWorkPost = db.Base_WorkPost.FirstOrDefault(x => x.WorkPostId == getPerson.WorkPostId); if (getWorkPost != null) { person.WorkPostName = getWorkPost.WorkPostName; } var getRealName_BasicData = db.RealName_BasicData.FirstOrDefault(x => x.DictCode == getPerson.PoliticsStatus); if (getRealName_BasicData != null) { person.PoliticsStatusName = getRealName_BasicData.DictName; } person.IdcardAddress = getPerson.IdcardAddress; person.Nation = getPerson.Nation; var getRealName_BasicData1 = db.RealName_BasicData.FirstOrDefault(x => x.DictCode == getPerson.Nation); if (getRealName_BasicData1 != null) { person.NationName = getRealName_BasicData1.DictName; } person.EduLevel = getPerson.EduLevel; var getRealName_BasicData2 = db.RealName_BasicData.FirstOrDefault(x => x.DictCode == getPerson.EduLevel); if (getRealName_BasicData2 != null) { person.EduLevelName = getRealName_BasicData2.DictName; } person.MaritalStatus = getPerson.MaritalStatus; var getRealName_BasicData3 = db.RealName_BasicData.FirstOrDefault(x => x.DictCode == getPerson.MaritalStatus); if (getRealName_BasicData3 != null) { person.MaritalStatusName = getRealName_BasicData3.DictName; } person.CountryCode = getPerson.CountryCode; var getRealName_Country = db.RealName_Country.FirstOrDefault(x => x.CountryId == getPerson.CountryCode); if (getRealName_Country != null) { person.CountryName = getRealName_Country.Cname; } person.ProvinceCode = getPerson.ProvinceCode; var getRealName_City = db.RealName_City.FirstOrDefault(x => x.CountryId == getPerson.CountryCode && x.ProvinceCode == getPerson.ProvinceCode); if (getRealName_City != null) { person.ProvinceName = getRealName_City.Cname; } } return person; } } /// /// /// /// 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 根据projectId、unitid获取人员信息 /// /// 根据projectId、unitid获取人员信息 /// /// /// public static List 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.States == Const.ProjectPersonStates_1 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, PersonType = x.PersonType, PersonTypeName = x.PersonType == "2" ? "外聘" : (x.PersonType == "3" ? "第三方" : "员工"), PostTypeName = db.Sys_Const.First(z => z.GroupId == ConstValue.Group_PostType && z.ConstValue == x.PostType).ConstText, }; return persons.ToList(); } } #endregion #region 根据条件获取项目人员信息(支持多条件过滤) /// /// 根据条件获取项目人员信息(支持多条件过滤) /// /// 查询过滤条件 /// public static List getPersonByFilter(Model.ProjectPersonInput filter) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var query = from x in db.View_SitePerson_Person select x; // 添加过滤条件 if (filter != null) { // 项目ID过滤 if (!string.IsNullOrEmpty(filter.ProjectId)) { query = query.Where(x => x.ProjectId == filter.ProjectId); } // 项目名称过滤(模糊查询) if (!string.IsNullOrEmpty(filter.ProjectName)) { query = query.Where(x => x.ProjectName.Contains(filter.ProjectName)); } // 项目代号过滤(模糊查询) if (!string.IsNullOrEmpty(filter.ProjectCode)) { query = query.Where(x => x.ProjectCode.Contains(filter.ProjectCode)); } // 人员ID过滤 if (!string.IsNullOrEmpty(filter.PersonId)) { query = query.Where(x => x.PersonId == filter.PersonId); } // 项目人员ID过滤 if (!string.IsNullOrEmpty(filter.SitePersonId)) { query = query.Where(x => x.SitePersonId == filter.SitePersonId); } // 姓名过滤(模糊查询) if (!string.IsNullOrEmpty(filter.PersonName)) { query = query.Where(x => x.PersonName.Contains(filter.PersonName)); } // 身份证号过滤 if (!string.IsNullOrEmpty(filter.IdentityCard)) { query = query.Where(x => x.IdentityCard == filter.IdentityCard); } // 卡号过滤 if (!string.IsNullOrEmpty(filter.CardNo)) { query = query.Where(x => x.CardNo == filter.CardNo); } // 单位名称过滤(模糊查询) if (!string.IsNullOrEmpty(filter.UnitName)) { query = query.Where(x => x.UnitName.Contains(filter.UnitName)); } // 班组名称过滤(模糊查询) if (!string.IsNullOrEmpty(filter.TeamGroupName)) { query = query.Where(x => x.TeamGroupName.Contains(filter.TeamGroupName)); } // 岗位名称过滤(模糊查询) if (!string.IsNullOrEmpty(filter.WorkPostName)) { query = query.Where(x => x.WorkPostName.Contains(filter.WorkPostName)); } } // 默认只返回在岗人员 query = query.Where(x => x.States == Const.ProjectPersonStates_1); var persons = from x in query orderby x.CardNo descending select new Model.ProjectPersonOutput { PersonId = x.PersonId, SitePersonId = x.SitePersonId, CardNo = x.CardNo, PersonName = x.PersonName, SexName = x.SexName, IdentityCard = x.IdentityCard, ProjectId = x.ProjectId, ProjectName = x.ProjectName, ProjectCode = x.ProjectCode, UnitId = x.UnitId, UnitName = x.UnitName, TeamGroupName = x.TeamGroupName, 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, WorkAreaName = x.WorkAreaName, PostType = x.PostType, PersonType = x.PersonType, PersonTypeName = x.PersonType == "2" ? "外聘" : (x.PersonType == "3" ? "第三方" : "员工"), PostTypeName = db.Sys_Const.FirstOrDefault(z => z.GroupId == ConstValue.Group_PostType && z.ConstValue == x.PostType).ConstText, }; return persons.ToList(); } } #endregion #region 获取在岗、离岗、待审人员列表 /// /// 记录数 /// public static int getPersonListCount { get; set; } /// /// 获取在岗、离岗、待审人员列表 /// /// /// /// 0待审1在岗2离岗 /// 查询单位 /// 查询岗位 /// 查询条件 /// public static List 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) && x.States == states select x; if (unitId != Const.UnitId_SEDIN && unitId != Const.UnitId_SEDINNB && !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)); } getPersonListCount = getViews.Count(); if (getPersonListCount == 0) { return null; } else { var persons = from x in getViews join p in db.Person_Persons on x.PersonId equals p.PersonId join y in db.Base_Unit on x.UnitId equals y.UnitId orderby x.InTime descending select new Model.PersonItem { SitePersonId = x.SitePersonId, PersonId = x.PersonId, CardNo = x.CardNo, PersonName = x.PersonName, SexName = (p.Sex == "2" ? "女" : "男"), IdentityCard = x.IdentityCard, Address = p.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 = p.Telephone, PhotoUrl = p.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 = p.IsForeign.HasValue ? p.IsForeign : false, PersonType = p.PersonType, PersonTypeName = p.PersonType == "2" ? "外聘" : (p.PersonType == "3" ? "第三方" : "员工"), States = x.States, }; if (pageIndex > 0) { return persons.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); } else { return persons.ToList(); } } } } /// /// /// /// /// 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 根据培训类型获取项目培训人员信息 /// /// 根据培训类型获取项目培训人员信息 /// /// 项目ID /// 培训单位ID /// 培训岗位ID /// 培训类型ID /// public static List getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, string name, string startDate, string endDate, string isRepeat) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getPersons = from x in db.View_SitePerson_Person where x.ProjectId == projectId select new Model.PersonItem { SitePersonId = x.SitePersonId, 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, InTimeValue = x.InTime, 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(unitIds)) { List unitIdList = Funs.GetStrListByStr(unitIds, ','); getPersons = getPersons.Where(x => unitIdList.Contains(x.UnitId)); } if (!string.IsNullOrEmpty(workPostIds)) { List workPostIdList = Funs.GetStrListByStr(workPostIds, ','); getPersons = getPersons.Where(x => workPostIdList.Contains(x.WorkPostId)); } if (!string.IsNullOrEmpty(name)) { getPersons = getPersons.Where(x => x.PersonName.Contains(name)); } if (!string.IsNullOrEmpty(startDate)) { getPersons = getPersons.Where(x => x.InTimeValue >= Funs.GetNewDateTime(startDate)); } if (!string.IsNullOrEmpty(endDate)) { getPersons = getPersons.Where(x => x.InTimeValue <= Funs.GetNewDateTime(endDate)); } List getTrainPersonList = new List(); var getTrainType = TrainTypeService.GetTrainTypeById(trainTypeId); if ((getTrainType != null && (!getTrainType.IsRepeat.HasValue || getTrainType.IsRepeat == true)) || isRepeat == "1") { return getPersons.ToList(); } else { 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; } } } public static List getTrainingPersonListByTrainTypeId(string projectId, string unitIds, string workPostIds, string trainTypeId, string name) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getPersons = from x in db.View_SitePerson_Person where x.ProjectId == projectId && x.States == Const.ProjectPersonStates_1 select new Model.PersonItem { SitePersonId = x.SitePersonId, 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(unitIds)) { List unitIdList = Funs.GetStrListByStr(unitIds, ','); getPersons = getPersons.Where(x => unitIdList.Contains(x.UnitId)); } if (!string.IsNullOrEmpty(workPostIds)) { List workPostIdList = Funs.GetStrListByStr(workPostIds, ','); getPersons = getPersons.Where(x => workPostIdList.Contains(x.WorkPostId)); } if (!string.IsNullOrEmpty(name)) { getPersons = getPersons.Where(x => x.PersonName.Contains(name)); } List getTrainPersonList = new List(); 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 人员信息保存方法 /// /// 人员信息保存方法 /// /// 人员信息 public static string SaveSitePerson(Model.PersonItem person) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string message = string.Empty; ///人员信息提示 var newPerson = getSavePerson(person); // string personInfo = Person_PersonsService.ValidPersonInfo(newPerson); ///项目人员提示 var newProjectPerson = getSaveProjectPerson(person); string projectPersonInfo = SitePerson_PersonService.ValidPersonInfo(newProjectPerson); if (string.IsNullOrEmpty(projectPersonInfo)) { if (string.IsNullOrEmpty(newPerson.PhotoUrl)) { message += "照片不能为空!"; } if (string.IsNullOrEmpty(newPerson.PersonId)) { var getPersonByIdentityCard = Person_PersonsService.GetPerson_PersonsByIdCard(newPerson.IdentityCard); if (getPersonByIdentityCard != null) { newPerson.PersonId = getPersonByIdentityCard.PersonId; } } if (!string.IsNullOrEmpty(newPerson.PersonId)) { Person_PersonsService.UpdatePersonByProject(newPerson); } else { newPerson.IsOffice = false; newPerson.PersonId = SQLHelper.GetNewID(); Person_PersonsService.AddPerson(newPerson); } newProjectPerson.PersonId = newPerson.PersonId; if (newProjectPerson.SitePersonId != null) { var getProjectPerson = db.SitePerson_Person.FirstOrDefault(x => x.ProjectId == newProjectPerson.ProjectId && x.IdentityCard == newPerson.IdentityCard); if (getProjectPerson != null) { newProjectPerson.SitePersonId = getProjectPerson.SitePersonId; } } if (!string.IsNullOrEmpty(newProjectPerson.SitePersonId)) { Model.Sys_Log newlog = new Sys_Log { UserId = newPerson.PersonId, MenuId = Const.PersonListMenuId, OperationName = "APP修改人员", OperationLog = "修改人员" + newPerson.PersonName, DataId = newPerson.PersonId, ProjectId = person.ProjectId, }; SitePerson_PersonService.UpdateSitePerson(newProjectPerson, newlog); } else { newProjectPerson.SitePersonId = SQLHelper.GetNewID(); SitePerson_PersonService.AddSitePerson(newProjectPerson); } if (!string.IsNullOrEmpty(newPerson.PersonId)) { SaveMeetUrl(newPerson.PersonId, Const.PersonListMenuId, person.AttachUrl1, person.AttachUrl2, person.AttachUrl3, person.AttachUrl4, person.AttachUrl5, person.AttachUrl6); } if (person.States == Const.ProjectPersonStates_0 && !string.IsNullOrEmpty(newProjectPerson.AuditorId)) { APICommonService.SendSubscribeMessage(newProjectPerson.AuditorId, "人员信息待您审核", person.ProjectCode, string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now)); } } else { message = projectPersonInfo ?? ""; } return message; } } #region 人员附件保存方法 /// /// 人员附件保存方法 /// public static void SaveMeetUrl(string personId, string menuId, string url1, string url2, string url3, string url4, string url5, string url6) { 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); } toDoItem.DataId = personId + "#6"; toDoItem.UrlStr = url6; if (!string.IsNullOrEmpty(url6)) { APIUpLoadFileService.SaveAttachUrl(toDoItem); } } #endregion #region 收集人员库信息 /// /// 收集人员库信息 /// public static Model.Person_Persons getSavePerson(Model.PersonItem person) { Model.Person_Persons newPerson = new Model.Person_Persons { PersonId = person.PersonId, PersonName = person.PersonName, UnitId = person.UnitId, WorkPostId = person.WorkPostId, PersonType = person.PersonType, IsForeign = person.IsForeign, IsPost = true, IdcardType = string.IsNullOrEmpty(person.IdcardType) ? "SHENFEN_ZHENGJIAN" : person.IdcardType, IdentityCard = person.IdentityCard, IdcardAddress = person.IdcardAddress, IdcardForever = person.IdcardForever ?? "Y", IdcardStartDate = Funs.GetNewDateTime(person.IdcardStartDate), IdcardEndDate = Funs.GetNewDateTime(person.IdcardEndDate), Telephone = person.Telephone, Sex = person.Sex, Birthday = person.Birthday, //Major = person.Major, //ForeignLanguage = person.ForeignLanguage, CountryCode = string.IsNullOrEmpty(person.CountryCode) ? null : person.CountryCode, ProvinceCode = string.IsNullOrEmpty(person.ProvinceCode) ? null : person.ProvinceCode, Nation = string.IsNullOrEmpty(person.Nation) ? null : person.Nation, PoliticsStatus = string.IsNullOrEmpty(person.PoliticsStatus) ? null : person.PoliticsStatus, EduLevel = string.IsNullOrEmpty(person.EduLevel) ? null : person.EduLevel, MaritalStatus = string.IsNullOrEmpty(person.MaritalStatus) ? null : person.MaritalStatus, //RelativeName = person.RelativeName, //RelativeTel = person.RelativeTel, Address = person.Address, //RoleIds = Funs.GetStringByArray(this.drpProjectRole.SelectedValueArray), PhotoUrl = person.PhotoUrl, IDCardUrl = person.AttachUrl1, //QRCodeAttachUrl = person.AttachUrl5, IDCardBackUrl = person.AttachUrl5, }; string rootUrl = ConfigurationManager.AppSettings["localRoot"]; if (!string.IsNullOrEmpty(rootUrl) && !string.IsNullOrEmpty(person.PhotoUrl)) { newPerson.HeadImage = AttachFileService.SetImageToByteArray(rootUrl + person.PhotoUrl); } return newPerson; } #endregion #region 收集项目人员信息 /// /// 收集项目人员信息 /// public static Model.SitePerson_Person getSaveProjectPerson(Model.PersonItem person) { Model.SitePerson_Person newPerson = new Model.SitePerson_Person { PersonId = person.PersonId, SitePersonId = person.SitePersonId, PersonName = person.PersonName, IdentityCard = person.IdentityCard, UnitId = person.UnitId, ProjectId = person.ProjectId, WorkPostId = string.IsNullOrEmpty(person.WorkPostId) ? null : person.WorkPostId, // RoleIds = Funs.GetStringByArray(this.drpProjectRole.SelectedValueArray), TeamGroupId = string.IsNullOrEmpty(person.TeamGroupId) ? null : person.TeamGroupId, InTime = Funs.GetNewDateTime(person.InTime), AuditorId = person.AuditorId, OutTime = Funs.GetNewDateTime(person.OutTime), OutResult = person.OutResult, States = person.States ?? Const.ProjectPersonStates_0, WorkAreaId = person.WorkAreaId, }; return newPerson; } #endregion #endregion #region 更新人员附件 /// /// 更新人员附件 /// /// public static void SaveSitePersonAttachment(Model.PersonItem person) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getPerson = db.Person_Persons.FirstOrDefault(x => x.IdentityCard == person.IdentityCard || x.PersonId == person.PersonId); if (getPerson == null) { var getSitePerson = db.SitePerson_Person.FirstOrDefault(x => x.SitePersonId == person.PersonId); if (getSitePerson != null) { getPerson = db.Person_Persons.FirstOrDefault(x => x.IdentityCard == getSitePerson.IdentityCard || x.PersonId == getSitePerson.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, person.AttachUrl6); } } } #endregion #region 更新人员数据交换时间 /// /// 更新人员数据交换时间 /// /// 人员ID public static void getUpdatePersonExchangeTime(string sitePersonId, string type) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getPerson = db.SitePerson_Person.FirstOrDefault(e => e.SitePersonId == sitePersonId || e.PersonId == sitePersonId); if (getPerson != null && !string.IsNullOrEmpty(type)) { if (type == "1") { getPerson.ExchangeTime2 = DateTime.Now; } else { getPerson.ExchangeTime = DateTime.Now; } db.SubmitChanges(); } else { if (type == "1") { getPerson.ExchangeTime2 = DateTime.Now; } else { getPerson.ExchangeTime = DateTime.Now; } db.SubmitChanges(); } } } #endregion #region 获取人员信息出入场记录 /// /// 获取人员信息出入场记录 /// /// /// /// /// /// /// public static List 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_SEDIN) { 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 获取人员信息出入场记录 /// /// 获取人员信息出入场记录 /// /// /// /// /// /// /// public static List getPersonInOutList(string projectId, string userUnitId, string unitId, string workPostId, string strParam, 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(userUnitId) && userUnitId != Const.UnitId_SEDIN) { personInOuts = personInOuts.Where(x => x.UnitId == userUnitId); } if (!string.IsNullOrEmpty(unitId)) { personInOuts = personInOuts.Where(x => x.UnitId == unitId); } if (!string.IsNullOrEmpty(workPostId)) { personInOuts = personInOuts.Where(x => x.WorkPostId == workPostId); } if (startTimeD.HasValue) { personInOuts = personInOuts.Where(x => x.ChangeTimeD >= startTimeD); } if (endTimeD.HasValue) { personInOuts = personInOuts.Where(x => x.ChangeTimeD <= endTimeD); } if (!string.IsNullOrEmpty(strParam)) { personInOuts = personInOuts.Where(x => x.PersonName.Contains(strParam)); } return personInOuts.OrderByDescending(x => x.ChangeTimeD).ToList(); } } #endregion #region 根据人员ID获取个人出入场记录 /// /// 根据人员ID获取个人出入场记录 /// /// /// /// /// public static List getPersonInOutListByPersonId(string personId, 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.PersonId == personId 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 (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 根据条件获取人员出入场记录(支持多条件过滤) /// /// 根据条件获取人员出入场记录(支持多条件过滤) /// /// 查询过滤条件 /// public static List getPersonInOutListByFilter(Model.PersonInOutRecordInput filter) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var query = from x in db.SitePerson_PersonInOut join y in db.SitePerson_Person on x.PersonId equals y.PersonId join z in db.Base_Project on x.ProjectId equals z.ProjectId where x.ChangeTime >= filter.StartTime && x.ChangeTime <= filter.EndTime select new Model.PersonInOutItem { PersonId = x.PersonId, PersonName = y.PersonName, ProjectId = x.ProjectId, ProjectCode = z.ProjectCode, ProjectName = z.ProjectName, UnitId = y.UnitId, UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName, IdentityCard = x.IdentityCard, 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 (filter != null) { // 单位名称过滤(模糊查询) if (!string.IsNullOrEmpty(filter.UnitName)) { query = query.Where(x => x.UnitName.Contains(filter.UnitName)); } // 项目代号过滤(模糊查询) if (!string.IsNullOrEmpty(filter.ProjectCode)) { query = query.Where(x => x.ProjectCode.Contains(filter.ProjectCode)); } // 人员姓名过滤(模糊查询) if (!string.IsNullOrEmpty(filter.PersonName)) { query = query.Where(x => x.PersonName.Contains(filter.PersonName)); } } return query.OrderByDescending(x => x.ChangeTimeD).ToList(); } } #endregion #region 根据identityCard获取人员资质信息 /// /// 根据identityCard获取人员资质信息 /// /// /// 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.Person_Persons.First(z => z.PersonId == x.AuditorId).PersonName, Remark = x.Remark, CompileMan = x.CompileMan, CompileManName = db.Person_Persons.First(z => z.PersonId == x.CompileMan).PersonName, CompileDate = string.Format("{0:yyyy-MM-dd}", x.CompileDate), AuditDate = string.Format("{0:yyyy-MM-dd}", x.AuditDate), AuditorName = db.Person_Persons.First(z => z.PersonId == x.AuditorId).PersonName, AttachUrl = APIUpLoadFileService.getFileUrl(x.PersonQualityId, null), }; return getLists.FirstOrDefault(); } } #endregion #region 根据identityCard获取人员资质信息 /// /// 根据identityCard获取人员资质信息 /// /// /// public static List 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获取特岗人员资质信息 /// /// 根据projectId、unitid获取特岗人员资质信息 /// /// 项目ID /// 单位ID /// 数据类型0-已过期;1-即将过期;2-无证书 /// 页码 /// public static List 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.Person_Persons.First(z => z.PersonId == x.AuditorId).PersonName, Remark = y.Remark, CompileMan = y.CompileMan, CompileManName = db.Person_Persons.First(z => z.PersonId == y.CompileMan).PersonName, CompileDate = string.Format("{0:yyyy-MM-dd}", y.CompileDate), AuditDate = string.Format("{0:yyyy-MM-dd}", y.AuditDate), AuditorName = db.Person_Persons.First(z => z.PersonId == x.AuditorId).PersonName, 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 人员资质信息保存方法 /// /// 人员资质信息保存方法 /// /// 人员信息 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 获取异常人员信息出入场记录 /// /// 获取异常人员信息出入场记录 /// /// /// 单位ID /// 开始时间 /// 结束时间 /// 入场异常 0 出场异常 1 /// 页码 /// public static List 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 getAbnormalPersonInOutList = new List(); //// 入场异常 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(); } } /// /// /// /// /// /// /// /// /// public static List getPersonInOutLists(string projectId, string unitId, DateTime startTimeD, DateTime endTimeD) { var personInOuts = from x in Funs.DB.SitePerson_PersonInOut join y in Funs.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 = Funs.DB.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName, WorkPostId = y.WorkPostId, WorkPostName = Funs.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); } return personInOuts.ToList(); } #endregion public static string getStrTrainRecordByPersonId(string personId) { string strValues = string.Empty; var getDataLists = from x in Funs.DB.EduTrain_TrainRecord join y in Funs.DB.Base_TrainType on x.TrainTypeId equals y.TrainTypeId join z in Funs.DB.EduTrain_TrainRecordDetail on x.TrainingId equals z.TrainingId where z.PersonId == personId orderby x.TrainStartDate descending select new { y.TrainTypeName, x.TrainStartDate, CheckResultName = z.CheckResult ? "合格" : "不合格", z.PersonId, }; if (getDataLists.Count() > 0) { foreach (var item in getDataLists) { string strV = string.Format("{0:yyyy-MM-dd HH:mm}", item.TrainStartDate) + " " + item.TrainTypeName + " " + item.CheckResultName + ";"; strValues += strV; } } return strValues; } public static string getStrTrainingTestRecordByPersonId(string personId) { string strValues = string.Empty; var getDataLists = from x in Funs.DB.Training_TestRecord join z in Funs.DB.Training_TestPlan on x.TestPlanId equals z.TestPlanId where x.TestManId == personId orderby z.PlanDate descending select new { z.PlanName, z.PlanDate, CheckResultName = x.TestScores >= 60 ? "合格" : "不合格", z.TestPlanId, }; if (getDataLists.Count() > 0) { foreach (var item in getDataLists) { string strV = string.Format("{0:yyyy-MM-dd HH:mm}", item.PlanDate) + " " + item.PlanName + " " + item.CheckResultName + ";"; strValues += strV; } } return strValues; } } }