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);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |