536 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			536 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			C#
		
	
	
	
| namespace BLL
 | |
| {
 | |
|     using System.Collections.Generic;
 | |
|     using System.Linq;
 | |
|     using Model;
 | |
|     using System;
 | |
| 
 | |
|     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,
 | |
|                 StartDate = project.StartDate,
 | |
|                 EndDate = project.EndDate,
 | |
|                 ProjectAddress = project.ProjectAddress,
 | |
|                 ContractNo = project.ContractNo,
 | |
|                 WorkRange = project.WorkRange,
 | |
|                 Duration = project.Duration,
 | |
|                 ShortName = project.ShortName,
 | |
|                 ProjectType = project.ProjectType,
 | |
|                 PostCode = project.PostCode,
 | |
|                 Remark = project.Remark,
 | |
|                 ProjectState = project.ProjectState,
 | |
|                 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,
 | |
|                 Country = project.Country,
 | |
|                 Province = project.Province,
 | |
|                 City = project.City,
 | |
|                 EnglishRemark = project.EnglishRemark,
 | |
|                 Progress = project.Progress,
 | |
|             };
 | |
|             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.StartDate = project.StartDate;
 | |
|                 newProject.EndDate = project.EndDate;
 | |
|                 newProject.ProjectAddress = project.ProjectAddress;
 | |
|                 newProject.ShortName = project.ShortName;
 | |
|                 newProject.ContractNo = project.ContractNo;
 | |
|                 newProject.WorkRange = project.WorkRange;
 | |
|                 newProject.Duration = project.Duration;
 | |
|                 newProject.ProjectType = project.ProjectType;
 | |
|                 newProject.PostCode = project.PostCode;
 | |
|                 newProject.Remark = project.Remark;
 | |
|                 newProject.ProjectState = project.ProjectState;
 | |
|                 newProject.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.Country = project.Country;
 | |
|                 newProject.Province = project.Province;
 | |
|                 newProject.City = project.City;
 | |
|                 newProject.EnglishRemark = project.EnglishRemark;
 | |
|                 newProject.Progress = project.Progress;
 | |
|                 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()
 | |
|         {
 | |
|             var list = (from x in Funs.DB.Base_Project
 | |
|                         orderby x.ProjectCode descending
 | |
|                         select x).ToList();
 | |
|             return list;
 | |
|         }
 | |
| 
 | |
| 
 | |
|         /// <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;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #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="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="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;
 | |
|         }
 | |
|     }
 | |
| } |