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 BeUnderConstructionList = GetBeUnderConstruction().Select(p => p.ProjectId).ToList(); /// /// 获取在建项目数 /// /// public static List 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; } /// /// 获取在建项目数(异步) /// /// public static async Task> GetBeUnderConstructionAsync() { return await Task.Run(GetBeUnderConstruction); } /// /// 获取停工项目数 /// /// public static List 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; } /// /// 获取停工项目数(异步) /// /// public static async Task> GetShutdownAsync() { return await Task.Run(GetShutdown); } /// /// 获取完工项目数 /// /// public static List 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; } /// /// 获取所有项目数 /// /// public static List 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; } } }