| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | namespace BLL | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     using Model; | 
					
						
							| 
									
										
										
										
											2024-12-24 19:04:32 +08:00
										 |  |  |  |     using Newtonsoft.Json; | 
					
						
							| 
									
										
										
										
											2025-03-18 21:54:11 +08:00
										 |  |  |  |     using System; | 
					
						
							|  |  |  |  |     using System.Collections.Generic; | 
					
						
							|  |  |  |  |     using System.Linq; | 
					
						
							| 
									
										
										
										
											2025-03-17 15:53:00 +08:00
										 |  |  |  |     using System.Runtime.Caching; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |     public static class ProjectService | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         public static SGGLDB db = Funs.DB; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///获取项目信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static Model.Base_Project GetProjectByProjectId(string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///根据ID获取项目名称 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         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; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///根据ID获取项目编号 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         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; | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2021-07-08 20:34:29 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///根据ID获取项目编号 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static string GetJTProjectCodeByProjectId(string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string name = string.Empty; | 
					
						
							|  |  |  |  |             var project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId); | 
					
						
							|  |  |  |  |             if (project != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 name = project.JTProjectCode; | 
					
						
							|  |  |  |  |                 if (string.IsNullOrEmpty(name)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     name = project.ProjectCode; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return name; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         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); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-13 10:48:08 +08:00
										 |  |  |  |         public static Model.Base_Project GetProjectByProjectCode(string code) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             return Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectCode == code); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///获取项目简称 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         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; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 增加项目信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         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, | 
					
						
							| 
									
										
										
										
											2021-07-08 20:34:29 +08:00
										 |  |  |  |                 JTProjectCode = project.JTProjectCode, | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 ProjectName = project.ProjectName, | 
					
						
							| 
									
										
										
										
											2025-03-31 18:43:58 +08:00
										 |  |  |  |                 ProjectNameEn = project.ProjectNameEn, | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 StartDate = project.StartDate, | 
					
						
							|  |  |  |  |                 EndDate = project.EndDate, | 
					
						
							| 
									
										
										
										
											2025-03-31 18:43:58 +08:00
										 |  |  |  |                 PlanStartDate = project.PlanStartDate, | 
					
						
							|  |  |  |  |                 PlanEndDate = project.PlanEndDate, | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 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, | 
					
						
							|  |  |  |  |                 ProjectState2 = project.ProjectState2, | 
					
						
							|  |  |  |  |                 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, | 
					
						
							| 
									
										
										
										
											2025-03-31 18:43:58 +08:00
										 |  |  |  |                 StClientName = project.StClientName, | 
					
						
							|  |  |  |  |                 ClientContactor = project.ClientContactor, | 
					
						
							|  |  |  |  |                 MobileTel = project.MobileTel, | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 Country = project.Country, | 
					
						
							|  |  |  |  |                 Province = project.Province, | 
					
						
							|  |  |  |  |                 City = project.City, | 
					
						
							|  |  |  |  |                 EnglishRemark = project.EnglishRemark, | 
					
						
							| 
									
										
										
										
											2021-11-02 13:32:31 +08:00
										 |  |  |  |                 HJProjectCode = project.HJProjectCode, | 
					
						
							|  |  |  |  |                 KZProjectCode = project.KZProjectCode, | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 Progress = project.Progress, | 
					
						
							| 
									
										
										
										
											2023-10-07 16:58:43 +08:00
										 |  |  |  |                 ProjType = project.ProjType, | 
					
						
							|  |  |  |  |                 ProjPhase = project.ProjPhase, | 
					
						
							| 
									
										
										
										
											2024-12-25 09:24:30 +08:00
										 |  |  |  |                 MasterSysId = project.MasterSysId, | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             }; | 
					
						
							|  |  |  |  |             db.Base_Project.InsertOnSubmit(newProject); | 
					
						
							|  |  |  |  |             db.SubmitChanges(); | 
					
						
							|  |  |  |  |             HSEDataCollectService.ProjectHSEDataCollectSubmission(newProject); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///修改项目信息  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="project"></param> | 
					
						
							|  |  |  |  |         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; | 
					
						
							| 
									
										
										
										
											2021-07-08 20:34:29 +08:00
										 |  |  |  |                 newProject.JTProjectCode = project.JTProjectCode; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 newProject.ProjectName = project.ProjectName; | 
					
						
							| 
									
										
										
										
											2025-03-31 18:43:58 +08:00
										 |  |  |  |                 newProject.ProjectNameEn = project.ProjectNameEn; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 newProject.StartDate = project.StartDate; | 
					
						
							|  |  |  |  |                 newProject.EndDate = project.EndDate; | 
					
						
							| 
									
										
										
										
											2025-03-31 18:43:58 +08:00
										 |  |  |  |                 newProject.PlanStartDate = project.PlanStartDate; | 
					
						
							|  |  |  |  |                 newProject.PlanEndDate = project.PlanEndDate; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 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.ProjectState2 = project.ProjectState2; | 
					
						
							|  |  |  |  |                 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; | 
					
						
							| 
									
										
										
										
											2025-03-31 18:43:58 +08:00
										 |  |  |  |                 newProject.StClientName = project.StClientName; | 
					
						
							|  |  |  |  |                 newProject.ClientContactor = project.ClientContactor; | 
					
						
							|  |  |  |  |                 newProject.MobileTel = project.MobileTel; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 newProject.Country = project.Country; | 
					
						
							|  |  |  |  |                 newProject.Province = project.Province; | 
					
						
							|  |  |  |  |                 newProject.City = project.City; | 
					
						
							|  |  |  |  |                 newProject.EnglishRemark = project.EnglishRemark; | 
					
						
							| 
									
										
										
										
											2021-11-02 13:32:31 +08:00
										 |  |  |  |                 newProject.HJProjectCode = project.HJProjectCode; | 
					
						
							|  |  |  |  |                 newProject.KZProjectCode = project.KZProjectCode; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 newProject.Progress = project.Progress; | 
					
						
							| 
									
										
										
										
											2023-10-07 16:58:43 +08:00
										 |  |  |  |                 newProject.ProjType = project.ProjType; | 
					
						
							|  |  |  |  |                 newProject.ProjPhase = project.ProjPhase; | 
					
						
							| 
									
										
										
										
											2024-12-25 09:24:30 +08:00
										 |  |  |  |                 newProject.MasterSysId = project.MasterSysId; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 db.SubmitChanges(); | 
					
						
							|  |  |  |  |                 HSEDataCollectService.ProjectHSEDataCollectSubmission(newProject); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 根据项目Id删除一个项目信息 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							|  |  |  |  |         public static void DeleteProject(string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             SGGLDB db = Funs.DB; | 
					
						
							|  |  |  |  |             Base_Project project = db.Base_Project.FirstOrDefault(e => e.ProjectId == projectId); | 
					
						
							|  |  |  |  |             if (project != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 db.Base_Project.DeleteOnSubmit(project); | 
					
						
							|  |  |  |  |                 db.SubmitChanges(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取施工中项目集合 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.Base_Project> 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; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取项目下拉选项 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.Base_Project> 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; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取项目下拉选项 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							| 
									
										
										
										
											2024-09-11 10:36:09 +08:00
										 |  |  |  |         public static List<Model.Base_Project> GetAllProjectDropDownList(string[] pids = null) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-03-17 15:53:00 +08:00
										 |  |  |  |             string cacheKey = "allProjects"; | 
					
						
							|  |  |  |  |             var memoryCache = MemoryCache.Default; | 
					
						
							|  |  |  |  |             if (memoryCache.Get(cacheKey) != null) | 
					
						
							| 
									
										
										
										
											2024-09-11 10:36:09 +08:00
										 |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2025-03-17 15:53:00 +08:00
										 |  |  |  |                 var result = (List<Model.Base_Project>)memoryCache.Get(cacheKey); | 
					
						
							|  |  |  |  |                 if (pids == null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     return result; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     result = result.Where(e => pids.Contains(e.ProjectId)).ToList(); | 
					
						
							|  |  |  |  |                     return result; | 
					
						
							|  |  |  |  |                 }  | 
					
						
							| 
									
										
										
										
											2024-09-11 10:36:09 +08:00
										 |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2024-12-25 09:24:30 +08:00
										 |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2025-03-17 15:53:00 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |                 var list = (from x in Funs.DB.Base_Project  | 
					
						
							|  |  |  |  |                     where x.ProjectState == Const.ProjectState_1 || x.ProjectState == null | 
					
						
							| 
									
										
										
										
											2024-09-11 10:36:09 +08:00
										 |  |  |  |                             orderby x.ProjectCode descending | 
					
						
							| 
									
										
										
										
											2025-03-17 15:53:00 +08:00
										 |  |  |  |                     select x).ToList(); | 
					
						
							|  |  |  |  |                 var policy = new CacheItemPolicy | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(Const.CacheMinutes), | 
					
						
							|  |  |  |  |                 }; | 
					
						
							|  |  |  |  |                 memoryCache.Set(cacheKey, list, policy); | 
					
						
							| 
									
										
										
										
											2024-12-25 09:24:30 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-17 15:53:00 +08:00
										 |  |  |  |                 if (pids == null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     return list; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     var result = list.Where(e => pids.Contains(e.ProjectId)).ToList(); | 
					
						
							|  |  |  |  |                     return result; | 
					
						
							|  |  |  |  |                 }  | 
					
						
							|  |  |  |  |             }   | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取某类型下项目下拉选项 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.Base_Project> 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; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取userId参与项目下拉框 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.Base_Project> GetProjectByUserIdDropDownList(string userId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (userId == Const.sysglyId || userId == Const.hfnbdId || userId == Const.sedinId) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return (from x in Funs.DB.Base_Project | 
					
						
							|  |  |  |  |                         orderby x.ProjectCode descending | 
					
						
							|  |  |  |  |                         select x).ToList(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             var getUser = UserService.GetUserByUserId(userId); | 
					
						
							|  |  |  |  |             if (getUser != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 /// 获取角色类型 | 
					
						
							|  |  |  |  |                 var getRoleP = Funs.DB.Sys_RolePower.FirstOrDefault(x => x.RoleId == getUser.RoleId && x.IsOffice == false); | 
					
						
							|  |  |  |  |                 if (getRoleP != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     return (from x in Funs.DB.Base_Project | 
					
						
							|  |  |  |  |                             orderby x.ProjectCode descending | 
					
						
							|  |  |  |  |                             select x).ToList(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     return (from x in Funs.DB.Base_Project | 
					
						
							|  |  |  |  |                             join y in Funs.DB.Project_ProjectUser on x.ProjectId equals y.ProjectId | 
					
						
							| 
									
										
										
										
											2021-05-20 17:16:01 +08:00
										 |  |  |  |                             where y.UserId == userId && y.IsPost == true | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             orderby x.ProjectCode descending | 
					
						
							|  |  |  |  |                             select x).Distinct().ToList(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return null; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-25 09:52:24 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取userId参与项目下拉框 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							| 
									
										
										
										
											2024-12-25 09:24:30 +08:00
										 |  |  |  |         public static List<Model.Base_Project> GetProjectByUserIdStateDropDownList(string userId, string state, string urlType = "") | 
					
						
							| 
									
										
										
										
											2023-08-25 09:52:24 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             if (userId == Const.sysglyId || userId == Const.hfnbdId || userId == Const.sedinId) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return (from x in Funs.DB.Base_Project | 
					
						
							|  |  |  |  |                         where x.ProjectState == state | 
					
						
							|  |  |  |  |                         orderby x.ProjectCode descending | 
					
						
							|  |  |  |  |                         select x).ToList(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             var getUser = UserService.GetUserByUserId(userId); | 
					
						
							|  |  |  |  |             if (getUser != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 /// 获取角色类型 | 
					
						
							|  |  |  |  |                 var getRoleP = Funs.DB.Sys_RolePower.FirstOrDefault(x => x.RoleId == getUser.RoleId && x.IsOffice == false); | 
					
						
							| 
									
										
										
										
											2024-09-13 14:57:02 +08:00
										 |  |  |  |                 //如果是项目级别,获取到他的类型后,并且还要单位是五环的 | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(urlType)) | 
					
						
							| 
									
										
										
										
											2023-08-25 09:52:24 +08:00
										 |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2024-09-13 14:57:02 +08:00
										 |  |  |  |                     //五环的能看所有项目,否则只能看项目用户中有自己或者所属单位是自己单位的 | 
					
						
							| 
									
										
										
										
											2024-12-25 09:24:30 +08:00
										 |  |  |  |                     if (getRoleP != null && getUser.UnitId == Const.UnitId_CWCEC) | 
					
						
							| 
									
										
										
										
											2024-09-13 14:57:02 +08:00
										 |  |  |  |                     { | 
					
						
							|  |  |  |  |                         return (from x in Funs.DB.Base_Project | 
					
						
							|  |  |  |  |                                 where x.ProjectState == state | 
					
						
							|  |  |  |  |                                 orderby x.ProjectCode descending | 
					
						
							|  |  |  |  |                                 select x).ToList(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         return (from x in Funs.DB.Base_Project | 
					
						
							|  |  |  |  |                                 join y in Funs.DB.Project_ProjectUser on x.ProjectId equals y.ProjectId | 
					
						
							| 
									
										
										
										
											2024-12-25 09:24:30 +08:00
										 |  |  |  |                                 where ((y.UserId == userId && y.IsPost == true) || x.UnitId == getUser.UnitId) && x.ProjectState == state | 
					
						
							| 
									
										
										
										
											2024-09-13 14:57:02 +08:00
										 |  |  |  |                                 orderby x.ProjectCode descending | 
					
						
							|  |  |  |  |                                 select x).Distinct().ToList(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							| 
									
										
										
										
											2023-08-25 09:52:24 +08:00
										 |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2024-12-25 09:24:30 +08:00
										 |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2024-09-13 14:57:02 +08:00
										 |  |  |  |                     if (getRoleP != null) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         return (from x in Funs.DB.Base_Project | 
					
						
							|  |  |  |  |                                 where x.ProjectState == state | 
					
						
							|  |  |  |  |                                 orderby x.ProjectCode descending | 
					
						
							|  |  |  |  |                                 select x).ToList(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         return (from x in Funs.DB.Base_Project | 
					
						
							|  |  |  |  |                                 join y in Funs.DB.Project_ProjectUser on x.ProjectId equals y.ProjectId | 
					
						
							|  |  |  |  |                                 where y.UserId == userId && y.IsPost == true && x.ProjectState == state | 
					
						
							|  |  |  |  |                                 orderby x.ProjectCode descending | 
					
						
							|  |  |  |  |                                 select x).Distinct().ToList(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							| 
									
										
										
										
											2023-08-25 09:52:24 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return null; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         #region 项目表下拉框 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  项目表下拉框 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="dropName">下拉框名字</param> | 
					
						
							|  |  |  |  |         /// <param name="isShowPlease">是否显示请选择</param> | 
					
						
							|  |  |  |  |         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); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  项目表下拉框 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="dropName">下拉框名字</param> | 
					
						
							|  |  |  |  |         /// <param name="isShowPlease">是否显示请选择</param> | 
					
						
							|  |  |  |  |         public static void InitAllProjectDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             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); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-18 09:08:16 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  项目表下拉框 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="dropName">下拉框名字</param> | 
					
						
							|  |  |  |  |         /// <param name="isShowPlease">是否显示请选择</param> | 
					
						
							|  |  |  |  |         public static void InitAllProjectDropDownList2(FineUIPro.DropDownList dropName, bool isShowPlease) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             dropName.DataValueField = "ProjectId"; | 
					
						
							|  |  |  |  |             dropName.DataTextField = "ProjectName"; | 
					
						
							|  |  |  |  |             var projectlist = BLL.ProjectService.GetAllProjectDropDownList(); | 
					
						
							|  |  |  |  |             Model.Base_Project project = new Base_Project(); | 
					
						
							|  |  |  |  |             project.ProjectId = "0"; | 
					
						
							|  |  |  |  |             project.ProjectName = "本部"; | 
					
						
							|  |  |  |  |             List<Model.Base_Project> list = new List<Base_Project>(); | 
					
						
							|  |  |  |  |             list.Add(project); | 
					
						
							|  |  |  |  |             list.AddRange(projectlist); | 
					
						
							|  |  |  |  |             dropName.DataSource = list; | 
					
						
							|  |  |  |  |             dropName.DataBind(); | 
					
						
							|  |  |  |  |             if (projectlist.Count() == 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 isShowPlease = true; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (isShowPlease) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Funs.FineUIPleaseSelect(dropName); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="dropName"></param> | 
					
						
							|  |  |  |  |         /// <param name="userId"></param> | 
					
						
							|  |  |  |  |         /// <param name="isShowPlease"></param> | 
					
						
							|  |  |  |  |         public static void InitAllProjectShortNameDropDownList(FineUIPro.DropDownList dropName, string userId, bool isShowPlease) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             dropName.DataValueField = "ProjectId"; | 
					
						
							|  |  |  |  |             dropName.DataTextField = "ProjectName"; | 
					
						
							|  |  |  |  |             var projectlist = GetProjectByUserIdDropDownList(userId); | 
					
						
							|  |  |  |  |             dropName.DataSource = projectlist; | 
					
						
							|  |  |  |  |             dropName.DataBind(); | 
					
						
							|  |  |  |  |             if (projectlist.Count() == 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 isShowPlease = true; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (isShowPlease) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Funs.FineUIPleaseSelect(dropName); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-25 09:52:24 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="dropName"></param> | 
					
						
							|  |  |  |  |         /// <param name="userId"></param> | 
					
						
							|  |  |  |  |         /// <param name="isShowPlease"></param> | 
					
						
							| 
									
										
										
										
											2024-12-25 09:24:30 +08:00
										 |  |  |  |         public static void InitProjectShortNameByStateDropDownList(FineUIPro.DropDownList dropName, string userId, string state, bool isShowPlease, string urlType = "") | 
					
						
							| 
									
										
										
										
											2023-08-25 09:52:24 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             dropName.DataValueField = "ProjectId"; | 
					
						
							|  |  |  |  |             dropName.DataTextField = "ProjectName"; | 
					
						
							| 
									
										
										
										
											2024-09-13 14:57:02 +08:00
										 |  |  |  |             var projectlist = GetProjectByUserIdStateDropDownList(userId, state, urlType); | 
					
						
							| 
									
										
										
										
											2023-08-25 09:52:24 +08:00
										 |  |  |  |             dropName.DataSource = projectlist; | 
					
						
							|  |  |  |  |             dropName.DataBind(); | 
					
						
							|  |  |  |  |             if (projectlist.Count() == 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 isShowPlease = true; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (isShowPlease) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Funs.FineUIPleaseSelect(dropName); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  某类型下项目表下拉框 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="dropName">下拉框名字</param> | 
					
						
							|  |  |  |  |         /// <param name="isShowPlease">是否显示请选择</param> | 
					
						
							|  |  |  |  |         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 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 获取项目经理、施工经理、安全经理、质量经理、开车经理 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 项目经理 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="unitId"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static string GetProjectManagerName(string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 string name = string.Empty; | 
					
						
							|  |  |  |  |                 if (projectId != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     name = (from x in db.Base_Project | 
					
						
							|  |  |  |  |                             join y in db.Project_ProjectUser on x.ProjectId equals y.ProjectId | 
					
						
							|  |  |  |  |                             join z in db.Sys_User on y.UserId equals z.UserId | 
					
						
							|  |  |  |  |                             where x.ProjectId == projectId && y.RoleId.Contains(BLL.Const.ProjectManager) | 
					
						
							|  |  |  |  |                             select z.UserName).FirstOrDefault(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 return name; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 施工经理 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="unitId"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static string GetConstructionManagerName(string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 string name = string.Empty; | 
					
						
							|  |  |  |  |                 if (projectId != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     name = (from x in db.Base_Project | 
					
						
							|  |  |  |  |                             join y in db.Project_ProjectUser on x.ProjectId equals y.ProjectId | 
					
						
							|  |  |  |  |                             join z in db.Sys_User on y.UserId equals z.UserId | 
					
						
							|  |  |  |  |                             where x.ProjectId == projectId && y.RoleId.Contains(BLL.Const.ConstructionManager) | 
					
						
							|  |  |  |  |                             select z.UserName).FirstOrDefault(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 return name; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 安全经理 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="unitId"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static string GetHSSEManagerName(string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 string name = string.Empty; | 
					
						
							|  |  |  |  |                 if (projectId != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2021-11-02 13:32:31 +08:00
										 |  |  |  |                     name = (from x in db.Project_ProjectUser | 
					
						
							| 
									
										
										
										
											2021-08-13 10:48:08 +08:00
										 |  |  |  |                             join y in db.Sys_User on x.UserId equals y.UserId | 
					
						
							|  |  |  |  |                             where x.ProjectId == projectId && x.RoleId.Contains(BLL.Const.HSSEManager) | 
					
						
							|  |  |  |  |                             select y.UserName).FirstOrDefault(); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |                 return name; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-13 10:48:08 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  获取安全经理 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static Model.Project_ProjectUser getHSSEManager(string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2021-11-02 13:32:31 +08:00
										 |  |  |  |             return Funs.DB.Project_ProjectUser.FirstOrDefault(x => x.ProjectId == projectId && x.RoleId.Contains(BLL.Const.HSSEManager)); | 
					
						
							| 
									
										
										
										
											2021-08-13 10:48:08 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 质量经理 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="unitId"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static string GetQAManagerName(string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 string name = string.Empty; | 
					
						
							|  |  |  |  |                 if (projectId != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     name = (from x in db.Base_Project | 
					
						
							|  |  |  |  |                             join y in db.Project_ProjectUser on x.ProjectId equals y.ProjectId | 
					
						
							|  |  |  |  |                             join z in db.Sys_User on y.UserId equals z.UserId | 
					
						
							|  |  |  |  |                             where x.ProjectId == projectId && y.RoleId.Contains(BLL.Const.QAManager) | 
					
						
							|  |  |  |  |                             select z.UserName).FirstOrDefault(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 return name; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 开车经理 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="unitId"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static string GetDriveManagerName(string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 string name = string.Empty; | 
					
						
							|  |  |  |  |                 if (projectId != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     name = (from x in db.Base_Project | 
					
						
							|  |  |  |  |                             join y in db.Project_ProjectUser on x.ProjectId equals y.ProjectId | 
					
						
							|  |  |  |  |                             join z in db.Sys_User on y.UserId equals z.UserId | 
					
						
							|  |  |  |  |                             where x.ProjectId == projectId && y.RoleId.Contains(BLL.Const.DriveManager) | 
					
						
							|  |  |  |  |                             select z.UserName).FirstOrDefault(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 return name; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  获取项目各单位类型单位名称 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="projectId"></param> | 
					
						
							|  |  |  |  |         /// <param name="unitType"></param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         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; | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2021-12-02 16:13:37 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///获取项目材料软件ID | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static long GetCLProjectCodeByProjectId(string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             long code = 0; | 
					
						
							|  |  |  |  |             var project = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == projectId); | 
					
						
							|  |  |  |  |             if (project != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 code = project.CLProjectCode ?? 0; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return code; | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2023-06-07 18:55:33 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取施工中项目集合 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<Model.Base_Project> GetProjectWorkList(string unitId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             var getDatas = from x in Funs.DB.Base_Project | 
					
						
							| 
									
										
										
										
											2023-08-25 09:52:24 +08:00
										 |  |  |  |                            where (x.ProjectState == null || x.ProjectState == BLL.Const.ProjectState_1) | 
					
						
							| 
									
										
										
										
											2023-06-07 18:55:33 +08:00
										 |  |  |  |                            select x; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             if (unitId == BLL.Const.UnitId_CWCEC) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 getDatas = getDatas.Where(x => x.UnitId == unitId || x.UnitId == null); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 getDatas = getDatas.Where(x => x.UnitId == unitId); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             var list = getDatas.OrderBy(x => x.ProjectName).ToList(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return list; | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2024-09-11 10:36:09 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 加载公司级别项目 | 
					
						
							|  |  |  |  |         public static List<Model.Base_Project> GetUnEndProjectByUserIdDropDownList(string projectState, | 
					
						
							| 
									
										
										
										
											2024-12-25 09:24:30 +08:00
										 |  |  |  |             string projectName = null, string projectCode = null) | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2024-09-11 10:36:09 +08:00
										 |  |  |  |             IQueryable<Model.Base_Project> projects = (from x in Funs.DB.Base_Project | 
					
						
							|  |  |  |  |                                                        where x.ProjectState == projectState | 
					
						
							|  |  |  |  |                                                        orderby x.ProjectCode descending | 
					
						
							|  |  |  |  |                                                        select x); | 
					
						
							|  |  |  |  |             if (!string.IsNullOrEmpty(projectName)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 projects = from x in projects where x.ProjectName.Contains(projectName) select x; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (!string.IsNullOrEmpty(projectCode)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 projects = from x in projects where x.ProjectCode.Contains(projectCode) select x; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return (from x in projects | 
					
						
							|  |  |  |  |                     join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId | 
					
						
							|  |  |  |  |                     select x).Distinct().ToList(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							| 
									
										
										
										
											2024-12-24 19:04:32 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取主数据项目 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							|  |  |  |  |         public static List<CNCEC_MasterData_PcEp> GetMasterProjectInfos() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             var thisUnit = CommonService.GetIsThisUnit(); | 
					
						
							|  |  |  |  |             Dictionary<string, string> dic = new Dictionary<string, string>() | 
					
						
							|  |  |  |  |       { | 
					
						
							|  |  |  |  |           {"collCropCode", thisUnit.CollCropCode} | 
					
						
							|  |  |  |  |       }; | 
					
						
							|  |  |  |  |             List<CNCEC_MasterData_PcEp> projectlist = new List<CNCEC_MasterData_PcEp>(); | 
					
						
							| 
									
										
										
										
											2024-12-24 20:13:26 +08:00
										 |  |  |  |             var returnData = ServerService.GerDataFromCncec("/api/Common/GetMasterDataProjectByCollCropCode", dic, null); | 
					
						
							| 
									
										
										
										
											2024-12-24 19:04:32 +08:00
										 |  |  |  |             if (returnData != null && returnData.code == 1) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 projectlist = JsonConvert.DeserializeObject<List<CNCEC_MasterData_PcEp>>(returnData.data.ToString()); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return projectlist; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 获取主数据项目(下拉框) | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="dropName"></param> | 
					
						
							|  |  |  |  |         /// <param name="isShowPlease"></param> | 
					
						
							|  |  |  |  |         public static void InitMasterProjectDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             dropName.DataValueField = "SysId"; | 
					
						
							|  |  |  |  |             dropName.DataTextField = "PrjName"; | 
					
						
							|  |  |  |  |             var thisUnit = CommonService.GetIsThisUnit(); | 
					
						
							|  |  |  |  |             Dictionary<string, string> dic = new Dictionary<string, string>() | 
					
						
							|  |  |  |  |       { | 
					
						
							|  |  |  |  |           {"collCropCode", thisUnit.CollCropCode} | 
					
						
							|  |  |  |  |       }; | 
					
						
							|  |  |  |  |             List<CNCEC_MasterData_PcEp> projectlist = new List<CNCEC_MasterData_PcEp>(); | 
					
						
							|  |  |  |  |             var returnData = ServerService.GerDataFromCncec("api/Common/GetMasterDataProjectByCollCropCode", dic, null); | 
					
						
							|  |  |  |  |             if (returnData != null && returnData.code == 1) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 projectlist = JsonConvert.DeserializeObject<List<CNCEC_MasterData_PcEp>>(returnData.data.ToString()); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             dropName.DataSource = projectlist; | 
					
						
							|  |  |  |  |             dropName.DataBind(); | 
					
						
							|  |  |  |  |             if (projectlist.Count() == 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 isShowPlease = true; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (isShowPlease) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Funs.FineUIPleaseSelect(dropName); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | } |