181 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			181 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using Model; | |||
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Linq; | |||
|  | using System.Text; | |||
|  | using System.Threading.Tasks; | |||
|  | 
 | |||
|  | namespace BLL | |||
|  | { | |||
|  |     public static class BaseDataService | |||
|  |     { | |||
|  |         public static List<string> BeUnderConstructionList = GetBeUnderConstruction().Select(p => p.ProjectId).ToList(); | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         ///     获取在建项目数 | |||
|  |         /// </summary> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.ProjectOutput> GetBeUnderConstruction() | |||
|  |         { | |||
|  |             var projectInfos = from project in Funs.DB.Base_Project | |||
|  |                                join unit in Funs.DB.Base_Unit on project.UnitId equals unit.UnitId into unitJoin | |||
|  |                                from unit in unitJoin.DefaultIfEmpty() | |||
|  |                                join projectType in Funs.DB.Base_ProjectType on project.ProjectType equals projectType.ProjectTypeId into projectTypeJoin | |||
|  |                                from projectType in projectTypeJoin.DefaultIfEmpty() | |||
|  |                                join sysConst in Funs.DB.Sys_Const on new { ProjectState2 = project.ProjectState2, GroupId = BLL.ConstValue.GroupId_ProjectState } equals new { ProjectState2 = sysConst.ConstValue, GroupId = sysConst.GroupId } into sysConstJoin | |||
|  |                                from sysConst in sysConstJoin.DefaultIfEmpty() | |||
|  |                                where (project.ProjectAttribute == "GONGCHENG" || project.ProjectAttribute == null) && (project.IsDelete == null || project.IsDelete == false) && project.ProjectState == "1" | |||
|  |                                select new ProjectOutput | |||
|  |                                { | |||
|  |                                    ProjectId = project.ProjectId, | |||
|  |                                    ProjectCode = project.ProjectCode, | |||
|  |                                    ProjectName = project.ProjectName, | |||
|  |                                    UnitId = project.UnitId, | |||
|  |                                    UnitName = unit.UnitName, | |||
|  |                                    StartDate = project.StartDate, | |||
|  |                                    EndDate = project.EndDate, | |||
|  |                                    ProjectAddress = project.ProjectAddress, | |||
|  |                                    ShortName = project.ShortName, | |||
|  |                                    ConstructionMoney = project.ConstructionMoney, | |||
|  |                                    ProjectStateName = project.ProjectState == BLL.Const.ProjectState_2 ? "暂停中" : (project.ProjectState == BLL.Const.ProjectState_3 ? "已完工" : "施工中"), | |||
|  |                                    ProjectState = project.ProjectState, | |||
|  |                                    ProjectAttributeName = project.ProjectAttribute == "GONGCHENG" ? "工程" : (project.ProjectAttribute == "SHIYE" ? "实业" : ""), | |||
|  |                                    ProjectMoney = project.ProjectMoney, | |||
|  |                                    DayCount = DateTime.Now.Subtract(project.StartDate.Value).Days, | |||
|  |                                    ProjectTypeName = projectType.ProjectTypeName, | |||
|  |                                    ProjectStateName2 = sysConst.ConstText | |||
|  |                                }; | |||
|  |             var result = projectInfos.ToList(); | |||
|  |             return result; | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         ///     获取在建项目数(异步) | |||
|  |         /// </summary> | |||
|  |         /// <returns></returns> | |||
|  |         public static async Task<List<Model.ProjectOutput>> GetBeUnderConstructionAsync() | |||
|  |         { | |||
|  |             return await Task.Run(GetBeUnderConstruction); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         ///     获取停工项目数 | |||
|  |         /// </summary> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.ProjectOutput> GetShutdown() | |||
|  |         { | |||
|  |             var projectInfos = from project in Funs.DB.Base_Project | |||
|  |                                join unit in Funs.DB.Base_Unit on project.UnitId equals unit.UnitId into unitJoin | |||
|  |                                from unit in unitJoin.DefaultIfEmpty() | |||
|  |                                join projectType in Funs.DB.Base_ProjectType on project.ProjectType equals projectType.ProjectTypeId into projectTypeJoin | |||
|  |                                from projectType in projectTypeJoin.DefaultIfEmpty() | |||
|  |                                join sysConst in Funs.DB.Sys_Const on new { ProjectState2 = project.ProjectState2, GroupId = BLL.ConstValue.GroupId_ProjectState } equals new { ProjectState2 = sysConst.ConstValue, GroupId = sysConst.GroupId } into sysConstJoin | |||
|  |                                from sysConst in sysConstJoin.DefaultIfEmpty() | |||
|  |                                where (project.ProjectAttribute == "GONGCHENG" || project.ProjectAttribute == null) && (project.IsDelete == null || project.IsDelete == false) && project.ProjectState == "2" | |||
|  |                                select new ProjectOutput | |||
|  |                                { | |||
|  |                                    ProjectId = project.ProjectId, | |||
|  |                                    ProjectCode = project.ProjectCode, | |||
|  |                                    ProjectName = project.ProjectName, | |||
|  |                                    UnitId = project.UnitId, | |||
|  |                                    UnitName = unit.UnitName, | |||
|  |                                    StartDate = project.StartDate, | |||
|  |                                    EndDate = project.EndDate, | |||
|  |                                    ProjectAddress = project.ProjectAddress, | |||
|  |                                    ShortName = project.ShortName, | |||
|  |                                    ConstructionMoney = project.ConstructionMoney, | |||
|  |                                    ProjectStateName = project.ProjectState == BLL.Const.ProjectState_2 ? "暂停中" : (project.ProjectState == BLL.Const.ProjectState_3 ? "已完工" : "施工中"), | |||
|  |                                    ProjectState = project.ProjectState, | |||
|  |                                    ProjectAttributeName = project.ProjectAttribute == "GONGCHENG" ? "工程" : (project.ProjectAttribute == "SHIYE" ? "实业" : ""), | |||
|  |                                    ProjectMoney = project.ProjectMoney, | |||
|  |                                    DayCount = DateTime.Now.Subtract(project.StartDate.Value).Days, | |||
|  |                                    ProjectTypeName = projectType.ProjectTypeName, | |||
|  |                                    ProjectStateName2 = sysConst.ConstText | |||
|  |                                }; | |||
|  |             var result = projectInfos.ToList(); | |||
|  |             return result; | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         ///     获取停工项目数(异步) | |||
|  |         /// </summary> | |||
|  |         /// <returns></returns> | |||
|  |         public static async Task<List<Model.ProjectOutput>> GetShutdownAsync() | |||
|  |         { | |||
|  |             return await Task.Run(GetShutdown); | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         ///     获取完工项目数 | |||
|  |         /// </summary> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.ProjectOutput> GetCompletedProject() | |||
|  |         { | |||
|  |             var projectInfos = from project in Funs.DB.Base_Project | |||
|  |                                join unit in Funs.DB.Base_Unit on project.UnitId equals unit.UnitId into unitJoin | |||
|  |                                from unit in unitJoin.DefaultIfEmpty() | |||
|  |                                join projectType in Funs.DB.Base_ProjectType on project.ProjectType equals projectType.ProjectTypeId into projectTypeJoin | |||
|  |                                from projectType in projectTypeJoin.DefaultIfEmpty() | |||
|  |                                join sysConst in Funs.DB.Sys_Const on new { ProjectState2 = project.ProjectState2, GroupId = BLL.ConstValue.GroupId_ProjectState } equals new { ProjectState2 = sysConst.ConstValue, GroupId = sysConst.GroupId } into sysConstJoin | |||
|  |                                from sysConst in sysConstJoin.DefaultIfEmpty() | |||
|  |                                where (project.ProjectAttribute == "GONGCHENG" || project.ProjectAttribute == null) && (project.IsDelete == null || project.IsDelete == false) && project.ProjectState == "3" | |||
|  |                                select new ProjectOutput | |||
|  |                                { | |||
|  |                                    ProjectId = project.ProjectId, | |||
|  |                                    ProjectCode = project.ProjectCode, | |||
|  |                                    ProjectName = project.ProjectName, | |||
|  |                                    UnitId = project.UnitId, | |||
|  |                                    UnitName = unit.UnitName, | |||
|  |                                    StartDate = project.StartDate, | |||
|  |                                    EndDate = project.EndDate, | |||
|  |                                    ProjectAddress = project.ProjectAddress, | |||
|  |                                    ShortName = project.ShortName, | |||
|  |                                    ConstructionMoney = project.ConstructionMoney, | |||
|  |                                    ProjectStateName = project.ProjectState == BLL.Const.ProjectState_2 ? "暂停中" : (project.ProjectState == BLL.Const.ProjectState_3 ? "已完工" : "施工中"), | |||
|  |                                    ProjectState = project.ProjectState, | |||
|  |                                    ProjectAttributeName = project.ProjectAttribute == "GONGCHENG" ? "工程" : (project.ProjectAttribute == "SHIYE" ? "实业" : ""), | |||
|  |                                    ProjectMoney = project.ProjectMoney, | |||
|  |                                    DayCount = DateTime.Now.Subtract(project.StartDate.Value).Days, | |||
|  |                                    ProjectTypeName = projectType.ProjectTypeName, | |||
|  |                                    ProjectStateName2 = sysConst.ConstText | |||
|  |                                }; | |||
|  |             var result = projectInfos.ToList(); | |||
|  |             return result; | |||
|  |         } | |||
|  |         /// <summary> | |||
|  |         ///     获取所有项目数 | |||
|  |         /// </summary> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.ProjectOutput> GetALLProject() | |||
|  |         { | |||
|  |             var projectInfos = from project in Funs.DB.Base_Project | |||
|  |                                join unit in Funs.DB.Base_Unit on project.UnitId equals unit.UnitId into unitJoin | |||
|  |                                from unit in unitJoin.DefaultIfEmpty() | |||
|  |                                join projectType in Funs.DB.Base_ProjectType on project.ProjectType equals projectType.ProjectTypeId into projectTypeJoin | |||
|  |                                from projectType in projectTypeJoin.DefaultIfEmpty() | |||
|  |                                join sysConst in Funs.DB.Sys_Const on new { ProjectState2 = project.ProjectState2, GroupId = BLL.ConstValue.GroupId_ProjectState } equals new { ProjectState2 = sysConst.ConstValue, GroupId = sysConst.GroupId } into sysConstJoin | |||
|  |                                from sysConst in sysConstJoin.DefaultIfEmpty() | |||
|  |                                where (project.ProjectAttribute == "GONGCHENG" || project.ProjectAttribute == null) && (project.IsDelete == null || project.IsDelete == false) | |||
|  |                                select new ProjectOutput | |||
|  |                                { | |||
|  |                                    ProjectId = project.ProjectId, | |||
|  |                                    ProjectCode = project.ProjectCode, | |||
|  |                                    ProjectName = project.ProjectName, | |||
|  |                                    UnitId = project.UnitId, | |||
|  |                                    UnitName = unit.UnitName, | |||
|  |                                    StartDate = project.StartDate, | |||
|  |                                    EndDate = project.EndDate, | |||
|  |                                    ProjectAddress = project.ProjectAddress, | |||
|  |                                    ShortName = project.ShortName, | |||
|  |                                    ConstructionMoney = project.ConstructionMoney, | |||
|  |                                    ProjectStateName = project.ProjectState == BLL.Const.ProjectState_2 ? "暂停中" : (project.ProjectState == BLL.Const.ProjectState_3 ? "已完工" : "施工中"), | |||
|  |                                    ProjectState = project.ProjectState, | |||
|  |                                    ProjectAttributeName = project.ProjectAttribute == "GONGCHENG" ? "工程" : (project.ProjectAttribute == "SHIYE" ? "实业" : ""), | |||
|  |                                    ProjectMoney = project.ProjectMoney, | |||
|  |                                    DayCount = DateTime.Now.Subtract(project.StartDate.Value).Days, | |||
|  |                                    ProjectTypeName = projectType.ProjectTypeName, | |||
|  |                                    ProjectStateName2 = sysConst.ConstText | |||
|  |                                }; | |||
|  |             var result = projectInfos.ToList(); | |||
|  |             return result; | |||
|  |         } | |||
|  |     } | |||
|  | } |