using FineUIPro; using Model; using System; using System.Collections; using System.Collections.Generic; using System.Linq; namespace BLL { /// /// 人员信息 /// public static class SitePerson_PersonService { public static Model.SGGLDB db = Funs.DB; #region 劳务人员列表 /// /// 记录数 /// public static int count { get; set; } /// /// 定义变量 /// private static IQueryable getDataLists = from x in db.View_SitePerson_Person select x; /// /// 数据列表 /// /// /// /// /// /// /// /// /// public static IEnumerable getListData(string projetcId, string unitId, string workPostId, string name, string idCard, string states, string personType, Grid Grid1) { IQueryable getDataList = getDataLists.OrderBy(x => x.ProjectId).ThenBy(x => x.UnitId); if (!string.IsNullOrEmpty(projetcId) && projetcId != Const._Null) { getDataList = getDataList.Where(e => e.ProjectId == projetcId); } if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null) { getDataList = getDataList.Where(e => e.UnitId == unitId); } if (!string.IsNullOrEmpty(workPostId) && workPostId != Const._Null) { getDataList = getDataList.Where(e => e.WorkPostId == workPostId); } if (!string.IsNullOrEmpty(personType) && personType != Const._Null) { getDataList = getDataList.Where(e => e.PersonType == personType); } if (!string.IsNullOrEmpty(states) && states != "-2") { getDataList = getDataList.Where(e => e.States == states); } if (!string.IsNullOrEmpty(name)) { getDataList = getDataList.Where(e => e.PersonName.Contains(name)); } if (!string.IsNullOrEmpty(idCard)) { getDataList = getDataList.Where(e => e.IdentityCard.Contains(idCard)); } 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 { ProjectPersonId = x.SitePersonId + "#" + x.PersonId, x.PersonName, x.CardNo, x.IdentityCard, x.Sex, x.SexName, x.UnitId, x.UnitName, x.WorkPostId, x.WorkPostName, x.ProjectId, ProjectName = db.Base_Project.First(u => u.ProjectId == x.ProjectId).ShortName, NativePlace = x.CountryName ?? "" + x.ProvinceName ?? "", x.TeamGroupId, x.TeamGroupName, x.InTime, x.OutTime, x.States, OutName = (x.States == "2" ? "是" : "否"), }; } #endregion #region 在岗人员列表 /// /// 记录数 /// public static int inCount { get; set; } /// /// 定义变量 /// private static IQueryable getInPersonLists = from x in db.SitePerson_Person where x.States == Const.ProjectPersonStates_1 select x; /// /// 获取分页列表 /// /// 页码 /// 每页数量 /// public static IEnumerable getInPsersonListData(string projectId, string unitId, string personName, string identityCard, Grid Grid1) { IQueryable getInPersonList = getInPersonLists.Where(x => x.ProjectId == projectId); if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null) { if (unitId == "0") { getInPersonList = getInPersonList.Where(x => x.UnitId == null); } else { getInPersonList = getInPersonList.Where(x => x.UnitId == unitId); } } if (!string.IsNullOrEmpty(personName)) { getInPersonList = getInPersonList.Where(x => x.PersonName.Contains(personName)); } if (!string.IsNullOrEmpty(identityCard)) { getInPersonList = getInPersonList.Where(x => x.IdentityCard.Contains(identityCard)); } inCount = getInPersonList.Count(); if (inCount == 0) { return null; } getInPersonList = SortConditionHelper.SortingAndPaging(getInPersonList, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize); return from x in getInPersonList select new { x.PersonId, x.SitePersonId, x.CardNo, x.PersonName, x.UnitId, db.Base_Unit.First(u => u.UnitId == x.UnitId).UnitName, x.IdentityCard, IsInName = "", InOuDate = DateTime.Now.ToShortDateString(), InOutTime = "00:00:00", }; } #endregion #region 获取项目人员 -- 按条件查询 #region 根据现场人员主键获取现场人员信息 /// /// 根据现场人员主键获取现场人员信息 /// /// /// public static Model.SitePerson_Person GetSitePersonById(string sitePersonId) { return Funs.DB.SitePerson_Person.FirstOrDefault(x => x.SitePersonId == sitePersonId); } #endregion #region 根据项目ID身份证号码获取现场人员信息 /// /// 根据项目ID身份证号码获取现场人员信息 /// /// /// /// public static Model.SitePerson_Person GetSitePersonByProjectIdIdentityCard(string projectId, string identityCard) { if (!string.IsNullOrEmpty(identityCard)) { return Funs.DB.SitePerson_Person.FirstOrDefault(e => e.ProjectId == projectId && e.IdentityCard == identityCard); } else { return null; } } #endregion #region 根据人员库主键获取项目人员信息 /// /// 根据人员库主键获取项目人员信息 /// /// /// public static Model.SitePerson_Person GetSitePersonByProjectIdPersonId(string projectId, string personId) { return Funs.DB.SitePerson_Person.FirstOrDefault(x => x.PersonId == personId && x.ProjectId == projectId); } #endregion #region 根据主键获取人员姓名 /// /// 根据主键获取人员姓名 /// /// /// public static string GetSitePersonNameById(string personId) { string name = string.Empty; var getp = Funs.DB.SitePerson_Person.FirstOrDefault(e => e.PersonId == personId); if (getp != null) { name = getp.PersonName; } return name; } #endregion #region 根据主键获取焊工号 /// /// 根据主键获取焊工号 /// /// /// public static string GetSitePersonWelderCodeById(string projectId, string personId) { string name = string.Empty; var getp = Funs.DB.SitePerson_Person.FirstOrDefault(e => e.ProjectId == projectId && e.PersonId == personId); if (getp != null) { name = getp.WelderCode; } return name; } #endregion #region 根据项目单位、班组、岗位获取现场人员信息 /// /// 根据项目单位、班组、岗位获取现场人员信息 /// /// /// public static List GetSitePerson_PersonsLits(string projectId, string unitId, string teamGroupId, string workPostId) { var getProjectPersons = from x in Funs.DB.SitePerson_Person where x.ProjectId == projectId && x.States == Const.ProjectPersonStates_1 select x; if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null) { getProjectPersons = getProjectPersons.Where(x => x.UnitId == unitId); } if (!string.IsNullOrEmpty(teamGroupId) && teamGroupId != Const._Null) { getProjectPersons = getProjectPersons.Where(x => x.TeamGroupId == teamGroupId); } if (!string.IsNullOrEmpty(workPostId) && workPostId != Const._Null) { getProjectPersons = getProjectPersons.Where(x => x.WorkPostId == workPostId); } return getProjectPersons.ToList(); } #endregion #region 根据项目单位、班组、岗位获取人员库 人员信息 /// /// 根据项目单位、班组、岗位获人员库 人员信息 /// /// /// public static List GetPerson_PersonsLits(string projectId, string unitId, string teamGroupId, string workPostId) { var getProjectPersons = from x in Funs.DB.SitePerson_Person where x.ProjectId == projectId select x; if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null) { getProjectPersons = getProjectPersons.Where(x => x.UnitId == unitId); } if (!string.IsNullOrEmpty(teamGroupId) && teamGroupId != Const._Null) { getProjectPersons = getProjectPersons.Where(x => x.TeamGroupId == unitId); } if (!string.IsNullOrEmpty(workPostId) && workPostId != Const._Null) { getProjectPersons = getProjectPersons.Where(x => x.WorkPostId == workPostId); } var getPerson = from x in getProjectPersons join y in Funs.DB.Person_Persons on x.PersonId equals y.PersonId orderby y.PersonName select y; return getPerson.ToList(); } #endregion #region 根据项目id集合获取对应项目的所有项目用户 /// ///根据项目id集合获取对应项目的所有项目用户 /// /// public static List GetSitePersonsByProjectIds(List ProjectIds) { return (from x in Funs.DB.SitePerson_Person where ProjectIds.Contains(x.ProjectId) && x.RoleIds != null select x).ToList(); } #endregion #region 根据项目Id 单位类型、角色获取用户下拉选项 /// /// 根据项目号、单位类型、角色获取用户下拉选项 /// /// public static List GetSitePerson_PersonListByProjectIdUnitTypeRoleIds(string projectId, string unitTypes, string roleIds) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List returnLists = new List(); var getSitePerson = db.SitePerson_Person.Where(x => x.ProjectId == projectId && x.States == Const.ProjectPersonStates_1 && x.RoleIds != null); var uList = Funs.GetStrListByStr(unitTypes, ','); if (!string.IsNullOrEmpty(unitTypes)) { getSitePerson = from x in getSitePerson join z in db.Project_ProjectUnit on x.UnitId equals z.UnitId where z.ProjectId == projectId && uList.Contains(z.UnitType) select x; } if (!string.IsNullOrEmpty(roleIds)) { var getIdsList = Funs.GetStrListByStr(roleIds, ','); foreach (var item in getIdsList) { var getSitePersonRoles = getSitePerson.Where(x => x.RoleIds.Contains(item)); if (getSitePersonRoles.Count() > 0) { returnLists.AddRange(getSitePersonRoles); } } } else { returnLists = getSitePerson.ToList(); } return returnLists.OrderBy(x => x.PersonName).ToList(); } } #endregion #region 获取多单位 多角色下 人员集合 /// /// 获取多单位 多角色下 人员集合 /// /// /// /// public static List GetSitePerson_PersonListByUnitIdsRoleIds(string projectId, string unitIds, string roleIds) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List returnLists = new List(); var getgetSitePerson = db.SitePerson_Person.Where(x => x.ProjectId == projectId && x.States == Const.ProjectPersonStates_1 && x.RoleIds != null); if (!string.IsNullOrEmpty(unitIds)) { var getUnitIdsList = Funs.GetStrListByStr(unitIds, ','); getgetSitePerson = getgetSitePerson.Where(x => getUnitIdsList.Contains(x.UnitId)); } if (!string.IsNullOrEmpty(roleIds)) { var getIdsList = Funs.GetStrListByStr(roleIds, ','); foreach (var item in getIdsList) { var getSitePersonRoles = getgetSitePerson.Where(x => x.RoleIds.Contains(item)); if (getSitePersonRoles.Count() > 0) { returnLists.AddRange(getSitePersonRoles); } } } else { returnLists = getgetSitePerson.ToList(); } return returnLists.OrderBy(x => x.PersonName).ToList(); ; } } #endregion #region 根据用户ID 获取当前项目用户信息 --存在问题 todo /// /// 根据用户ID 获取当前项目用户信息 /// /// public static Model.SitePerson_Person GetCurrProjectUserByUserId(string userId) { return Funs.DB.SitePerson_Person.FirstOrDefault(x => x.PersonId == userId && x.States == Const.ProjectPersonStates_1); } #endregion #region 根据施工单位、单位工程、专业获取查看信息用户 /// /// 根据施工单位、单位工程、专业获取查看信息用户 /// /// public static List GetSeeUserList2(string projectId, string unitIds, string cNProfessionalCode, string unitWorkId, string mainUserId, string subUserId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { List UnitIdsList = new List(); var getUnitIdsList = Funs.GetStrListByStr(unitIds, ','); if (getUnitIdsList.Count() > 0) { UnitIdsList.AddRange(getUnitIdsList); } var UnitLists = UnitService.GetUnitByProjectIdUnitTypeList(projectId, Const.ProjectUnitType_1); if (UnitLists.Count() > 0) { UnitIdsList.AddRange(UnitLists.Select(x => x.UnitId).ToList()); } if (UnitIdsList.Count > 0) { //分包用户 var getSitePersons = from x in db.SitePerson_Person join a in db.Base_WorkPost on x.WorkPostId equals a.WorkPostId where UnitIdsList.Contains(x.UnitId) && a.CNCodes.Contains(cNProfessionalCode) && x.ProjectId == projectId && x.States == Const.ProjectPersonStates_1 orderby x.PersonId select x; if (!string.IsNullOrEmpty(unitWorkId)) { getSitePersons = getSitePersons.Where(x => x.WorkAreaId.Contains(unitWorkId)); } if (!string.IsNullOrEmpty(mainUserId)) { getSitePersons = getSitePersons.Where(x => x.PersonId != mainUserId); } if (!string.IsNullOrEmpty(subUserId)) { getSitePersons = getSitePersons.Where(x => x.PersonId != subUserId); } return getSitePersons.ToList(); } else { return null; } } } #endregion # region 根据 角色ID 获取项目下人员信息 /// /// 根据 角色ID 获取角色人员名称 /// /// /// /// public static string GetProjectPersonNameByRoleId(string projectId, string roleId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string name = string.Empty; if (projectId != null) { var getperson = db.SitePerson_Person.FirstOrDefault(x => x.ProjectId == projectId && x.RoleIds.Contains(roleId)); if (getperson != null) { name = getperson.PersonName; } } return name; } } /// /// 根据 角色ID 获取角色人员名称 /// /// /// /// public static string GetProjectPersonNameByWorkPostId(string projectId, string workPostId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string name = string.Empty; if (projectId != null) { var getperson = db.SitePerson_Person.FirstOrDefault(x => x.ProjectId == projectId && x.WorkPostId == workPostId); if (getperson != null) { name = getperson.PersonName; } } return name; } } /// /// 根据角色获取现场人员 /// /// /// public static Model.SitePerson_Person getSitePerson_PersonByRoleId(string projectId, string roleId) { return Funs.DB.SitePerson_Person.FirstOrDefault(x => x.ProjectId == projectId && x.RoleIds.Contains(roleId)); } /// /// 根据项目ID、角色ID获取人员ID /// /// /// /// public static string GetPersonIdByProjectIdRoleID(string projectId, string roleId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string PersonId = string.Empty; if (projectId != null) { var getPerson = getSitePerson_PersonByRoleId(projectId, roleId); if (getPerson != null) { PersonId = getPerson.PersonId; } } return PersonId; } } /// /// 保存项目人员角色 —— 项目成立时 /// /// /// /// public static void SaveSitePersonProjectRole(string projectId, string roleId, string newPersonId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string oldRolePersonId = string.Empty; var m = db.SitePerson_Person.FirstOrDefault(x => x.ProjectId == projectId && x.RoleIds.Contains(roleId)); if (m != null) { oldRolePersonId = m.PersonId; } ////此人不在项目中 if (!string.IsNullOrEmpty(newPersonId) && newPersonId != oldRolePersonId) { if (m != null) { m.RoleIds = null; db.SubmitChanges(); } var getSitePerson_New = db.SitePerson_Person.FirstOrDefault(x => x.PersonId == newPersonId && x.ProjectId == projectId); if (getSitePerson_New != null) { getSitePerson_New.RoleIds = roleId; db.SubmitChanges(); } else { var getPerson = db.Person_Persons.FirstOrDefault(x => x.PersonId == newPersonId); if (getPerson != null && !string.IsNullOrEmpty(getPerson.UnitId)) { var punit = db.Project_ProjectUnit.FirstOrDefault(e => e.ProjectId == projectId && e.UnitId == getPerson.UnitId); if (punit == null) ///项目单位为空时要增加项目单位 { Project_ProjectUnit newProjectUnit = new Project_ProjectUnit { ProjectId = projectId, UnitId = getPerson.UnitId, InTime = DateTime.Now }; ProjectUnitService.AddProjectUnit(newProjectUnit); } SitePerson_Person newSitePerson = new Model.SitePerson_Person { SitePersonId = SQLHelper.GetNewID(), ProjectId = projectId, PersonId = newPersonId, PersonName = getPerson.PersonName, IdentityCard = getPerson.IdentityCard, WorkPostId = getPerson.WorkPostId, UnitId = getPerson.UnitId, RoleIds = roleId, InTime = DateTime.Now, States = Const.ProjectPersonStates_1, }; AddSitePerson(newSitePerson); } } } } } #endregion #endregion #region 项目人员 发卡 /// /// 项目人员 发卡 /// /// public static string SendCardNo(string projectId, string personId) { string cardNo = string.Empty; var getSitePerson = GetSitePersonByProjectIdPersonId(projectId, personId); if (getSitePerson != null && string.IsNullOrEmpty(getSitePerson.CardNo)) { string prefix = UnitService.GetUnitCodeByUnitId(getSitePerson.UnitId); var getMaxCarNo = Funs.DB.SitePerson_Person.Where(x => x.ProjectId == projectId && x.CardNo.Contains(prefix)).Max(x => x.CardNo); if (!string.IsNullOrEmpty(getMaxCarNo) && getMaxCarNo.Length > 5) { var getInt = Funs.GetNewInt(Funs.GetSubStr(getMaxCarNo, 5)); if (getInt.HasValue) { cardNo = SQLHelper.RunProcNewId("SpGetNewNumber", "SitePerson_Person", "CardNo", getSitePerson.ProjectId, prefix); getSitePerson.CardNo = cardNo; Funs.DB.SubmitChanges(); } } } return cardNo; } public static string SendCardNo(string sitepersinId) { string cardNo = string.Empty; var getSitePerson = GetSitePersonById(sitepersinId); if (getSitePerson != null && string.IsNullOrEmpty(getSitePerson.CardNo)) { cardNo = SQLHelper.RunProcNewId("SpGetNewNumber", "SitePerson_Person", "CardNo", getSitePerson.ProjectId, UnitService.GetUnitCodeByUnitId(getSitePerson.UnitId)); getSitePerson.CardNo = cardNo; Funs.DB.SubmitChanges(); } return cardNo; } #endregion #region 现场人员信息增删改 /// /// 增加人员信息 /// /// 人员实体 public static void AddSitePerson(Model.SitePerson_Person person) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { Model.SitePerson_Person newPerson = new Model.SitePerson_Person { SitePersonId = person.SitePersonId, PersonId = person.PersonId, CardNo = person.CardNo, PersonName = person.PersonName, UnitId = person.UnitId, IdentityCard = person.IdentityCard, ProjectId = person.ProjectId, TeamGroupId = person.TeamGroupId, WorkAreaId = person.WorkAreaId, WorkPostId = person.WorkPostId, RoleIds = person.RoleIds, OutTime = person.OutTime, OutResult = person.OutResult, AuditorId = person.AuditorId, AuditorDate = person.AuditorDate, InTime = person.InTime.HasValue ? person.InTime : DateTime.Now, Isprint = "0", States = person.States, }; ////现场人员项目出入场记录 SitePerson_PersonItemService.SetPersonItemInOut(newPerson); db.SitePerson_Person.InsertOnSubmit(newPerson); db.SubmitChanges(); } } /// /// 修改人员信息 /// /// 人员实体 public static void UpdateSitePerson(Model.SitePerson_Person person) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { bool setPersonItemInOut = false; Model.SitePerson_Person newPerson = db.SitePerson_Person.FirstOrDefault(e => e.SitePersonId == person.SitePersonId); if (newPerson != null) { newPerson.ProjectId = person.ProjectId; newPerson.CardNo = person.CardNo; newPerson.PersonName = person.PersonName; newPerson.UnitId = person.UnitId; //if (newPerson.IdentityCard != person.IdentityCard) //{ // PersonInOutService.UpdateRealNameInOut(newPerson.PersonId, newPerson.IdentityCard, person.IdentityCard); // newPerson.IdentityCard = person.IdentityCard; //} newPerson.TeamGroupId = person.TeamGroupId; newPerson.WorkAreaId = person.WorkAreaId; if (newPerson.WorkPostId != person.WorkPostId) { newPerson.WorkPostId = person.WorkPostId; setPersonItemInOut = true; } if (newPerson.RoleIds != person.RoleIds) { newPerson.RoleIds = person.RoleIds; setPersonItemInOut = true; } newPerson.InTime = person.InTime; if (newPerson.OutTime != person.OutTime) { newPerson.OutTime = person.OutTime; setPersonItemInOut = true; } newPerson.OutResult = person.OutResult; if (!newPerson.OutTime.HasValue) { newPerson.OutTime = null; newPerson.ExchangeTime = null; } newPerson.ExchangeTime2 = null; newPerson.RealNameUpdateTime = null; if (!string.IsNullOrEmpty(person.AuditorId)) { newPerson.AuditorId = person.AuditorId; } if (person.AuditorDate.HasValue) { newPerson.AuditorDate = person.AuditorDate; } if (newPerson.States != person.States) { newPerson.States = person.States; setPersonItemInOut = true; } db.SubmitChanges(); if (!setPersonItemInOut) { var getPItem = db.SitePerson_PersonItem.FirstOrDefault(x => x.ProjectId == person.ProjectId && x.IdentityCard == person.IdentityCard); if (getPItem == null) { setPersonItemInOut = true; } else { var getPersons = db.Person_Persons.FirstOrDefault(x => x.IdentityCard == newPerson.IdentityCard); if (getPersons != null && (!getPersons.MultiProject.HasValue || getPersons.MultiProject == false)) { var getdate = newPerson.InTime.HasValue ? newPerson.InTime.Value.AddDays(-1) : DateTime.Now; var getPersonItems = db.SitePerson_PersonItem.Where(x => x.PersonId == newPerson.PersonId && x.ProjectId != newPerson.ProjectId && !x.OutTime.HasValue); foreach(var item in getPersonItems) { item.OutTime = getdate; db.SubmitChanges(); } } } } if (setPersonItemInOut) { ////现场人员项目出入场记录 SitePerson_PersonItemService.SetPersonItemInOut(newPerson); } } } } /// /// 修改人员焊接信息 /// /// 人员实体 public static void UpdateSitePersonWeldInfo(Model.SitePerson_Person person) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { Model.SitePerson_Person newPerson = db.SitePerson_Person.FirstOrDefault(e => e.SitePersonId == person.SitePersonId); if (newPerson != null) { newPerson.IsWeldAudit = person.IsWeldAudit; newPerson.IsWeldOK = person.IsWeldOK; db.SubmitChanges(); } } } /// /// 删除人员信息 /// /// /// public static string DeleteSitePersons(string[] personIds, Model.Person_Persons CurrUser) { string returnInfo = string.Empty; foreach (var rowID in personIds) { string sitePersonId = Funs.GetStrListByStr(rowID, '#')[0]; string personId = Funs.GetStrListByStr(rowID, '#')[1]; var getData = GetSitePersonById(sitePersonId); if (getData != null) { LogService.AddSys_Log(CurrUser, getData.IdentityCard, getData.PersonId, BLL.Const.PersonLibMenuId, BLL.Const.BtnDelete); DeleteSitePersonById(sitePersonId); } } return returnInfo; } /// /// 根据人员Id删除一个人员信息 /// /// 人员Id public static void DeleteSitePersonById(string sitePersonId) { var person = Funs.DB.SitePerson_Person.FirstOrDefault(e => e.SitePersonId == sitePersonId); if (person != null) { ////现场人员项目出入场记录 person.States = Const.ProjectPersonStates_2; SitePerson_PersonItemService.SetPersonItemInOut(person); Funs.DB.SitePerson_Person.DeleteOnSubmit(person); Funs.DB.SubmitChanges(); } } /// /// 根据项目ID、人员ID删除现场人员 /// /// public static void DeleteSitePersonByProjectIdPersonId(string projectId, string personId) { var getSitePerson = GetSitePersonByProjectIdPersonId(projectId, personId); if (getSitePerson != null) { DeleteSitePersonById(getSitePerson.SitePersonId); } } #endregion #region 验证人员信息 /// /// 验证人员信息 /// /// /// public static string ValidPersonInfo(Model.SitePerson_Person person) { string info = string.Empty; if (string.IsNullOrEmpty(person.UnitId)) { info += "请选择所属单位!"; } if (string.IsNullOrEmpty(person.WorkPostId)) { info += "请选择所属岗位!"; } if (!person.InTime.HasValue) { info += "请选择入场时间!"; } if (string.IsNullOrEmpty(person.AuditorId)) { info += "请选择审核人!"; } if (string.IsNullOrEmpty(person.IdentityCard)) { info += "身份证号码不能为空!"; } if (!IDCardValid.CheckIDCard(person.IdentityCard) && person.UnitId != Const.UnitId_SEDIN) { info += "身份证号码不正确!"; } return info; } #endregion #region 获取项目人员状态 /// /// 在岗状态 /// /// /// public static string GetProjectPersonStates(object states) { string value = string.Empty; if (states != null) { if (states.ToString() == "0") { value = "在审"; } else if (states.ToString() == "1") { value = "在岗"; } else if (states.ToString() == "2") { value = "离岗"; } else if (states.ToString() == "-1") { value = "打回"; } else { value = "未知"; } } return value; } #endregion #region 现场人员审核状态-【0在审、1在岗、2离岗、-1打回】 /// /// 现场人员审核状态 /// /// 主键 /// 状态 /// 时间 public static void SetSitePerson_PersonStates(string sitePersonId, string states, DateTime? datetime) { List getLists = Funs.GetStrListByStr(sitePersonId, ','); foreach (var item in getLists) { var getSitePerson = GetSitePersonById(item); if (getSitePerson != null) { getSitePerson.States = states; if (states == Const.ProjectPersonStates_1) { ////在岗 getSitePerson.OutTime = null; getSitePerson.AuditorDate = datetime.HasValue ? datetime : DateTime.Now; } else if (states == Const.ProjectPersonStates_2) { ///离场 getSitePerson.OutTime = datetime.HasValue ? datetime : DateTime.Now; } else if (states == Const.ProjectPersonStates_R) { ///打回 getSitePerson.OutTime = null; getSitePerson.AuditorDate = datetime.HasValue ? datetime : DateTime.Now; } Funs.DB.SubmitChanges(); ////现场人员项目出入场记录 SitePerson_PersonItemService.SetPersonItemInOut(getSitePerson); } } } #endregion #region 表下拉框 /// /// 根据项目id、班组id、岗位id 获取项目在岗人员 下拉框 /// /// 下拉框 /// 项目ID /// 单位ID /// 班组ID /// 岗位id /// public static void InitSitePersonDropDownList(DropDownList dropName, string projectId, string unitId, string teamGroupId, string workPostId, bool isShowPlease) { dropName.Items.Clear(); dropName.DataValueField = "PersonId"; dropName.DataTextField = "PersonName"; dropName.DataSource = GetSitePerson_PersonsLits(projectId, unitId, teamGroupId, workPostId); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 根据单位类型、角色获取 现场在岗人员下拉框 /// /// 下拉框名字 /// 项目id /// 是否显示请选择 public static void InitSitePersonByUnitTypeRoletIdsDropDownList(DropDownList dropName, string projectId, string unitType, string roleIds, bool isShowPlease) { dropName.DataValueField = "PersonId"; dropName.DataTextField = "PersonName"; dropName.DataSource = BLL.SitePerson_PersonService.GetSitePerson_PersonListByProjectIdUnitTypeRoleIds(projectId, unitType, roleIds); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 根据单位类型 获取项目用户 /// /// /// /// /// public static void InitProjectUserListByProjectUnitTypeDropDownList(FineUIPro.DropDownList dropName, string projectId, string unitType, bool isShowPlease) { dropName.DataValueField = "PersonId"; dropName.DataTextField = "PersonName"; dropName.DataSource = GetSitePerson_PersonListByProjectIdUnitTypeRoleIds(projectId, unitType, null); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 根据单位类型 获取项目用户 /// /// /// /// /// public static void InitProjectUserListByProjectUnitTypeDropDownList2(FineUIPro.DropDownList dropName, string projectId, string unitType, bool isShowPlease) { dropName.DataValueField = "PersonName"; dropName.DataTextField = "PersonName"; dropName.DataSource = GetSitePerson_PersonListByProjectIdUnitTypeRoleIds(projectId, unitType, null); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } #endregion #region 获取焊工信息列表 public static List GetWelderListDataForApi(string unitId, string projectId, int index, int page) { using (var db = new Model.SGGLDB(Funs.ConnString)) { IQueryable q = db.SitePerson_Person; List ids = new List(); if (!string.IsNullOrEmpty(unitId)) { q = q.Where(e => e.UnitId == unitId); } if (!string.IsNullOrEmpty(projectId)) { q = q.Where(e => e.ProjectId == projectId); } var qq1 = from x in q where x.WorkPostId == Const.WorkPost_Welder && x.States == Const.ProjectPersonStates_1 orderby x.PersonName select new { x.PersonId, x.PersonName, x.UnitId, }; var list = qq1.Skip(index * page).Take(page).ToList(); List listRes = new List(); for (int i = 0; i < list.Count; i++) { Model.SitePerson_Person x = new Model.SitePerson_Person(); x.PersonId = list[i].PersonId; x.PersonName = list[i].PersonName; x.UnitId = list[i].UnitId + "$" + UnitService.GetUnitNameByUnitId(list[i].UnitId); listRes.Add(x); } return listRes; } } #endregion #region 获取焊工信息 public static Model.Person_Persons GetWelder(string projectId, string personId) { using (var db = new Model.SGGLDB(Funs.ConnString)) { Model.SitePerson_Person x = db.SitePerson_Person.FirstOrDefault(e => e.ProjectId == projectId && e.PersonId == personId); Model.Person_Persons getPerson = db.Person_Persons.FirstOrDefault(e => e.PersonId == personId); getPerson.Sex = getPerson.Sex == "1" ? "男" : "女"; getPerson.Birthday = getPerson.Birthday; getPerson.PhotoUrl = getPerson.PhotoUrl; getPerson.QRCodeAttachUrl = getPerson.QRCodeAttachUrl; getPerson.IdentityCard = x.IdentityCard; getPerson.CertificateId = x.CertificateCode; //证书编号 getPerson.EduLevel = x.WelderLevel; //焊工等级 getPerson.RelativeTel = x.Remark; //备注 getPerson.RoleIds = AttachFileService.getFileUrl(x.SitePersonId); //焊工证路径 getPerson.DepartId = x.SitePersonId; //焊工SitePersonId if (!string.IsNullOrEmpty(x.WelderCode)) { getPerson.JobNum = x.WelderCode; } else { var u = BLL.UnitService.GetUnitByUnitId(x.UnitId); string prefix = BLL.ProjectService.GetProjectCodeByProjectId(projectId) + "-" + u.UnitCode + "-H"; getPerson.JobNum = BLL.SQLHelper.RunProcNewId("SpGetThreeNumber", "SitePerson_Person", "WelderCode", projectId, prefix); } getPerson.PersonName = x.PersonName; var unit = UnitService.GetUnitByUnitId(x.UnitId); getPerson.UnitId = x.UnitId + "$" + unit.UnitName; return getPerson; } } #endregion #region 更新焊工信息 public static void UpdateWelderForApi(Model.SitePerson_Person Welder) { using (var db = new Model.SGGLDB(Funs.ConnString)) { Model.SitePerson_Person newWelder = db.SitePerson_Person.First(e => e.SitePersonId == Welder.SitePersonId); if (!string.IsNullOrEmpty(Welder.WelderCode)) newWelder.WelderCode = Welder.WelderCode; if (!string.IsNullOrEmpty(Welder.CertificateCode)) newWelder.CertificateCode = Welder.CertificateCode; if (!string.IsNullOrEmpty(Welder.UnitId)) newWelder.UnitId = Welder.UnitId; if (!string.IsNullOrEmpty(Welder.WelderLevel)) newWelder.WelderLevel = Welder.WelderLevel; if (!string.IsNullOrEmpty(Welder.Remark)) newWelder.Remark = Welder.Remark; newWelder.Isprint = "0"; db.SubmitChanges(); } } #endregion #region 审核焊工 public static string AuditWelder(string projectId, string personId) { string str = string.Empty; using (var db = new Model.SGGLDB(Funs.ConnString)) { Model.SitePerson_Person x = db.SitePerson_Person.FirstOrDefault(e => e.ProjectId == projectId && e.PersonId == personId); if (x != null) { x.IsWeldAudit = true; db.SubmitChanges(); str = "审核成功"; } } return str; } #endregion } }