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