using FineUIPro; using Microsoft.Office.Interop.Excel; using Microsoft.Office.Interop.Word; using Model; using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; namespace BLL { /// /// 人员信息 /// public static class Person_PersonsService { public static Model.SGGLDB db = Funs.DB; #region 获取人员列表信息 /// /// 记录数 /// public static int count { get; set; } /// /// 定义变量 /// private static IQueryable getDataLists = from x in db.Person_Persons where x.PersonId != Const.sysglyId && x.PersonId != Const.hfnbdId select x; /// /// 数据列表 /// /// 单位ID /// 部门id /// 项目id /// 姓名 /// 身份证号码 /// 是否在岗 /// 人员类型 /// /// public static IEnumerable getListData(string unitId, string departId, string projetcId, string name, string idCard, string isPost, string personType, string account,string[] workPostIds, Grid Grid1) { IQueryable getDataList = getDataLists.OrderBy(x => x.UnitId).ThenBy(x => x.DepartId); if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null) { getDataList = getDataList.Where(e => e.UnitId == unitId); } if (!string.IsNullOrEmpty(departId) && departId != Const._Null) { getDataList = getDataList.Where(e => e.DepartId == departId); } if (!string.IsNullOrEmpty(projetcId) && projetcId != Const._Null) { var idLists = (from x in db.SitePerson_PersonItem where x.ProjectId == projetcId && !x.OutTime.HasValue select x.PersonId).Distinct().ToList(); getDataList = getDataList.Where(x => idLists.Contains(x.PersonId)); } if (!string.IsNullOrEmpty(personType) && personType != Const._Null) { getDataList = getDataList.Where(e => e.PersonType == personType); } if (!string.IsNullOrEmpty(name)) { getDataList = getDataList.Where(e => e.PersonName.Contains(name)); } if (!string.IsNullOrEmpty(account)) { getDataList = getDataList.Where(e => e.Account.Contains(account)); } if (!string.IsNullOrEmpty(idCard)) { getDataList = getDataList.Where(e => e.IdentityCard.Contains(idCard)); } if (!string.IsNullOrEmpty(isPost) && isPost != "-1" && isPost != Const._Null) { if (isPost == Const._True) { getDataList = getDataList.Where(e => !e.IsPost.HasValue || e.IsPost == true); } else { getDataList = getDataList.Where(e => e.IsPost == false); } } if (workPostIds != null && workPostIds.Count() > 0) { getDataList = getDataList.Where(e => workPostIds.Contains(e.WorkPostId)); } count = getDataList.Count(); if (count == 0) { return null; } getDataList = SortConditionHelper.SortingAndPaging(getDataList, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize); return from x in getDataList select new { x.PersonId, x.PersonName, x.JobNum, x.Account, x.IdentityCard, Sex = x.Sex ?? "1", x.Birthday, x.UnitId, db.Base_Unit.First(u => u.UnitId == x.UnitId).UnitName, x.DepartId, db.Base_Depart.First(u => u.DepartId == x.DepartId).DepartName, x.WorkPostId, WorkPostName = WorkPostService.getWorkPostNamesWorkPostIds(x.WorkPostId), x.PostTitleId, PostTitleName = PostTitleService.getPostTitleNameById(x.PostTitleId), x.PostTitleDate, x.IsOffice, x.RoleIds, RoleName = RoleService.getRoleNamesRoleIds(x.RoleIds), x.CurrentProjectId, CurrentProjectName = getCurrentProjectName(x.PersonId), x.CurrentProjectWorkPostId, CurrentProjectWorkPostName = getCurrentProjectWorkPostName(x.PersonId), IsPost = x.IsPost ?? true, x.SignatureUrl, x.Address, x.Telephone, x.EduLevel, EduLevelName = BasicDataService.GetDictNameByDictCode(x.EduLevel), x.Major, x.PersonType, PersonTypeName = DropListService.getPersonTypeNameByValue(x.PersonType), x.ValidityDate, x.IntoDate, x.WorkDate, x.RetirementDate, PositionName = PositionService.GetPositionNameById(x.PositionId), x.Graduate, x.ForeignLanguage, NationName = BasicDataService.GetDictNameByDictCode(x.Nation), PoliticsStatusName = BasicDataService.GetDictNameByDictCode(x.PoliticsStatus), MaritalStatusName = BasicDataService.GetDictNameByDictCode(x.MaritalStatus), x.RelativeName, x.RelativeTel, }; } #endregion #region 获取当前项目及岗位 /// /// /// /// /// /// public static string getCurrentProjectName(string PersonId) { string name = string.Empty; var getItem = Funs.DB.SitePerson_PersonItem.Where(u => u.PersonId == PersonId && !u.OutTime.HasValue); if (getItem.Count() > 0) { foreach (var item in getItem) { string pname= ProjectService.GetShortNameByProjectId(item.ProjectId); if (string.IsNullOrEmpty(name)) { name = pname; } else { if (!name.Contains(pname)) { name += "," + pname; } } } } return name; } /// /// /// /// /// /// public static string getCurrentProjectWorkPostName(string PersonId) { string name = string.Empty; var getItem = Funs.DB.SitePerson_PersonItem.Where(u => u.PersonId == PersonId && !u.OutTime.HasValue); if (getItem.Count() > 0) { foreach (var item in getItem) { string pname = WorkPostService.getWorkPostNamesWorkPostIds(item.WorkPostId); if (string.IsNullOrEmpty(name)) { name = pname; } else { if (!name.Contains(pname)) { name += "," + pname; } } } } return name; } #endregion #region 根据主键获取人员信息 /// /// 根据主键获取人员信息 /// /// /// public static Model.Person_Persons GetPerson_PersonsById(string PersonId) { return Funs.DB.Person_Persons.FirstOrDefault(x => x.PersonId == PersonId); } #endregion /// /// 根据主键,项目id判断当前人单位是否是总包单位 /// /// /// /// public static bool IsGeneralUnitByPersonId(string PersonId,string ProjectId) { bool result = false; var PersonEntity = GetPerson_PersonsById(PersonId); if (PersonEntity!=null) { var pUnit = Funs.DB.Project_ProjectUnit.FirstOrDefault(e => e.ProjectId == ProjectId && e.UnitId == PersonEntity.UnitId); if (pUnit != null) { if (pUnit.UnitType == Const.ProjectUnitType_1 || pUnit.UnitType == Const.ProjectUnitType_2) { result = true; } } } return result; } #region 根据身份证号码获取人员信息 /// /// 根据身份证号码获取人员信息 /// /// /// public static Model.Person_Persons GetPerson_PersonsByIdCard(string idCard) { return Funs.DB.Person_Persons.FirstOrDefault(x => x.IdentityCard == idCard); } #endregion #region 根据工号获取人员信息 /// /// 根据工号获取人员信息 /// /// /// public static Model.Person_Persons GetPerson_PersonsByJobNum(string jobNum) { return Funs.DB.Person_Persons.FirstOrDefault(x => x.JobNum == jobNum); } #endregion #region 根据账号获取人员信息 --在岗 /// /// 根据账号获取人员信息 /// /// /// public static Model.Person_Persons GetPerson_PersonsByAccount(string account) { return Funs.DB.Person_Persons.FirstOrDefault(x => x.Account == account && (x.IsPost == true || !x.IsPost.HasValue)); } #endregion #region 根据主键获取人员名称 /// /// 根据主键获取人员名称 /// /// /// public static string GetPersonsNameById(string personId) { string name = string.Empty; if (!string.IsNullOrEmpty(personId)) { var getPerson = Funs.DB.Person_Persons.FirstOrDefault(x => x.PersonId == personId); if (getPerson != null) { name = getPerson.PersonName; } } return name; } #endregion #region 根据姓名获取人员名称 ?? todo /// /// 根据主键获取人员名称 /// /// /// public static Model.Person_Persons GetPersonsByName(string name) { return Funs.DB.Person_Persons.FirstOrDefault(x => x.PersonName == name); } #endregion #region 根据多用户ID得到用户名称字符串 /// /// 根据多用户ID得到用户名称字符串 /// /// /// public static string getPersonsNamesPersonIds(object personIds) { string name = string.Empty; if (personIds != null) { string[] ids = personIds.ToString().Split(','); foreach (string id in ids) { var q = GetPersonsNameById(id); if (q != null) { name += q + ","; } } if (name != string.Empty) { name = name.Substring(0, name.Length - 1); ; } } return name; } #endregion #region 根据项目人员id 获取人员库人员信息 /// /// 根据项目人员id 获取人员库人员信息 /// /// /// public static Model.Person_Persons GetPerson_PersonsByProjectPersonId(string projectPersonId) { var getProjectPerson = SitePerson_PersonService.GetSitePersonById(projectPersonId); if (getProjectPerson != null) { return GetPerson_PersonsByIdCard(getProjectPerson.IdentityCard); } else { return GetPerson_PersonsById(projectPersonId); } } #endregion #region 根据角色获取角色下用户 /// /// 根据角色获取角色下用户 /// /// public static List GetPerson_PersonsListByRoleId(string roleId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { return (from x in db.Person_Persons where x.RoleIds.Contains(roleId) select x).ToList(); } } #endregion #region 根据人员ID 获取 本部及项目上所有角色集合List /// /// 根据人员ID 获取 本部及项目上所有角色集合List /// /// 用户Id /// 用户信息 public static List GetRoleListByProjectIdPersonId(string projectId, string personId) { List roleList = new List(); var getUser = GetPerson_PersonsById(personId); if (getUser != null) { string rolesStr = string.Empty; if (!string.IsNullOrEmpty(getUser.RoleIds)) { rolesStr = getUser.RoleIds; } var pUser = SitePerson_PersonService.GetSitePersonByProjectIdPersonId(projectId, personId); ////用户 if (pUser != null && !string.IsNullOrEmpty(pUser.RoleIds)) { if (string.IsNullOrEmpty(rolesStr)) { rolesStr = pUser.RoleIds; } else { if (!rolesStr.Contains(pUser.RoleIds)) { rolesStr += "," + pUser.RoleIds; } } } roleList = Funs.GetStrListByStr(rolesStr, ','); } return roleList; } #endregion #region 根据人员ID获取签名 /// /// 根据人员ID获取签名 /// /// /// public static string getSignatureName(string personId) { string userName = string.Empty; var getUser = Person_PersonsService.GetPerson_PersonsById(personId); if (getUser != null) { userName = getUser.PersonName; if (!string.IsNullOrEmpty(getUser.SignatureUrl)) { string url = Funs.RootPath + getUser.SignatureUrl; FileInfo info = new FileInfo(url); if (info.Exists) { userName = ""; } } } return userName; } #endregion #region 根据项目ID单位ID 获取人员下拉框 (项目角色 且可审批) /// /// 根据项目ID单位ID 获取人员下拉框 (项目角色 且可审批) /// /// public static List GetProjectRoleUserListByProjectId(string projectId, string unitId) { Model.SGGLDB db = Funs.DB; IQueryable users = null; if (!string.IsNullOrEmpty(projectId)) { var getSitepersons = from x in db.SitePerson_Person join p in db.Person_Persons on x.PersonId equals p.PersonId where x.ProjectId == projectId && x.States == Const.State_1 && x.RoleIds != null && p.Account != null select x; List returUsers = new List(); List getPUser = new List(); if (!string.IsNullOrEmpty(unitId)) { /// 为啥 有单位id 还判断单位类型 /// (u.UnitId == unitId || u.UnitType == BLL.Const.ProjectUnitType_1 || u.UnitType == BLL.Const.ProjectUnitType_3 || u.UnitType == BLL.Const.ProjectUnitType_4) getPUser = (from x in getSitepersons join u in db.Project_ProjectUnit on new { x.ProjectId, x.UnitId } equals new { u.ProjectId, u.UnitId } where x.UnitId == unitId select x).ToList(); } else { getPUser = getSitepersons.ToList(); } if (getPUser.Count() > 0) { foreach (var item in getPUser) { List roleIdList = Funs.GetStrListByStr(item.RoleIds, ','); var getRoles = db.Sys_Role.FirstOrDefault(x => roleIdList.Contains(x.RoleId)); if (getRoles != null) { string userName = RoleService.getRoleNamesRoleIds(item.RoleIds) + "-" + Person_PersonsService.GetPersonsNameById(item.PersonId); Model.SpSysUserItem newsysUser = new Model.SpSysUserItem { PersonId = item.PersonId, PersonName = userName, }; returUsers.Add(newsysUser); } } } return returUsers; } else { if (!string.IsNullOrEmpty(unitId)) { users = (from x in db.Person_Persons join z in db.Sys_Role on x.RoleIds equals z.RoleId where (x.IsPost == true || !x.IsPost.HasValue) && x.UnitId == unitId && x.Account != null && x.RoleIds != null orderby x.JobNum select new Model.SpSysUserItem { PersonName = z.RoleName + "- " + x.PersonName, PersonId = x.PersonId, }); } else { users = (from x in db.Person_Persons join z in db.Sys_Role on x.RoleIds equals z.RoleId where (x.IsPost == true || !x.IsPost.HasValue) && x.Account != null && x.RoleIds != null orderby x.JobNum select new Model.SpSysUserItem { PersonName = z.RoleName + "- " + x.PersonName, PersonId = x.PersonId, }); } } return users.ToList(); } #endregion #region 根据项目ID角色Id获取用户下拉选项 /// /// 根据项目ID角色Id获取用户下拉选项 /// /// public static List GetUserListByProjectIdUnitIdRoleId(string projectId, string unitIds, string roleIds) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List listRoles = Funs.GetStrListByStr(roleIds, ','); List listUnitIds = Funs.GetStrListByStr(unitIds, ','); List list = new List(); if (!string.IsNullOrEmpty(projectId)) { var getProjectPersons = from x in db.SitePerson_Person where x.ProjectId == projectId && x.States == Const.State_1 && x.RoleIds != null select x; if (listUnitIds.Count() > 0) { getProjectPersons = getProjectPersons.Where(x => listUnitIds.Contains(x.UnitId)); } if (listRoles.Count() > 0) { foreach (var item in listRoles) { var getNewlist = getProjectPersons.Where(x => x.RoleIds.Contains(item)); if (getNewlist.Count() > 0) { var getPersonIdList = getNewlist.Select(p => p.PersonId).ToList(); var getPerson = db.Person_Persons.Where(x => getPersonIdList.Contains(x.PersonId)); list.AddRange(getPerson); } } } else { list = (from x in getProjectPersons join y in db.Person_Persons on x.PersonId equals y.PersonId select y).ToList(); } } else { var getPersons = from x in db.Person_Persons where x.PersonId != Const.hfnbdId && x.PersonId != Const.sedinId && (x.IsPost == true || !x.IsPost.HasValue) && x.Account != null select x; if (listUnitIds.Count() > 0) { getPersons = getPersons.Where(x => listUnitIds.Contains(x.UnitId)); } if (listRoles.Count() > 0) { foreach (var item in listRoles) { var getNewlist = getPersons.Where(x => x.RoleIds.Contains(item)); if (getNewlist.Count() > 0) { list.AddRange(getNewlist); } } } else { list = getPersons.ToList(); } } return list.OrderBy(x => x.PersonName).ToList(); } } #endregion #region 根据项目ID单位ID获取 用户ListItem /// /// 根据项目ID单位ID获取 用户ListItem /// /// /// /// public static System.Web.UI.WebControls.ListItem[] GetUserByUnitId(string projectId, string unitId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getUser = GetUserListByProjectIdUnitIdRoleId(projectId, unitId, null); System.Web.UI.WebControls.ListItem[] lis = new System.Web.UI.WebControls.ListItem[getUser.Count()]; for (int i = 0; i < getUser.Count(); i++) { lis[i] = new System.Web.UI.WebControls.ListItem(getUser[i].PersonName ?? "", getUser[i].PersonId.ToString()); } return lis; } } #endregion #region 根据单位Id部门获取用户下拉选项 /// /// 根据单位Id部门获取用户下拉选项 /// /// public static List GetUserListByUnitIdDepartId(string unitId, string DepartId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List list = new List(); var getPersons = from x in db.Person_Persons where x.IsPost == true select x; if (!string.IsNullOrEmpty(unitId)) { getPersons = getPersons.Where(x => x.UnitId == unitId); } if (!string.IsNullOrEmpty(DepartId)) { getPersons = getPersons.Where(x => x.DepartId == DepartId); } list = getPersons.OrderBy(x => x.UnitId).OrderBy(x => x.PersonName).ToList(); return list; } } #endregion #region 人员信息 增删改 /// /// 增加人员信息 /// /// 人员实体 public static void AddPerson(Model.Person_Persons person) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string password = Funs.getInitialPassword(person.UnitId, person.IdentityCard); Model.Person_Persons newPerson = new Model.Person_Persons { PersonId = person.PersonId, UnitId = person.UnitId, DepartId = person.DepartId, WorkPostId = person.WorkPostId, JobNum = person.JobNum, PersonName = person.PersonName, Account = person.Account, RawPassword = password, Password =Funs.EncryptionPassword(password), IsOffice = person.IsOffice, RoleIds = person.RoleIds, IdentityCard = person.IdentityCard, IdcardType = person.IdcardType, IdcardStartDate = person.IdcardStartDate, IdcardEndDate = person.IdcardEndDate, IdcardForever = person.IdcardForever, IdcardAddress = person.IdcardAddress, Telephone = person.Telephone, Sex = person.Sex, Birthday = person.Birthday, Address = person.Address, PhotoUrl = person.PhotoUrl, HeadImage = person.HeadImage, QRCodeAttachUrl = person.QRCodeAttachUrl, IDCardUrl = person.IDCardUrl, IDCardBackUrl = person.IDCardBackUrl, IsForeign = person.IsForeign, PersonType = person.PersonType, MaritalStatus = person.MaritalStatus, PoliticsStatus = person.PoliticsStatus, PostTitleId = person.PostTitleId, PostTitleDate = person.PostTitleDate, PositionId = person.PositionId, Nation = person.Nation, EduLevel = person.EduLevel, ForeignLanguage = person.ForeignLanguage, CountryCode = person.CountryCode, ProvinceCode = person.ProvinceCode, IsPost = person.IsPost ?? true, Graduate = person.Graduate, Major = person.Major, IntoDate = person.IntoDate, ValidityDate = person.ValidityDate, OpenId = person.OpenId, CurrentProjectId = person.CurrentProjectId, CurrentProjectRoleId = person.CurrentProjectRoleId, CurrentProjectWorkPostId = person.CurrentProjectWorkPostId, LastMenuType = person.LastMenuType, LastIsOffice = person.LastIsOffice, LastProjectId = person.LastProjectId, DataFrom = person.DataFrom, OldDataId = person.OldDataId, IsCardNoOK = IDCardValid.CheckIDCard(person.IdentityCard), WorkDate = person.WorkDate, RetirementDate = person.RetirementDate, RelativeName = person.RelativeName, RelativeTel = person.RelativeTel, MultiProject = person.MultiProject, HomePageType = person.HomePageType, }; if (string.IsNullOrEmpty(person.QRCodeAttachUrl)) { ///生成二维码 newPerson.QRCodeAttachUrl = BLL.CreateQRCodeService.CreateCode_Simple("person$" + person.IdentityCard); } if (!string.IsNullOrEmpty(person.SignatureUrl)) { newPerson. SignatureUrl = person.SignatureUrl; } db.Person_Persons.InsertOnSubmit(newPerson); db.SubmitChanges(); } } /// /// 修改人员信息 /// /// 人员实体 public static void UpdatePerson(Model.Person_Persons person) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { bool isChange = false; Model.Person_Persons newPerson = db.Person_Persons.FirstOrDefault(e => e.PersonId == person.PersonId); if (newPerson != null) { if (newPerson.UnitId != person.UnitId) { newPerson.UnitId = person.UnitId; isChange=true; } newPerson.DepartId = person.DepartId; newPerson.WorkPostId = person.WorkPostId; newPerson.JobNum = person.JobNum; if (newPerson.PersonName != person.PersonName) { newPerson.PersonName = person.PersonName; isChange = true; } newPerson.Account = person.Account; newPerson.IsOffice = person.IsOffice; newPerson.RoleIds = person.RoleIds; if (newPerson.IdentityCard != person.IdentityCard) { newPerson.IdentityCard = person.IdentityCard; newPerson.IsCardNoOK = IDCardValid.CheckIDCard(person.IdentityCard); isChange = true; } newPerson.IdcardType = person.IdcardType; newPerson.IdcardStartDate = person.IdcardStartDate; newPerson.IdcardEndDate = person.IdcardEndDate; newPerson.IdcardForever = person.IdcardForever; newPerson.IdcardAddress = person.IdcardAddress; if (!string.IsNullOrEmpty(person.Telephone) && newPerson.Telephone != person.Telephone) { newPerson.Telephone = person.Telephone; } newPerson.Birthday = person.Birthday; newPerson.Sex = person.Sex; newPerson.Address = person.Address; newPerson.PhotoUrl = person.PhotoUrl; newPerson.HeadImage = person.HeadImage; newPerson.IDCardUrl = person.IDCardUrl; newPerson.IDCardBackUrl = person.IDCardBackUrl; if (!string.IsNullOrEmpty(person.SignatureUrl)) { newPerson.SignatureUrl = person.SignatureUrl; } newPerson.IsForeign = person.IsForeign; newPerson.PersonType = person.PersonType; newPerson.MaritalStatus = person.MaritalStatus; newPerson.PoliticsStatus = person.PoliticsStatus; newPerson.PostTitleId = person.PostTitleId; newPerson.PostTitleDate = person.PostTitleDate; newPerson.PositionId = person.PositionId; newPerson.Nation = person.Nation; newPerson.EduLevel = person.EduLevel; newPerson.ForeignLanguage = person.ForeignLanguage; newPerson.CountryCode = person.CountryCode; newPerson.ProvinceCode = person.ProvinceCode; newPerson.IsPost = person.IsPost ?? true; newPerson.Graduate = person.Graduate; newPerson.Major = person.Major; newPerson.IntoDate = person.IntoDate; newPerson.ValidityDate = person.ValidityDate; newPerson.OpenId = person.OpenId; newPerson.CurrentProjectId = person.CurrentProjectId; newPerson.CurrentProjectRoleId = person.CurrentProjectRoleId; newPerson.CurrentProjectWorkPostId = person.CurrentProjectWorkPostId; newPerson.LastMenuType = person.LastMenuType; newPerson.LastIsOffice = person.LastIsOffice; newPerson.LastProjectId = person.LastProjectId; newPerson.DataFrom = person.DataFrom; newPerson.OldDataId = person.OldDataId; newPerson.WorkDate = person.WorkDate; newPerson.RetirementDate = person.RetirementDate; newPerson.RelativeName = person.RelativeName; newPerson.RelativeTel = person.RelativeTel; newPerson.MultiProject = person.MultiProject; newPerson.HomePageType = person.HomePageType; newPerson.LogWorkPostId = person.LogWorkPostId; newPerson.LogMachineId = person.LogMachineId; newPerson.IsCardNoOK = IDCardValid.CheckIDCard(person.IdentityCard); if (string.IsNullOrEmpty(person.QRCodeAttachUrl)) { ///生成二维码 newPerson.QRCodeAttachUrl = BLL.CreateQRCodeService.CreateCode_Simple("person$" + newPerson.IdentityCard); } else { newPerson.QRCodeAttachUrl = person.QRCodeAttachUrl; } db.SubmitChanges(); if (isChange) { SetProjectPersonUnit(person); } /// 人员不在职位,当前人所在项目 都出场 if (person.IsPost == false) { var getSitePersons = from x in db.SitePerson_Person where x.PersonId == person.PersonId && x.States != Const.ProjectPersonStates_2 select x; foreach (var item in getSitePersons) { SitePerson_PersonService.SetSitePerson_PersonStates(item.SitePersonId, Const.ProjectPersonStates_2, DateTime.Now); } } } } } public static void UpdatePerson_Persons(Model.Person_Persons newtable) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { Model.Person_Persons table = db.Person_Persons.FirstOrDefault(x => x.PersonId == newtable.PersonId); if (table != null) { table.PersonId = newtable.PersonId; table.UnitId = newtable.UnitId; table.DepartId = newtable.DepartId; table.WorkPostId = newtable.WorkPostId; table.JobNum = newtable.JobNum; table.PersonName = newtable.PersonName; table.Account = newtable.Account; table.IsOffice = newtable.IsOffice; table.RoleIds = newtable.RoleIds; table.IdentityCard = newtable.IdentityCard; table.IdcardType = newtable.IdcardType; table.IdcardStartDate = newtable.IdcardStartDate; table.IdcardEndDate = newtable.IdcardEndDate; table.IdcardForever = newtable.IdcardForever; table.IdcardAddress = newtable.IdcardAddress; table.Telephone = newtable.Telephone; table.Sex = newtable.Sex; table.Birthday = newtable.Birthday; table.Address = newtable.Address; table.PhotoUrl = newtable.PhotoUrl; table.HeadImage = newtable.HeadImage; table.QRCodeAttachUrl = newtable.QRCodeAttachUrl; table.IDCardUrl = newtable.IDCardUrl; table.IDCardBackUrl = newtable.IDCardBackUrl; if (!string.IsNullOrEmpty(newtable.SignatureUrl)) { table.SignatureUrl = newtable.SignatureUrl; } table.IsForeign = newtable.IsForeign; table.MaritalStatus = newtable.MaritalStatus; table.PoliticsStatus = newtable.PoliticsStatus; table.PostTitleId = newtable.PostTitleId; table.PostTitleDate = newtable.PostTitleDate; table.PositionId = newtable.PositionId; table.Nation = newtable.Nation; table.EduLevel = newtable.EduLevel; table.ForeignLanguage = newtable.ForeignLanguage; table.CountryCode = newtable.CountryCode; table.ProvinceCode = newtable.ProvinceCode; table.IsPost = newtable.IsPost; table.Graduate = newtable.Graduate; table.Major = newtable.Major; table.IntoDate = newtable.IntoDate; table.WorkDate = newtable.WorkDate; table.RetirementDate = newtable.RetirementDate; table.ValidityDate = newtable.ValidityDate; table.OpenId = newtable.OpenId; table.CurrentProjectId = newtable.CurrentProjectId; table.CurrentProjectRoleId = newtable.CurrentProjectRoleId; table.CurrentProjectWorkPostId = newtable.CurrentProjectWorkPostId; table.LoginProjectId = newtable.LoginProjectId; table.LastMenuType = newtable.LastMenuType; table.LastIsOffice = newtable.LastIsOffice; table.LastProjectId = newtable.LastProjectId; table.DataFrom = newtable.DataFrom; table.OldDataId = newtable.OldDataId; table.IsCardNoOK = newtable.IsCardNoOK; table.RelativeName = newtable.RelativeName; table.RelativeTel = newtable.RelativeTel; table.Email = newtable.Email; table.CertificateId = newtable.CertificateId; table.PersonType = newtable.PersonType; table.MultiProject = newtable.MultiProject; table.HomePageType = newtable.HomePageType; if (string.IsNullOrEmpty(newtable.QRCodeAttachUrl)) { ///生成二维码 table.QRCodeAttachUrl = BLL.CreateQRCodeService.CreateCode_Simple("person$" + newtable.IdentityCard); } db.SubmitChanges(); } } } public static void DeletePerson_PersonsById(string PersonId) { Model.Person_Persons table = db.Person_Persons.FirstOrDefault(x => x.PersonId == PersonId); if (table != null) { db.Person_Persons.DeleteOnSubmit(table); db.SubmitChanges(); } } /// /// 更新项目人员单位 /// /// /// public static void SetProjectPersonUnit(Model.Person_Persons person) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getSitepersons = from x in db.SitePerson_Person where x.PersonId == person.PersonId select x; if (getSitepersons.Count() > 0) { foreach (var item in getSitepersons) { item.UnitId = person.UnitId; item.IdentityCard = person.IdentityCard; item.PersonName = person.PersonName; db.SubmitChanges(); } } } } /// /// 修改人员信息 /// /// 人员实体 public static void UpdatePerson_User(Model.Person_Persons person) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { Model.Person_Persons newPerson = db.Person_Persons.FirstOrDefault(e => e.PersonId == person.PersonId); if (newPerson != null) { newPerson.UnitId = person.UnitId; newPerson.DepartId = person.DepartId; newPerson.Telephone = person.Telephone; newPerson.JobNum = person.JobNum; newPerson.PersonName = person.PersonName; newPerson.Account = person.Account; newPerson.IsOffice = person.IsOffice; newPerson.RoleIds = person.RoleIds; newPerson.IsCardNoOK = IDCardValid.CheckIDCard(person.IdentityCard); if (string.IsNullOrEmpty(person.QRCodeAttachUrl)) { ///生成二维码 newPerson.QRCodeAttachUrl = BLL.CreateQRCodeService.CreateCode_Simple("person$" + newPerson.IdentityCard); } else { newPerson.QRCodeAttachUrl = person.QRCodeAttachUrl; } db.SubmitChanges(); } } } /// /// 根据项目人员修改人员信息 /// /// 人员实体 public static void UpdatePersonByProject(Model.Person_Persons person) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { Model.Person_Persons newPerson = db.Person_Persons.FirstOrDefault(e => e.PersonId == person.PersonId); if (newPerson != null) { newPerson.UnitId = person.UnitId; //newPerson.DepartId = person.DepartId; // newPerson.WorkPostId = person.WorkPostId; // newPerson.JobNum = person.JobNum; newPerson.PersonName = person.PersonName; newPerson.Account = person.Account; //newPerson.IsOffice = person.IsOffice; // newPerson.RoleIds = person.RoleIds; //if (newPerson.IdentityCard != person.IdentityCard) //{ // newPerson.IdentityCard = person.IdentityCard; // newPerson.IsCardNoOK = IDCardValid.CheckIDCard(person.IdentityCard); //} newPerson.IdcardType = person.IdcardType; newPerson.IdcardStartDate = person.IdcardStartDate; newPerson.IdcardEndDate = person.IdcardEndDate; newPerson.IdcardForever = person.IdcardForever; newPerson.IdcardAddress = person.IdcardAddress; newPerson.Telephone = person.Telephone; newPerson.Birthday = person.Birthday; newPerson.Sex = person.Sex; newPerson.Address = person.Address; newPerson.PhotoUrl = person.PhotoUrl; newPerson.HeadImage = person.HeadImage; newPerson.IDCardUrl = person.IDCardUrl; newPerson.IDCardBackUrl = person.IDCardBackUrl; if (!string.IsNullOrEmpty(person.SignatureUrl)) { newPerson.SignatureUrl = person.SignatureUrl; } newPerson.IsForeign = person.IsForeign; newPerson.PersonType = person.PersonType; newPerson.MaritalStatus = person.MaritalStatus; newPerson.PoliticsStatus = person.PoliticsStatus; newPerson.PostTitleId = person.PostTitleId; newPerson.PostTitleDate = person.PostTitleDate; newPerson.PositionId = person.PositionId; newPerson.Nation = person.Nation; newPerson.EduLevel = person.EduLevel; newPerson.ForeignLanguage = person.ForeignLanguage; newPerson.CountryCode = person.CountryCode; newPerson.ProvinceCode = person.ProvinceCode; // newPerson.IsPost = person.IsPost; newPerson.Graduate = person.Graduate; newPerson.Major = person.Major; newPerson.IntoDate = person.IntoDate; newPerson.ValidityDate = person.ValidityDate; newPerson.OpenId = person.OpenId; newPerson.CurrentProjectId = person.CurrentProjectId; newPerson.CurrentProjectRoleId = person.CurrentProjectRoleId; newPerson.CurrentProjectWorkPostId = person.CurrentProjectWorkPostId; //newPerson.LastMenuType = person.LastMenuType; //newPerson.LastIsOffice = person.LastIsOffice; //newPerson.LastProjectId = person.LastProjectId; newPerson.DataFrom = person.DataFrom; newPerson.OldDataId = person.OldDataId; newPerson.WorkDate = person.WorkDate; newPerson.RetirementDate = person.RetirementDate; newPerson.RelativeName = person.RelativeName; newPerson.RelativeTel = person.RelativeTel; // newPerson.IsCardNoOK = IDCardValid.CheckIDCard(person.IdentityCard); if (string.IsNullOrEmpty(person.QRCodeAttachUrl)) { ///生成二维码 newPerson.QRCodeAttachUrl = BLL.CreateQRCodeService.CreateCode_Simple("person$" + newPerson.IdentityCard); } else { newPerson.QRCodeAttachUrl = person.QRCodeAttachUrl; } db.SubmitChanges(); } } } #region 人员密码 /// /// 修改密码 /// /// /// public static void UpdatePassword(string personId, string password) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var m = db.Person_Persons.FirstOrDefault(e => e.PersonId == personId); if (m != null) { m.RawPassword = password; m.Password = Funs.EncryptionPassword(password); db.SubmitChanges(); } } } #endregion #region 删除人员信息 /// /// 删除人员信息 /// /// /// public static string DeletePersons(string[] personIds, Model.Person_Persons CurrUser) { string returnInfo = string.Empty; foreach (var rowID in personIds) { var getData = GetPerson_PersonsById(rowID); if (getData != null) { string cont = JudgementDelete(getData); if (string.IsNullOrEmpty(cont)) { LogService.AddSys_Log(CurrUser, getData.IdentityCard, getData.PersonId, BLL.Const.PersonLibMenuId, BLL.Const.BtnDelete); DeletePersonsById(rowID); } else { returnInfo += "人员:" + getData.PersonName + cont; } } } return returnInfo; } #region 判断是否可删除 /// /// 判断是否可以删除 /// /// public static string JudgementDelete(Model.Person_Persons getData) { string content = string.Empty; if (Funs.DB.SitePerson_Person.FirstOrDefault(x => x.PersonId == getData.PersonId) != null) { content += "已在【现场人员】中使用,不能删除!"; } return content; } #endregion #region 根据人员Id删除一个人员信息 /// /// 根据人员Id删除一个人员信息 /// /// public static void DeletePersonsById(string personId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getDeletePerson = db.Person_Persons.FirstOrDefault(e => e.PersonId == personId); if (getDeletePerson != null) { var logs = from x in db.Sys_Log where x.UserId == personId select x; if (logs.Count() > 0) { db.Sys_Log.DeleteAllOnSubmit(logs); } ///人员 var PersonItem = from x in db.SitePerson_PersonItem where x.PersonId == personId select x; if (PersonItem.Count() > 0) { db.SitePerson_PersonItem.DeleteAllOnSubmit(PersonItem); } ///人员证书 var PersonsCertificate = from x in db.QualityAudit_PersonQuality where x.PersonId == personId select x; if (PersonsCertificate.Count() > 0) { db.QualityAudit_PersonQuality.DeleteAllOnSubmit(PersonsCertificate); } db.Person_Persons.DeleteOnSubmit(getDeletePerson); db.SubmitChanges(); } } } #endregion #endregion #endregion #region 更新最后一次登陆系统 信息 /// /// 更新最后一次登陆系统 信息 /// /// /// /// /// public static void UpdateLastUserInfo(string personId, string LastMenuType, bool LastIsOffice, string LastProjectId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var uU = db.Person_Persons.FirstOrDefault(e => e.PersonId == personId); if (uU != null) { uU.LastMenuType = LastMenuType; uU.LastIsOffice = LastIsOffice; uU.LastMenuType = LastMenuType; uU.LastProjectId = LastProjectId; db.SubmitChanges(); } } } #endregion #region 验证人员信息是否合格 /// /// 验证人员信息 /// /// /// public static string ValidPersonInfo(Model.Person_Persons person) { string info = string.Empty; if (!IDCardValid.CheckIDCard(person.IdentityCard) && person.UnitId != Const.UnitId_SEDIN) { info += "身份证号码不正确!"; } if (!string.IsNullOrEmpty(person.Account)) { var getAcc = Funs.DB.Person_Persons.FirstOrDefault(x => x.Account == person.Account && (x.PersonId != person.PersonId || (person.PersonId == null && x.PersonId != null))); if (getAcc != null) { info += "输入的账号已存在已存在!"; } } var getIdCard = Funs.DB.Person_Persons.FirstOrDefault(x => x.IdentityCard == person.IdentityCard && (x.PersonId != person.PersonId || (person.PersonId == null && x.PersonId != null))); if (getIdCard != null) { info += "输入的身份证号码人员库已存在!"; } if (person.UnitId != Const.UnitId_SEDIN && (string.IsNullOrEmpty(person.PhotoUrl) || person.PhotoUrl == "~/res/images/blank.png")) { info += "照片不能为空!"; } //if (string.IsNullOrEmpty(person.WorkPostId)) //{ // info += "请选择所属岗位!"; //} return info; } #endregion #region 验证人员工号是否存在 /// /// 验证人员工号是否存在 /// /// 用户id /// 工号 /// 是否存在 public static bool IsExistUsercode(string personId, string jobNum) { bool isExist = false; var role = Funs.DB.Person_Persons.FirstOrDefault(x => x.JobNum == jobNum && (x.PersonId != personId || (personId == null && x.PersonId != null))); if (role != null) { isExist = true; } return isExist; } #endregion #region API CommenInfoController /// /// /// /// /// /// public static List GetProjectUserListByProjectIdForApi(string projectId, string name) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var users = (from x in db.Person_Persons where (x.IsPost == true || !x.IsPost.HasValue) && x.PersonId != BLL.Const.hfnbdId where name == "" || x.PersonName.Contains(name) orderby x.PersonName select x).ToList(); if (!string.IsNullOrEmpty(projectId)) { users = (from x in users join y in db.SitePerson_Person on x.PersonId equals y.PersonId where y.ProjectId == projectId && y.States == Const.State_1 orderby x.PersonName select x).ToList(); } return users; } } /// /// /// /// /// /// /// /// public static List GetProjectUserListByProjectIdForApi(string projectId, string unitId, string unitType, string name) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List list = new List(); if (!string.IsNullOrEmpty(projectId)) { string[] unitTypes = { }; string[] unitIds = { }; if (!string.IsNullOrEmpty(unitType)) { unitTypes = unitType.Split(','); } if (!string.IsNullOrEmpty(unitId)) { unitIds = unitId.Split(','); } list = (from x in db.Person_Persons join y in db.SitePerson_Person on x.PersonId equals y.PersonId join z in db.Project_ProjectUnit on x.UnitId equals z.UnitId where name == "" || x.PersonName.Contains(name) where y.ProjectId == projectId && z.ProjectId == projectId where unitType == "" || unitTypes.Contains(z.UnitType) where unitId == "" || unitIds.Contains(z.UnitId) where y.States == Const.State_1 && y.RoleIds != null orderby z.UnitType descending, x.PersonName select x).ToList(); } return list; } } #endregion #region 用户下拉框 /// /// 带角色用户下拉框 /// /// 下拉框名字 /// 项目id /// 是否显示请选择 public static void InitFlowOperateControlUserDropDownList(FineUIPro.DropDownList dropName, string projectId, string unitId, bool isShowPlease) { dropName.DataValueField = "PersonId"; dropName.DataTextField = "PersonName"; dropName.DataSource = Person_PersonsService.GetProjectRoleUserListByProjectId(projectId, unitId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 用户下拉框 /// /// 下拉框名字 /// 项目id /// 角色id /// 是否显示请选择 public static void InitUserProjectIdUnitIdRoleIdDropDownList(FineUIPro.DropDownList dropName, string projectId, string unitId, string roleIds, bool isShowPlease) { dropName.Items.Clear(); dropName.DataValueField = "PersonId"; dropName.DataTextField = "PersonName"; dropName.DataSource = Person_PersonsService.GetUserListByProjectIdUnitIdRoleId(projectId, unitId, roleIds); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 用户下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitUserUnitIdDepartIdDropDownList(FineUIPro.DropDownList dropName, string unitId, string DepartId, bool isShowPlease) { dropName.DataValueField = "PersonId"; dropName.DataTextField = "PersonName"; dropName.DataSource = Person_PersonsService.GetUserListByUnitIdDepartId(unitId, DepartId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } #endregion } }