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