823 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			823 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			C#
		
	
	
	
| namespace BLL
 | |
| {
 | |
|     using Model;
 | |
|     using Newtonsoft.Json;
 | |
|     using System;
 | |
|     using System.Collections.Generic;
 | |
|     using System.Linq;
 | |
|     using System.Runtime.Caching;
 | |
| 
 | |
|     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;
 | |
|         }
 | |
|         /// <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;
 | |
|         }
 | |
| 
 | |
|         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 Model.Base_Project GetProjectByProjectCode(string code)
 | |
|         {
 | |
|             return Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectCode == code);
 | |
|         }
 | |
| 
 | |
| 
 | |
|         /// <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,
 | |
|                 JTProjectCode = project.JTProjectCode,
 | |
|                 ProjectName = project.ProjectName,
 | |
|                 ProjectNameEn = project.ProjectNameEn,
 | |
|                 StartDate = project.StartDate,
 | |
|                 EndDate = project.EndDate,
 | |
|                 PlanStartDate = project.PlanStartDate,
 | |
|                 PlanEndDate = project.PlanEndDate,
 | |
|                 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,
 | |
|                 StClientName = project.StClientName,
 | |
|                 ClientContactor = project.ClientContactor,
 | |
|                 MobileTel = project.MobileTel,
 | |
|                 Country = project.Country,
 | |
|                 Province = project.Province,
 | |
|                 City = project.City,
 | |
|                 EnglishRemark = project.EnglishRemark,
 | |
|                 HJProjectCode = project.HJProjectCode,
 | |
|                 KZProjectCode = project.KZProjectCode,
 | |
|                 Progress = project.Progress,
 | |
|                 ProjType = project.ProjType,
 | |
|                 ProjPhase = project.ProjPhase,
 | |
|                 MasterSysId = project.MasterSysId,
 | |
|             };
 | |
|             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;
 | |
|                 newProject.JTProjectCode = project.JTProjectCode;
 | |
|                 newProject.ProjectName = project.ProjectName;
 | |
|                 newProject.ProjectNameEn = project.ProjectNameEn;
 | |
|                 newProject.StartDate = project.StartDate;
 | |
|                 newProject.EndDate = project.EndDate;
 | |
|                 newProject.PlanStartDate = project.PlanStartDate;
 | |
|                 newProject.PlanEndDate = project.PlanEndDate;
 | |
|                 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;
 | |
|                 newProject.StClientName = project.StClientName;
 | |
|                 newProject.ClientContactor = project.ClientContactor;
 | |
|                 newProject.MobileTel = project.MobileTel;
 | |
|                 newProject.Country = project.Country;
 | |
|                 newProject.Province = project.Province;
 | |
|                 newProject.City = project.City;
 | |
|                 newProject.EnglishRemark = project.EnglishRemark;
 | |
|                 newProject.HJProjectCode = project.HJProjectCode;
 | |
|                 newProject.KZProjectCode = project.KZProjectCode;
 | |
|                 newProject.Progress = project.Progress;
 | |
|                 newProject.ProjType = project.ProjType;
 | |
|                 newProject.ProjPhase = project.ProjPhase;
 | |
|                 newProject.MasterSysId = project.MasterSysId;
 | |
|                 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>
 | |
|         public static List<Model.Base_Project> GetAllProjectDropDownList(string[] pids = null)
 | |
|         {
 | |
|             string cacheKey = "allProjects";
 | |
|             var memoryCache = MemoryCache.Default;
 | |
|             if (memoryCache.Get(cacheKey) != null)
 | |
|             {
 | |
|                 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;
 | |
|                 } 
 | |
|             }
 | |
|             else
 | |
|             {
 | |
| 
 | |
|                 var list = (from x in Funs.DB.Base_Project 
 | |
|                     where x.ProjectState == Const.ProjectState_1 || x.ProjectState == null
 | |
|                             orderby x.ProjectCode descending
 | |
|                     select x).ToList();
 | |
|                 var policy = new CacheItemPolicy
 | |
|                 {
 | |
|                     AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(Const.CacheMinutes),
 | |
|                 };
 | |
|                 memoryCache.Set(cacheKey, list, policy);
 | |
| 
 | |
|                 if (pids == null)
 | |
|                 {
 | |
|                     return list;
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     var result = list.Where(e => pids.Contains(e.ProjectId)).ToList();
 | |
|                     return result;
 | |
|                 } 
 | |
|             }  
 | |
|         }
 | |
| 
 | |
| 
 | |
|         /// <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
 | |
|                             where y.UserId == userId && y.IsPost == true
 | |
|                             orderby x.ProjectCode descending
 | |
|                             select x).Distinct().ToList();
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 return null;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 获取userId参与项目下拉框
 | |
|         /// </summary>
 | |
|         /// <returns></returns>
 | |
|         public static List<Model.Base_Project> GetProjectByUserIdStateDropDownList(string userId, string state, string urlType = "")
 | |
|         {
 | |
|             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);
 | |
|                 //如果是项目级别,获取到他的类型后,并且还要单位是五环的
 | |
|                 if (!string.IsNullOrEmpty(urlType))
 | |
|                 {
 | |
|                     //五环的能看所有项目,否则只能看项目用户中有自己或者所属单位是自己单位的
 | |
|                     if (getRoleP != null && getUser.UnitId == Const.UnitId_CWCEC)
 | |
|                     {
 | |
|                         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.UnitId == getUser.UnitId) && x.ProjectState == state
 | |
|                                 orderby x.ProjectCode descending
 | |
|                                 select x).Distinct().ToList();
 | |
|                     }
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     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();
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 return null;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #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);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <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);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <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);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 
 | |
|         /// </summary>
 | |
|         /// <param name="dropName"></param>
 | |
|         /// <param name="userId"></param>
 | |
|         /// <param name="isShowPlease"></param>
 | |
|         public static void InitProjectShortNameByStateDropDownList(FineUIPro.DropDownList dropName, string userId, string state, bool isShowPlease, string urlType = "")
 | |
|         {
 | |
|             dropName.DataValueField = "ProjectId";
 | |
|             dropName.DataTextField = "ProjectName";
 | |
|             var projectlist = GetProjectByUserIdStateDropDownList(userId, state, urlType);
 | |
|             dropName.DataSource = projectlist;
 | |
|             dropName.DataBind();
 | |
|             if (projectlist.Count() == 0)
 | |
|             {
 | |
|                 isShowPlease = true;
 | |
|             }
 | |
|             if (isShowPlease)
 | |
|             {
 | |
|                 Funs.FineUIPleaseSelect(dropName);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <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)
 | |
|                 {
 | |
|                     name = (from x in db.Project_ProjectUser
 | |
|                             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();
 | |
|                 }
 | |
|                 return name;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         ///  获取安全经理
 | |
|         /// </summary>
 | |
|         /// <param name="projectId"></param>
 | |
|         /// <returns></returns>
 | |
|         public static Model.Project_ProjectUser getHSSEManager(string projectId)
 | |
|         {
 | |
|             return Funs.DB.Project_ProjectUser.FirstOrDefault(x => x.ProjectId == projectId && x.RoleId.Contains(BLL.Const.HSSEManager));
 | |
|         }
 | |
| 
 | |
|         /// <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;
 | |
|         }
 | |
| 
 | |
|         /// <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;
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 获取施工中项目集合
 | |
|         /// </summary>
 | |
|         /// <returns></returns>
 | |
|         public static List<Model.Base_Project> GetProjectWorkList(string unitId)
 | |
|         {
 | |
|             var getDatas = from x in Funs.DB.Base_Project
 | |
|                            where (x.ProjectState == null || x.ProjectState == BLL.Const.ProjectState_1)
 | |
|                            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;
 | |
|         }
 | |
| 
 | |
|         #region 加载公司级别项目
 | |
|         public static List<Model.Base_Project> GetUnEndProjectByUserIdDropDownList(string projectState,
 | |
|             string projectName = null, string projectCode = null)
 | |
|         {
 | |
|             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
 | |
| 
 | |
|         /// <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>();
 | |
|             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());
 | |
|             }
 | |
| 
 | |
|             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);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| } |