namespace BLL { using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Linq; using System.Data.Linq; using System.Web.Security; using System.Web.UI.WebControls; using Model; using BLL; using System.Collections; public static class Base_ProjectService { public static Model.SGGLDB db = Funs.DB; /// ///获取项目信息 /// /// public static Model.Base_Project GetProjectByProjectId(string projectId) { return Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId); } /// ///获取项目信息 /// /// public static List GetProjectByTestStandardId(string testStandardId) { return (from x in Funs.DB.Base_Project where x.TestStandardId == testStandardId select x).ToList(); } /// ///获取项目编号 /// /// public static string GetProjectCode(string projectId) { Model.Base_Project project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId); if (project == null) { return ""; } else { return project.ProjectCode; } } /// ///获取项目简称 /// /// public static string GetProjectName(string projectId) { Model.Base_Project project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId); if (project == null) { return ""; } else { return project.ShortName; } } /// /// 判断施工号是否存在 /// /// 项目ID /// 施工号 /// public static bool IsExistProjectCode(string projectId, string projectCode, string projectSoft) { bool isExitCode = false; var q = from x in Funs.DB.Base_Project where x.ProjectSoft==projectSoft && x.ProjectCode == projectCode && x.ProjectId != projectId select x; if (q.Count() > 0) { isExitCode = true; } return isExitCode; } /// /// 增加项目信息 /// /// public static void AddProject(Model.Base_Project project) { Model.SGGLDB db = Funs.DB; Model.Base_Project newProject = new Base_Project(); newProject.ProjectId = project.ProjectId; newProject.ProjectCode = project.ProjectCode; newProject.ProjectName = project.ProjectName; newProject.ShortName = project.ShortName; newProject.StartDate = project.StartDate; newProject.EndDate = project.EndDate; newProject.ProjectPrincipal = project.ProjectPrincipal; newProject.TechnicalPrincipal = project.TechnicalPrincipal; newProject.SecurePrincipal = project.SecurePrincipal; newProject.ProjectManager = project.ProjectManager; newProject.Remark = project.Remark; newProject.IsClosed = project.IsClosed; newProject.TestEngineeringCode = project.TestEngineeringCode; newProject.CreateManId = project.CreateManId; newProject.ProjectSoft = project.ProjectSoft; newProject.CheckUnitId = project.CheckUnitId; newProject.WatchUnit = project.WatchUnit; newProject.TestStandardId = project.TestStandardId; newProject.EquipmentName = project.EquipmentName; newProject.TagNum = project.TagNum; newProject.ProductNum = project.ProductNum; newProject.BodyMaterial = project.BodyMaterial; db.Base_Project.InsertOnSubmit(newProject); db.SubmitChanges(); } ///修改项目信息 /// /// public static void UpdateProject(Model.Base_Project project) { Model.SGGLDB db = Funs.DB; Model.Base_Project newProject = db.Base_Project.First(e => e.ProjectId == project.ProjectId); newProject.ProjectCode = project.ProjectCode; newProject.ProjectName = project.ProjectName; newProject.ShortName = project.ShortName; newProject.StartDate = project.StartDate; newProject.EndDate = project.EndDate; newProject.ProjectPrincipal = project.ProjectPrincipal; newProject.TechnicalPrincipal = project.TechnicalPrincipal; newProject.SecurePrincipal = project.SecurePrincipal; newProject.ProjectManager = project.ProjectManager; newProject.Remark = project.Remark; newProject.IsClosed = project.IsClosed; newProject.TestEngineeringCode = project.TestEngineeringCode; newProject.CreateManId = project.CreateManId; newProject.ProjectSoft = project.ProjectSoft; newProject.CheckUnitId = project.CheckUnitId; newProject.WatchUnit = project.WatchUnit; newProject.TestStandardId = project.TestStandardId; newProject.EquipmentName = project.EquipmentName; newProject.TagNum = project.TagNum; newProject.ProductNum = project.ProductNum; newProject.BodyMaterial = project.BodyMaterial; db.SubmitChanges(); } /// /// 根据项目Id删除一个项目信息 /// /// public static void DeleteProject(string projectId) { Model.SGGLDB db = Funs.DB; Model.Base_Project project = db.Base_Project.FirstOrDefault(e => e.ProjectId == projectId); if (project != null) { var bt = from x in db.Project_RoleButtonPower where x.ProjectId == projectId select x; if (bt.Count() > 0) { db.Project_RoleButtonPower.DeleteAllOnSubmit(bt); } var rolePower = from x in db.Project_RolePower where x.ProjectId == projectId select x; if (rolePower.Count() > 0) { db.Project_RolePower.DeleteAllOnSubmit(rolePower); } var report = from x in db.Common_ReportServer where x.ProjectId == projectId select x; if (report.Count() > 0) { db.Common_ReportServer.DeleteAllOnSubmit(report); } var set = from x in db.Project_Sys_Set where x.ProjectId == projectId select x; if (set.Count() > 0) { db.Project_Sys_Set.DeleteAllOnSubmit(set); } var punit = from x in db.Project_Unit where x.ProjectId == projectId select x; if (punit.Count() > 0) { db.Project_Unit.DeleteAllOnSubmit(punit); } var puser = from x in db.Project_User where x.ProjectId == projectId select x; if (puser.Count() > 0) { db.Project_User.DeleteAllOnSubmit(puser); } db.SubmitChanges(); } db.Base_Project.DeleteOnSubmit(project); db.SubmitChanges(); } /// /// 根据用户Id获取项目集合 /// /// 用户ID /// 1-管道安装,2-压力容器 /// public static List GetProjectListByUserId(string userId, string projectSoft) { if (userId == BLL.Const.GlyId) //管理员 { var q = (from x in Funs.DB.Base_Project where x.ProjectSoft == projectSoft orderby x.ProjectCode descending select x).ToList(); return q; } else { var q = (from x in Funs.DB.Base_Project join y in Funs.DB.Project_User on x.ProjectId equals y.ProjectId where y.UserId == userId && x.ProjectSoft == projectSoft select x).Distinct().ToList(); return q.OrderByDescending(x => x.ProjectCode).ToList(); } } /// /// 根据用户Id获取项目集合 /// /// 用户ID /// 1-管道安装,2-压力容器 /// public static List GetYlrqProjectListByUserId(string userId, string projectSoft) { if (userId == BLL.Const.GlyId) //管理员 { var q = (from x in Funs.DB.Base_Project where x.ProjectSoft == projectSoft orderby x.ProjectCode descending select new YlrqProject { ProjectId = x.ProjectId, ProjectName = x.ProjectName, ShortName = x.ShortName, StartDate = x.StartDate, EndDate = x.EndDate, ProjectCode = x.ProjectCode, EquipmentName = x.EquipmentName, ProductNum = x.ProductNum, ProjectSoft = x.ProjectSoft, ProjectTextField = $"施工号:({x.ProjectCode}),设备名称:({x.EquipmentName}),产品编号:({x.ProductNum})" }).ToList(); return q.OrderByDescending(x => x.ProjectCode).ToList(); } else { var q = (from x in Funs.DB.Base_Project join y in Funs.DB.Project_User on x.ProjectId equals y.ProjectId where y.UserId == userId && x.ProjectSoft == projectSoft select new YlrqProject { ProjectId = x.ProjectId, ProjectName = x.ProjectName, ShortName = x.ShortName, StartDate = x.StartDate, EndDate = x.EndDate, ProjectCode = x.ProjectCode, EquipmentName = x.EquipmentName, ProductNum = x.ProductNum, ProjectSoft = x.ProjectSoft, ProjectTextField = $"施工号:({x.ProjectCode}),设备名称:({x.EquipmentName}),产品编号:({x.ProductNum})" }).Distinct().ToList(); return q.OrderByDescending(x => x.ProjectCode).ToList(); } } public class YlrqProject : Base_Project { public string ProjectTextField { get; set; } } /// /// 获取用户所有项目字符串 /// /// /// /// public static string GetStrProjectIds(string userId, string projectSoft) { List projects = BLL.Base_ProjectService.GetProjectListByUserId(userId, projectSoft); string projectIds = string.Empty; foreach (var project in projects) { projectIds += project.ProjectId + ","; } return projectIds; } /// /// 获取用户所有在建项目字符串 /// /// /// /// public static string GetStrOnProjectIds(string userId, string projectSoft) { List projects = BLL.Base_ProjectService.GetOnProjectListByUserId(userId, projectSoft); string projectIds = string.Empty; foreach (var project in projects) { projectIds += project.ProjectId + ","; } return projectIds; } public static List GetOnProjectListByUserId(string userId) { if (userId == BLL.Const.GlyId) //管理员 { var q = (from x in Funs.DB.Base_Project where x.IsClosed == false orderby x.ProjectCode descending select x).ToList(); return q; } else { var q = (from x in Funs.DB.Base_Project join y in Funs.DB.Project_User on x.ProjectId equals y.ProjectId where y.UserId == userId && x.IsClosed == false select x).Distinct().ToList(); return q.OrderByDescending(x => x.ProjectCode).ToList(); } } /// /// 根据用户Id获取参与在建项目的集合 /// /// 用户ID /// 1-管道安装,2-压力容器 /// public static List GetOnProjectListByUserId(string userId, string projectSoft) { if (userId == BLL.Const.GlyId) //管理员 { var q = (from x in Funs.DB.Base_Project where x.IsClosed == false && x.ProjectSoft == projectSoft orderby x.ProjectCode descending select x).ToList(); return q; } else { var q = (from x in Funs.DB.Base_Project join y in Funs.DB.Project_User on x.ProjectId equals y.ProjectId where y.UserId == userId && x.IsClosed == false && x.ProjectSoft == projectSoft select x).Distinct().ToList(); return q.OrderByDescending(x => x.ProjectCode).ToList(); } } public static List GetOnProjectListByUser(string userId, string projectSoft) { if (userId == BLL.Const.GlyId) //管理员 { var q = (from x in Funs.DB.Base_Project where x.IsClosed == false && x.ProjectSoft == projectSoft orderby x.ProjectCode descending select new BaseProject { ProjectId = x.ProjectId, ProjectCode = x.ProjectCode, ProjectName = x.ProjectName }).ToList(); return q; } else { var q = (from x in Funs.DB.Base_Project join y in Funs.DB.Project_User on x.ProjectId equals y.ProjectId where y.UserId == userId && x.IsClosed == false && x.ProjectSoft == projectSoft select new BaseProject { ProjectId = x.ProjectId, ProjectCode = x.ProjectCode, ProjectName = x.ProjectName }).Distinct().ToList(); return q; } } /// /// 获取RT的检测记录项目 /// /// /// /// public static List GetOnProjectListByRT(string userId, string projectSoft) { if (userId == BLL.Const.GlyId) //管理员 { var q = (from x in Funs.DB.Base_Project where x.IsClosed == false && x.ProjectSoft == projectSoft orderby x.ProjectCode descending select new BaseProjectOutput { ProjectName = x.ProjectName, ProjectCode = x.ProjectCode, ProjectId = x.ProjectId, isExists = (from a in Funs.DB.HJGL_CH_Trust join b in Funs.DB.HJGL_CH_TrustItem on a.CH_TrustID equals b.CH_TrustID where a.ProjectId == x.ProjectId && b.Record_PrintDate==null && a.CH_NDTMethod == "20d2cbca-8b3d-434b-b1c1-181796986fa5" select new {a.ProjectId} ).Count() } ).ToList(); return q; } else { var q = (from x in Funs.DB.Base_Project join y in Funs.DB.Project_User on x.ProjectId equals y.ProjectId where y.UserId == userId && x.IsClosed == false && x.ProjectSoft == projectSoft select new BaseProjectOutput { ProjectName = x.ProjectName, ProjectCode = x.ProjectCode, ProjectId = x.ProjectId, isExists = (from a in Funs.DB.HJGL_CH_Trust join b in Funs.DB.HJGL_CH_TrustItem on a.CH_TrustID equals b.CH_TrustID where a.ProjectId == x.ProjectId && b.Record_PrintDate == null && a.CH_NDTMethod == "20d2cbca-8b3d-434b-b1c1-181796986fa5" select new { a.ProjectId } ).Count() } ).Distinct().ToList(); return q.OrderByDescending(x => x.ProjectCode).ToList(); } } /// /// 获取非RT的检测记录项目 /// /// /// /// public static List GetOnProjectListByNoRT(string userId, string projectSoft) { if (userId == BLL.Const.GlyId) //管理员 { var q = (from x in Funs.DB.Base_Project where x.IsClosed == false && x.ProjectSoft == projectSoft orderby x.ProjectCode descending select new BaseProjectOutput { ProjectName = x.ProjectName, ProjectCode = x.ProjectCode, ProjectId = x.ProjectId, isExists = (from a in Funs.DB.HJGL_CH_Trust join b in Funs.DB.HJGL_CH_TrustItem on a.CH_TrustID equals b.CH_TrustID where a.ProjectId == x.ProjectId && b.Record_PrintDate == null && a.CH_NDTMethod != "20d2cbca-8b3d-434b-b1c1-181796986fa5" select new { a.ProjectId } ).Count() } ).ToList(); return q; } else { var q = (from x in Funs.DB.Base_Project join y in Funs.DB.Project_User on x.ProjectId equals y.ProjectId where y.UserId == userId && x.IsClosed == false && x.ProjectSoft == projectSoft select new BaseProjectOutput { ProjectName = x.ProjectName, ProjectCode = x.ProjectCode, ProjectId = x.ProjectId, isExists = (from a in Funs.DB.HJGL_CH_Trust join b in Funs.DB.HJGL_CH_TrustItem on a.CH_TrustID equals b.CH_TrustID where a.ProjectId == x.ProjectId && b.Record_PrintDate == null && a.CH_NDTMethod != "20d2cbca-8b3d-434b-b1c1-181796986fa5" select new { a.ProjectId } ).Count() } ).Distinct().ToList(); return q.OrderByDescending(x => x.ProjectCode).ToList(); } } /// /// 根据用户Id、项目状态、类型获取参与项目集合 /// /// 用户ID /// 项目状态 /// 类型:1-管道安装,2-压力容器 /// public static List GetProjectListByUserIdAndState(string userId, string state, string projectSoft) { if (state == BLL.Const._Null) { if (userId == BLL.Const.GlyId) //管理员 { var q = (from x in Funs.DB.Base_Project where x.ProjectSoft == projectSoft orderby x.ProjectCode descending select x).ToList(); return q; } else { var q = (from x in Funs.DB.Base_Project join y in Funs.DB.Project_User on x.ProjectId equals y.ProjectId where y.UserId == userId && x.ProjectSoft == projectSoft select x).Distinct().ToList(); return q.OrderByDescending(x => x.ProjectCode).ToList(); } } else if (state == BLL.Const._True) { if (userId == BLL.Const.GlyId) //管理员 { var q = (from x in Funs.DB.Base_Project where x.IsClosed == true && x.ProjectSoft == projectSoft orderby x.ProjectCode descending select x).ToList(); return q; } else { var q = (from x in Funs.DB.Base_Project join y in Funs.DB.Project_User on x.ProjectId equals y.ProjectId where y.UserId == userId && x.IsClosed == true && x.ProjectSoft == projectSoft select x).Distinct().ToList(); return q.OrderByDescending(x => x.ProjectCode).ToList(); } } else { if (userId == BLL.Const.GlyId) //管理员 { var q = (from x in Funs.DB.Base_Project where x.IsClosed == false && x.ProjectSoft == projectSoft orderby x.ProjectCode descending select x).ToList(); return q; } else { var q = (from x in Funs.DB.Base_Project join y in Funs.DB.Project_User on x.ProjectId equals y.ProjectId where y.UserId == userId && x.IsClosed == false && x.ProjectSoft == projectSoft select x).Distinct().ToList(); return q.OrderByDescending(x => x.ProjectCode).ToList(); } } } } public class BaseProjectOutput:Model.Base_Project { public int isExists { get; set; } } public class BaseProject { public string ProjectId { get; set; } public string ProjectCode { get; set; } public string ProjectName { get; set; } } }