using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.ServiceModel.Syndication; using System.Web; using System.Web.Security; using System.Web.UI.WebControls; using Microsoft.Office.Interop.Excel; using Microsoft.SqlServer.Dts.Runtime; using Model; namespace BLL { public static class SYPersonService { /// /// 根据卡号查询所有人员的数量 /// /// 卡号 /// 人员的数量 public static int GetPersonCountByCardNo(string projectId, string cardNo) { var q = (from x in Funs.DB.SY_Person where x.ProjectId == projectId && x.OrderNo == cardNo select x).ToList(); return q.Count(); } /// /// 根据身份证号Id获取人员的数量 /// /// 身份证号 /// 人员的数量 public static Model.SY_Person GetPersonCountByIdentityCard(string identityCard, string projectId) { var q = Funs.DB.SY_Person.FirstOrDefault(x => x.IdentityCard == identityCard && x.ProjectId == projectId); return q; } public static ListItem[] drpStatesItem() { return new ListItem[] { new ListItem("全部", "null"), new ListItem("待提交", "0"), new ListItem("审核中", "1"), new ListItem("作业中", "2"), new ListItem("已完成", "3"), new ListItem("已取消", "-1"), new ListItem("作废", "-2") }; } public static List getPersonList(string projectId, string isUser, string unitId, int pageIndex, out int count) { List result; using (SUBQHSEDB db = new SUBQHSEDB(Funs.ConnString)) { IQueryable getLists = (from x in db.SY_Person join p in db.Base_Project on x.ProjectId equals p.ProjectId join y in db.Base_Unit on x.UnitId equals y.UnitId join W in db.Base_WorkPost on x.WorkPostId equals W.WorkPostId into zljW from W in zljW.DefaultIfEmpty() join Installation in db.Project_Installation on x.TeamGroupId equals Installation.InstallationId into zljInstallation from Installation in zljInstallation.DefaultIfEmpty() join Depart in db.Base_Depart on x.DepartId equals Depart.DepartId into zljDepart from Depart in zljDepart.DefaultIfEmpty() where x.ProjectId == projectId select new SY_PersonModel { PersonId = x.PersonId, OrderNo = x.OrderNo, AddTime = x.AddTime.ToString(), PersonName = x.PersonName, InTime = x.InTime.ToString(), OutTime = x.OutTime.ToString(), PersonNo = x.PersonNo, IsUsed = x.IsUsed, IsUsedName = x.IsUsed.ToString(), Account = x.Account, ProjectId = x.ProjectId, ProjectName = p.ProjectName, UnitId = x.UnitId, UnitName = y.UnitName, Telephone = x.Telephone, IdentityCard = x.IdentityCard, Password = x.Password, DepartId = x.DepartId, DepartName = Depart.DepartName, RoleId = x.RoleId, RoleName = x.RoleName, WorkPostId = x.WorkPostId, WorkPostName = W.WorkPostName, TeamGroupId = x.TeamGroupId, TeamGroupName = Installation.InstallationName, }); if (!string.IsNullOrEmpty(isUser) &&isUser != "-1") { bool isUsed = (isUser == "1" ? true : false); getLists = getLists.Where(p => p.IsUsed== isUsed); } if (!string.IsNullOrEmpty(unitId)) { getLists = getLists.Where(p => p.UnitId == unitId); } count = getLists.Count(); if (pageIndex > 0) { result = getLists.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); } else { result = getLists.ToList(); } } return result; } public static List getPersonByName(string name) { List result; using (SUBQHSEDB db = new SUBQHSEDB(Funs.ConnString)) { IQueryable getLists = (from x in db.SY_Person join p in db.Base_Project on x.ProjectId equals p.ProjectId join y in db.Base_Unit on x.UnitId equals y.UnitId join W in db.Base_WorkPost on x.WorkPostId equals W.WorkPostId into zljW from W in zljW.DefaultIfEmpty() join Installation in db.Project_Installation on x.TeamGroupId equals Installation.InstallationId into zljInstallation from Installation in zljInstallation.DefaultIfEmpty() join Depart in db.Base_Depart on x.DepartId equals Depart.DepartId into zljDepart from Depart in zljDepart.DefaultIfEmpty() select new SY_PersonModel { PersonId = x.PersonId, OrderNo = x.OrderNo, AddTime = x.AddTime.ToString(), PersonName = x.PersonName, InTime = x.InTime.ToString(), OutTime = x.OutTime.ToString(), PersonNo = x.PersonNo, IsUsed = x.IsUsed, IsUsedName = x.IsUsed.ToString(), Account = x.Account, ProjectId = x.ProjectId, ProjectName = p.ProjectName, UnitId = x.UnitId, UnitName = y.UnitName, Telephone = x.Telephone, IdentityCard = x.IdentityCard, Password = x.Password, DepartId = x.DepartId, DepartName = Depart.DepartName, RoleId = x.RoleId, RoleName = x.RoleName, WorkPostId = x.WorkPostId, WorkPostName = W.WorkPostName, TeamGroupId = x.TeamGroupId, TeamGroupName = Installation.InstallationName, }); if (!string.IsNullOrEmpty(name)) { getLists = getLists.Where(p => p.PersonName.Contains(name)); } result = getLists.ToList(); } return result; } public static SY_PersonModel GetPersonById(string personId) { SY_PersonModel result; using (SUBQHSEDB db = new SUBQHSEDB(Funs.ConnString)) { result = (from x in db.SY_Person join p in db.Base_Project on x.ProjectId equals p.ProjectId join y in db.Base_Unit on x.UnitId equals y.UnitId join W in db.Base_WorkPost on x.WorkPostId equals W.WorkPostId into zljW from W in zljW.DefaultIfEmpty() join Installation in db.Project_Installation on x.TeamGroupId equals Installation.InstallationId into zljInstallation from Installation in zljInstallation.DefaultIfEmpty() join Depart in db.Base_Depart on x.DepartId equals Depart.DepartId into zljDepart from Depart in zljDepart.DefaultIfEmpty() where x.PersonId == personId select new SY_PersonModel { PersonId = x.PersonId, OrderNo = x.OrderNo, AddTime = x.AddTime.ToString(), PersonName = x.PersonName, InTime = x.InTime.ToString(), OutTime = x.OutTime.ToString(), PersonNo = x.PersonNo, IsUsed = x.IsUsed, IsUsedName = x.IsUsed.ToString(), Account = x.Account, ProjectId = x.ProjectId, ProjectName = p.ProjectName, UnitId = x.UnitId, UnitName = y.UnitName, Telephone = x.Telephone, IdentityCard = x.IdentityCard, Password = x.Password, DepartId = x.DepartId, DepartName = Depart.DepartName, RoleId = x.RoleId, RoleName = x.RoleName, WorkPostId = x.WorkPostId, WorkPostName = W.WorkPostName, TeamGroupId = x.TeamGroupId, TeamGroupName = Installation.InstallationName, }).FirstOrDefault(); } return result; } public static SY_Person GetPersonIdByIds(string personId) { SY_Person result; using (SUBQHSEDB db = new SUBQHSEDB(Funs.ConnString)) { result = (from x in db.SY_Person join y in db.Base_Unit on x.UnitId equals y.UnitId where x.PersonId == personId select x).FirstOrDefault(); } return result; } public static int AddPerson(SY_Person person) { SUBQHSEDB subqhsedb = Funs.DB; SY_Person newPerson = new SY_Person { PersonId = person.PersonId, OrderNo =person.OrderNo, AddTime =person.AddTime, PersonName =person.PersonName, InTime =person.InTime, OutTime =person.OutTime, PersonNo =person.PersonNo, IsUsed =person.IsUsed, Account =person.Account, ProjectId =person.ProjectId, UnitId =person.UnitId, Telephone =person.Telephone, IdentityCard =person.IdentityCard, Password =person.Password, DepartId =person.DepartId, RoleId =person.RoleId, RoleName =person.RoleName, WorkPostId =person.WorkPostId, TeamGroupId =person.TeamGroupId, }; subqhsedb.SY_Person.InsertOnSubmit(newPerson); subqhsedb.SubmitChanges(); return 1; } public static void UpdatePerson(SY_Person person) { SUBQHSEDB db = Funs.DB; SY_Person newPerson = db.SY_Person.FirstOrDefault((SY_Person e) => e.PersonId == person.PersonId); if (newPerson != null) { newPerson.OrderNo = person.OrderNo; newPerson.AddTime = person.AddTime; newPerson.PersonName = person.PersonName; newPerson.InTime = person.InTime; newPerson.OutTime = person.OutTime; newPerson.PersonNo = person.PersonNo; newPerson.IsUsed = person.IsUsed; newPerson.Account = person.Account; newPerson.ProjectId = person.ProjectId; newPerson.UnitId = person.UnitId; newPerson.Telephone = person.Telephone; newPerson.IdentityCard = person.IdentityCard; newPerson.Password = person.Password; newPerson.DepartId = person.DepartId; newPerson.RoleId = person.RoleId; newPerson.RoleName = person.RoleName; newPerson.WorkPostId = person.WorkPostId; newPerson.TeamGroupId = person.TeamGroupId; db.SubmitChanges(); } } public static void DeletePersonById(string personId) { SUBQHSEDB db = Funs.DB; SY_Person fireWork = db.SY_Person.FirstOrDefault((SY_Person e) => e.PersonId == personId); if (fireWork != null) { var trainRecordDetails = from x in db.SY_EduTrain_TrainRecordDetail where x.PersonId == personId select x; if (trainRecordDetails.Count() > 0) { db.SY_EduTrain_TrainRecordDetail.DeleteAllOnSubmit(trainRecordDetails); db.SubmitChanges(); } //删除特岗人员资质 var personQuality = SYPersonQualityService.GetPersonQualityByPersonId(personId); if (personQuality != null) { CodeRecordsService.DeleteCodeRecordsByDataId(personQuality.PersonQualityId);//删除编号 CommonService.DeleteAttachFileById(personQuality.PersonQualityId);//删除附件 Funs.DB.SY_QualityAudit_PersonQuality.DeleteOnSubmit(personQuality); Funs.DB.SubmitChanges(); } db.SY_Person.DeleteOnSubmit(fireWork); db.SubmitChanges(); } } public class SY_PersonModel { public string PersonId { get; set; } public string OrderNo { get; set; } public string PersonName { get; set; } public string PersonNo { get; set; } public string Account { get; set; } public string ProjectId { get; set; } public string ProjectName { get; set; } public string UnitId { get; set; } public string UnitName { get; set; } public string Telephone { get; set; } public string IdentityCard { get; set; } public string InTime { get { return this.inTime; } set { this.inTime = Convert.ToDateTime(value).ToString("yyyy-MM-dd"); } } public string OutTime { get { return this.outTime; } set { this.outTime = Convert.ToDateTime(value).ToString("yyyy-MM-dd"); } } public bool? IsUsed { get; set; } public string IsUsedName { get { return this.isUsed; } set { this.isUsed = value == "True" ? "是" : "否"; } } private string isUsed; public string Password { get; set; } public string DepartId { get; set; } public string DepartName { get; set; } public string RoleId { get; set; } public string RoleName { get; set; } public string WorkPostId { get; set; } public string WorkPostName { get; set; } public string AddTime { get { return this.addTime; } set { this.addTime = Convert.ToDateTime(value).ToString("yyyy-MM-dd"); } } public string TeamGroupId { get; set; } public string TeamGroupName { get; set; } private string addTime; private string outTime; private string inTime; } public static SY_InitDropDownList GetPersonDropDownList(string projectId) { SY_InitDropDownList DropDown = new SY_InitDropDownList(); DropDown.GetWorkPostList= (from x in Funs.DB.Base_WorkPost orderby x.WorkPostCode select new SY_InitDropDown {KeyId=x.WorkPostId,KeyName=x.WorkPostName }).ToList(); DropDown.GetDepartList = (from x in Funs.DB.Base_Depart orderby x.DepartCode select new SY_InitDropDown { KeyId = x.DepartId, KeyName = x.DepartName }).ToList(); DropDown.GetRoleDropDownList = (from x in Funs.DB.Sys_Role where x.IsOffice == true orderby x.RoleCode select new SY_InitDropDown { KeyId = x.RoleId, KeyName = x.RoleName }).ToList(); if (!string.IsNullOrEmpty(projectId)) DropDown.TeamGroupDownList = (from x in Funs.DB.Project_Installation where x.ProjectId == projectId select new SY_InitDropDown { KeyId = x.InstallationId, KeyName = x.InstallationName }).ToList(); else DropDown.TeamGroupDownList = (from x in Funs.DB.Project_Installation select new SY_InitDropDown { KeyId = x.InstallationId, KeyName = x.InstallationName }).ToList(); return DropDown; } public class SY_InitDropDownList { public List GetWorkPostList { get; set; } public List GetDepartList { get; set; } public List GetRoleDropDownList { get; set; } public List TeamGroupDownList { get; set; } } public class SY_InitDropDown { public string KeyId { get; set; } public string KeyName { get; set; } } #region 根据identityCard获取人员资质信息 /// /// 根据identityCard获取人员资质信息 /// /// /// public static List getPersonQualitList(string projectId, string unitId,string isQuality, int pageIndex, out int count) { List result; using (SUBQHSEDB db = new SUBQHSEDB(Funs.ConnString)) { IQueryable getLists=(from x in db.SY_QualityAudit_PersonQuality join y in db.SY_Person on x.PersonId equals y.PersonId where y.ProjectId == projectId orderby y.IdentityCard select new PersonQualityItemList { PersonQualityId = x.PersonQualityId, PersonId = x.PersonId, PersonName = y.PersonName, 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, CertificateName = x.CertificateName, CertificateNo = x.CertificateNo, 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), Remark = x.Remark, AuditDate = string.Format("{0:yyyy-MM-dd}", x.AuditDate), AuditorId = x.AuditorId, AuditorName = db.Sys_User.First(z => z.UserId == x.AuditorId).UserName, AuditOpinion = x.AuditOpinion, States = x.States, StatesName = x.States, AttachUrl = APIUpLoadFileService.getFileUrl(x.PersonQualityId, null), }); if (!string.IsNullOrEmpty(isQuality)&& isQuality!="-1") { getLists = getLists.Where(p => p.States == isQuality); } if (!string.IsNullOrEmpty(unitId)) { getLists = getLists.Where(p => p.UnitId == unitId); } count = getLists.Count(); if (pageIndex > 0) { result = getLists.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); } else { result = getLists.ToList(); } } return result; } /// /// 根据identityCard获取人员资质信息 /// /// /// public static PersonQualityItemList getPersonQualityInfo(string personId) { using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { PersonQualityItemList getQualityItem = new PersonQualityItemList(); getQualityItem = (from x in db.SY_QualityAudit_PersonQuality join y in db.SY_Person on x.PersonId equals y.PersonId where x.PersonQualityId == personId || x.PersonId == personId orderby y.IdentityCard select new PersonQualityItemList { PersonQualityId = x.PersonQualityId, PersonId = x.PersonId, PersonName = y.PersonName, 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, CertificateName = x.CertificateName, CertificateNo = x.CertificateNo, 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), Remark = x.Remark, AuditDate = string.Format("{0:yyyy-MM-dd}", x.AuditDate), AuditorId = x.AuditorId, AuditorName = db.Sys_User.First(z => z.UserId == x.AuditorId).UserName, AuditOpinion = x.AuditOpinion, States = x.States, StatesName = x.States, AttachUrl = APIUpLoadFileService.getFileUrl(x.PersonQualityId, null), }).FirstOrDefault(); return getQualityItem; } } #endregion #region 人员资质信息保存方法 /// /// 人员资质信息保存方法 /// /// 人员信息 public static void SavePersonQuality(Model.PersonQualityItem personQuality) { using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString)) { Model.SY_QualityAudit_PersonQuality newPersonQuality = new Model.SY_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), AuditOpinion = personQuality.AuditOpinion, States = personQuality.States, }; newPersonQuality.AuditDate = DateTime.Now; 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.SY_QualityAudit_PersonQuality.FirstOrDefault(x => x.PersonQualityId == newPersonQuality.PersonQualityId || x.PersonId == newPersonQuality.PersonId); if (getPersonQuality == null) { newPersonQuality.PersonQualityId = SQLHelper.GetNewID(); newPersonQuality.CompileDate = DateTime.Now; db.SY_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.Remark = newPersonQuality.Remark; getPersonQuality.AuditDate = newPersonQuality.AuditDate; getPersonQuality.AuditorId = newPersonQuality.AuditorId; getPersonQuality.AuditorId = newPersonQuality.AuditorId; getPersonQuality.States = newPersonQuality.States; db.SubmitChanges(); } if (!string.IsNullOrEmpty(newPersonQuality.PersonQualityId)) { APIUpLoadFileService.SaveAttachUrl(Const.PersonQualityMenuId, newPersonQuality.PersonQualityId, personQuality.AttachUrl, "0"); } } } #endregion public class PersonQualityItemList { /// /// 人员特岗资质ID /// public string PersonQualityId { get; set; } /// /// 人员主键ID /// public string PersonId { get; set; } /// /// 姓名 /// public string PersonName { get; set; } /// /// 身份证号码 /// public string IdentityCard { get; set; } /// /// 项目id /// public string ProjectId { get; set; } /// /// 项目号 /// public string ProjectCode { get; set; } /// /// 项目名称 /// public string ProjectName { get; set; } /// /// 单位ID /// public string UnitId { get; set; } /// /// 单位代号 /// public string UnitCode { get; set; } /// /// 单位名称 /// public string UnitName { get; set; } /// /// 岗位ID /// public string WorkPostId { get; set; } /// /// 岗位名称 /// public string WorkPostName { get; set; } /// /// 证书名称 /// public string CertificateName { get; set; } /// /// 证书编号 /// public string CertificateNo { get; set; } /// /// 发证单位 /// public string SendUnit { get; set; } /// /// 发证时间 /// public string SendDate { get; set; } /// /// 有效期 /// public string LimitDate { get; set; } /// /// 有效期 /// public DateTime? LimitDateD { get; set; } /// /// 最近复查日期 /// public string LateCheckDate { get; set; } /// /// 审核人 /// public string ApprovalPerson { get; set; } /// /// 备注 /// public string Remark { get; set; } /// /// 审核日期 /// public string AuditDate { get; set; } /// /// 审核人ID /// public string AuditorId { get; set; } /// /// 审核人姓名 /// public string AuditorName { get; set; } /// /// 审核状态(0-待提交;1-待审核;2-已审核;-1打回) /// public string States { get; set; } /// /// 状态 /// private string statesName; public string StatesName { get { return this.statesName; } set { this.statesName = value == "1" ? "是" : "否"; } } /// /// 审核意见 /// public string AuditOpinion { get; set; } /// /// 证书附件 /// public string AttachUrl { get; set; } } } }