namespace BLL { using Model; using System.Collections.Generic; using System.Linq; public static class ProjectService { public static SGGLDB db = Funs.DB; /// ///获取项目信息 /// /// public static Model.Base_Project GetProjectByProjectId(string projectId) { return Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId); } /// ///根据ID获取项目名称 /// /// public static string GetProjectNameByProjectId(string projectId) { string name = string.Empty; var project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId); if (project != null) { name = project.ProjectName; } return name; } /// ///根据ID获取项目编号 /// /// public static string GetProjectCodeByProjectId(string projectId) { string name = string.Empty; var project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId); if (project != null) { name = project.ProjectCode; } return name; } public static Model.Base_Project GetProjectByProjectShortName(string name) { return Funs.DB.Base_Project.FirstOrDefault(e => e.ShortName == name); } public static Model.Base_Project GetProjectByProjectName(string name) { return Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectName == name); } /// ///获取项目简称 /// /// public static string GetShortNameByProjectId(string projectId) { string name = string.Empty; var project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId); if (project != null) { name = project.ShortName; } return name; } /// /// 增加项目信息 /// /// public static void AddProject(Model.Base_Project project) { Model.SGGLDB db = Funs.DB; Model.Base_Project newProject = new Base_Project { ProjectId = project.ProjectId, ProjectCode = project.ProjectCode, ProjectName = project.ProjectName, StartDate = project.StartDate, EndDate = project.EndDate, ProjectAddress = project.ProjectAddress, ContractNo = project.ContractNo, WorkRange = project.WorkRange, Duration = project.Duration, ShortName = project.ShortName, ProjectType = project.ProjectType, PostCode = project.PostCode, Remark = project.Remark, ProjectState = project.ProjectState, IsUpTotalMonth = project.IsUpTotalMonth, UnitId = project.UnitId, ProjectMainPerson = project.ProjectMainPerson, ProjectLiaisonPerson = project.ProjectLiaisonPerson, IsForeign = project.IsForeign, FromProjectId = project.FromProjectId, MapCoordinates = project.MapCoordinates, ProjectMoney = project.ProjectMoney, ConstructionMoney = project.ConstructionMoney, Telephone = project.Telephone, Country = project.Country, Province = project.Province, City = project.City, EnglishRemark = project.EnglishRemark, }; db.Base_Project.InsertOnSubmit(newProject); db.SubmitChanges(); HSEDataCollectService.ProjectHSEDataCollectSubmission(newProject); } /// ///修改项目信息 /// /// public static void UpdateProject(Model.Base_Project project) { SGGLDB db = Funs.DB; Base_Project newProject = db.Base_Project.FirstOrDefault(e => e.ProjectId == project.ProjectId); if (newProject != null) { newProject.ProjectCode = project.ProjectCode; newProject.ProjectName = project.ProjectName; newProject.StartDate = project.StartDate; newProject.EndDate = project.EndDate; newProject.ProjectAddress = project.ProjectAddress; newProject.ShortName = project.ShortName; newProject.ContractNo = project.ContractNo; newProject.WorkRange = project.WorkRange; newProject.Duration = project.Duration; newProject.ProjectType = project.ProjectType; newProject.PostCode = project.PostCode; newProject.Remark = project.Remark; newProject.ProjectState = project.ProjectState; newProject.IsUpTotalMonth = project.IsUpTotalMonth; newProject.UnitId = project.UnitId; newProject.ProjectMainPerson = project.ProjectMainPerson; newProject.ProjectLiaisonPerson = project.ProjectLiaisonPerson; newProject.IsForeign = project.IsForeign; newProject.FromProjectId = project.FromProjectId; newProject.MapCoordinates = project.MapCoordinates; newProject.ProjectMoney = project.ProjectMoney; newProject.ConstructionMoney = project.ConstructionMoney; newProject.Telephone = project.Telephone; newProject.Country = project.Country; newProject.Province = project.Province; newProject.City = project.City; newProject.EnglishRemark = project.EnglishRemark; db.SubmitChanges(); HSEDataCollectService.ProjectHSEDataCollectSubmission(newProject); } } /// /// 根据项目Id删除一个项目信息 /// /// public static void DeleteProject(string projectId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { Base_Project project = db.Base_Project.FirstOrDefault(e => e.ProjectId == projectId); if (project != null) { var getSitePerson_PersonItem = from x in db.SitePerson_PersonItem where x.ProjectId == projectId select x; if (getSitePerson_PersonItem.Count() > 0) { db.SitePerson_PersonItem.DeleteAllOnSubmit(getSitePerson_PersonItem); db.SubmitChanges(); } var getSitePerson_Person = from x in db.SitePerson_Person where x.ProjectId == projectId select x; if (getSitePerson_Person.Count() > 0) { db.SitePerson_Person.DeleteAllOnSubmit(getSitePerson_Person); db.SubmitChanges(); } var getPerson_Persons = from x in db.Person_Persons where x.CurrentProjectId == projectId select x; if (getPerson_Persons.Count() > 0) { foreach (var item in getPerson_Persons) { item.CurrentProjectId = null; db.SubmitChanges(); } } ProjectUnitService.DeleteProjectUnitByProjectId(project.ProjectId); db.Base_Project.DeleteOnSubmit(project); db.SubmitChanges(); } } } /// /// 获取施工中项目集合 /// /// public static List GetProjectWorkList() { var list = (from x in Funs.DB.Base_Project where x.ProjectState == null || x.ProjectState == BLL.Const.ProjectState_1 orderby x.ProjectCode descending select x).ToList(); return list; } /// /// 获取项目下拉选项 /// /// public static List GetProjectDropDownListByState(string state) { if (state == BLL.Const.ProjectState_1) //施工 { var list = (from x in Funs.DB.Base_Project where x.ProjectState == state || x.ProjectState == null orderby x.ProjectCode descending select x).ToList(); return list; } else { var list = (from x in Funs.DB.Base_Project where x.ProjectState == state orderby x.ProjectCode descending select x).ToList(); return list; } } /// /// 获取项目下拉选项 /// /// public static List GetAllProjectDropDownList() { var list = (from x in Funs.DB.Base_Project orderby x.ProjectCode descending select x).ToList(); return list; } /// /// 获取某类型下项目下拉选项 /// /// public static List GetProjectByProjectTypeDropDownList(string projectType) { var list = (from x in Funs.DB.Base_Project where x.ProjectType == projectType orderby x.ProjectCode descending select x).ToList(); return list; } /// /// 获取userId参与项目下拉框 /// /// public static List GetProjectByUserIdDropDownList(string userId) { if (userId == Const.sysglyId || userId == Const.hfnbdId || userId == Const.sedinId) { return (from x in Funs.DB.Base_Project where x.ProjectState == null || x.ProjectState == BLL.Const.ProjectState_1 orderby x.ProjectCode descending select x).ToList(); } var getUser = Person_PersonsService.GetPerson_PersonsById(userId); if (getUser != null) { List roleidList = Funs.GetStrListByStr(getUser.RoleIds, ','); /// 获取角色类型 var getRoleP = Funs.DB.Sys_RolePower.FirstOrDefault(x => roleidList.Contains(x.RoleId) && x.IsOffice == false); if (getRoleP != null) { return (from x in Funs.DB.Base_Project where x.ProjectState == null || x.ProjectState == BLL.Const.ProjectState_1 orderby x.ProjectCode descending select x).ToList(); } else { return (from x in Funs.DB.Base_Project join y in Funs.DB.SitePerson_Person on x.ProjectId equals y.ProjectId where x.ProjectState == null || x.ProjectState == BLL.Const.ProjectState_1 && y.PersonId == userId orderby x.ProjectCode descending select x).ToList(); } } else { return null; } } #region 项目表下拉框 /// /// 项目表下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitProjectDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease) { dropName.DataValueField = "ProjectId"; dropName.DataTextField = "ProjectName"; dropName.DataSource = BLL.ProjectService.GetProjectWorkList(); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 项目表下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitProjectShortNameDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease) { dropName.DataValueField = "ProjectId"; dropName.DataTextField = "ShortName"; dropName.DataSource = BLL.ProjectService.GetProjectWorkList(); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 项目表下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitAllProjectDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease) { dropName.Items.Clear(); dropName.DataValueField = "ProjectId"; dropName.DataTextField = "ProjectName"; var projectlist = BLL.ProjectService.GetAllProjectDropDownList(); dropName.DataSource = projectlist; dropName.DataBind(); if (projectlist.Count() == 0) { isShowPlease = true; } if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// /// /// /// /// public static void InitAllProjectShortNameDropDownList(FineUIPro.DropDownList dropName, string userId, bool isShowPlease) { dropName.DataValueField = "ProjectId"; dropName.DataTextField = "ShortName"; var projectlist = GetProjectByUserIdDropDownList(userId); dropName.DataSource = projectlist; dropName.DataBind(); if (projectlist.Count() == 0) { isShowPlease = true; } if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 某类型下项目表下拉框 /// /// 下拉框名字 /// 是否显示请选择 public static void InitProjectByProjectTypeDropDownList(FineUIPro.DropDownList dropName, string projectType, bool isShowPlease) { dropName.DataValueField = "ProjectId"; dropName.DataTextField = "ProjectName"; var projectlist = BLL.ProjectService.GetProjectByProjectTypeDropDownList(projectType); dropName.DataSource = projectlist; dropName.DataBind(); if (projectlist.Count() == 0) { isShowPlease = true; } if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } #endregion /// /// 获取项目各单位类型单位名称 /// /// /// /// public static string getProjectUnitNameByUnitType(string projectId, string unitType) { string unitName = string.Empty; if (!string.IsNullOrEmpty(projectId)) { var getUnitName = from x in Funs.DB.Project_ProjectUnit join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId where x.ProjectId == projectId.ToString() && x.UnitType == unitType select y.UnitName; if (getUnitName.Count() > 0) { unitName = Funs.GetStringByArray(getUnitName.ToArray()); } } return unitName; } /// /// 获取项目各单位类型单位名称 /// /// /// /// public static string getShortProjectUnitNameByUnitType(string projectId, string unitType) { string unitName = string.Empty; if (!string.IsNullOrEmpty(projectId)) { var getShortUnitName = from x in Funs.DB.Project_ProjectUnit join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId where x.ProjectId == projectId.ToString() && x.UnitType == unitType select y.ShortUnitName; if (getShortUnitName.Count() > 0) { unitName = Funs.GetStringByArray(getShortUnitName.ToArray()); } } return unitName; } /// /// 获取所有项目号 /// /// /// public static void InitAllProjectCodeDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease) { dropName.DataValueField = "ProjectId"; dropName.DataTextField = "ProjectCode"; var projectlist = BLL.ProjectService.GetAllProjectDropDownList(); dropName.DataSource = projectlist; dropName.DataBind(); if (projectlist.Count() == 0) { isShowPlease = true; } if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 获取该单位本部角色名称 /// /// /// /// public static string GetOfficeRoleName(string UnitId, string RoleId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string name = string.Empty; if (UnitId != null) { name = (from x in db.Person_Persons where x.UnitId == UnitId && x.RoleIds.Contains(RoleId) select x.PersonName).FirstOrDefault(); } return name; } } /// /// 获取该单位本部角色ID /// /// /// /// public static string GetOfficeRoleID(string UnitId, string RoleId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getUser = db.Person_Persons.FirstOrDefault(x => x.UnitId == UnitId && x.RoleIds.Contains(RoleId)); string PersonId = string.Empty; if (getUser != null) { PersonId = getUser.PersonId; } return PersonId; } } public static Model.Base_Project GetProjectByProjectCode(string projectCode) { return Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectCode == projectCode); } /// ///根据ID获取项目编号 /// /// public static string GetContractNoByProjectId(string projectId) { string name = string.Empty; var project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId); if (project != null) { name = project.ContractNo; if (string.IsNullOrEmpty(name)) { name = project.ProjectCode; } } return name; } } }