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