1、系统菜单调整;
2、系统看板UI调整; 3、事故事件功能 4、其他
This commit is contained in:
@@ -0,0 +1,197 @@
|
||||
using Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.Caching;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace BLL
|
||||
{
|
||||
public static class BaseDataService
|
||||
{
|
||||
public static List<string> BeUnderConstructionList = GetBeUnderConstruction().Select(p => p.ProjectId).ToList();
|
||||
public static Dictionary<string, string> BeUnderConstructionDic = GetBeUnderConstruction().ToDictionary(p => p.ProjectId, p => p.UnitId);
|
||||
|
||||
/// <summary>
|
||||
/// 获取在建项目数
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static List<Model.ProjectOutput> GetBeUnderConstruction()
|
||||
{
|
||||
var cacheKey = "BeUnderConstructionProjects";
|
||||
if (CacheHelper.Exists(cacheKey))
|
||||
{
|
||||
return CacheHelper.Get<List<Model.ProjectOutput>>(cacheKey);
|
||||
}
|
||||
// 如果缓存中不存在数据,则执行查询并存储结果到缓存
|
||||
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();
|
||||
CacheHelper.Add(cacheKey, result, DateTimeOffset.Now.AddHours(2));
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
using Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
namespace BLL
|
||||
{
|
||||
public class MainSevice
|
||||
{
|
||||
/// <summary>
|
||||
/// 在建项目集合
|
||||
/// </summary>
|
||||
private List<string> _beUnderConstructionList;
|
||||
private HSSEData_HSSE _hsseData;
|
||||
private CQMSData_CQMS _cqmsData;
|
||||
private HJGLData_HJGL _hjglData;
|
||||
private string _unitId;
|
||||
private int _unitType;
|
||||
|
||||
|
||||
public MainSevice(string userid)
|
||||
{
|
||||
var userModel = UserService.GetUserByUserId(userid);
|
||||
int unitType = CommonService.GetUnitTypeByUserId(userid);
|
||||
var projectList = BaseDataService.GetBeUnderConstruction();
|
||||
_unitId = userModel.UnitId;
|
||||
_unitType = unitType;
|
||||
if (unitType == 0)
|
||||
{
|
||||
_beUnderConstructionList = projectList.Select(x => x.ProjectId).ToList();
|
||||
_unitId = CommonService.GetThisUnitId();
|
||||
}
|
||||
else if (unitType == 1)
|
||||
{
|
||||
_beUnderConstructionList = projectList.Where(x => x.UnitId == userModel.UnitId).Select(x => x.ProjectId).ToList();
|
||||
}
|
||||
else if (unitType == 2)
|
||||
{
|
||||
_beUnderConstructionList = new List<string>() { "0" };
|
||||
}
|
||||
}
|
||||
public MainSevice(string userid, string projectId)
|
||||
{
|
||||
var userModel = UserService.GetUserByUserId(userid);
|
||||
int unitType = 3;
|
||||
_unitId = userModel.UnitId ?? "";
|
||||
_unitType = unitType;
|
||||
_beUnderConstructionList = new List<string>() { projectId };
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取安全数据(项目统计数据直接取的统计表)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<HSSEData_HSSE> GetHsseData()
|
||||
{
|
||||
HSSEData_HSSE result = new HSSEData_HSSE();
|
||||
var getHseData = Funs.DB.HSSEData_HSSE.OrderByDescending(x => x.ReportDate).FirstOrDefault();
|
||||
|
||||
switch (_unitType)
|
||||
{
|
||||
case 0: //企业级
|
||||
result = getHseData;
|
||||
break;
|
||||
case 1: //分公司级别
|
||||
result = HSSEData_HSSEService.GetSubUnitCqmsDataByDate(_beUnderConstructionList, getHseData.ReportDate);
|
||||
|
||||
////涉及到企业级别的统计直接取值
|
||||
//var BeUnderConstructionDic = BaseDataService.BeUnderConstructionDic;
|
||||
//result.BeUnderConstructionNum = BeUnderConstructionDic.Count(x => x.Value == _unitId);
|
||||
//result.ShutdownNum = BaseDataService.GetShutdown().Count(x => x.UnitId == _unitId);
|
||||
|
||||
var beUnderConstructionTask = HSSEData_HSSEService.GetBeUnderConstructionAsync();//在建项目
|
||||
var shutdownTask = HSSEData_HSSEService.GetShutdownAsync();//停工项目
|
||||
// 统一获取异步方法的返回值
|
||||
var beUnderConstructionList = await beUnderConstructionTask;
|
||||
var shutdownList = await shutdownTask;
|
||||
result.BeUnderConstructionNum = beUnderConstructionList.Count(x => x.UnitId == _unitId);
|
||||
result.ShutdownNum = shutdownList.Count(x => x.UnitId == _unitId);
|
||||
|
||||
break;
|
||||
case 3: //项目级别
|
||||
var projectHsseData = Funs.DB.Project_HSSEData_HSSE.OrderByDescending(x => x.ReportDate).FirstOrDefault(x => x.ProjectId == _beUnderConstructionList.FirstOrDefault());
|
||||
if (projectHsseData != null)
|
||||
{
|
||||
result = HSSEData_HSSEService.GetSubUnitCqmsDataByDate(_beUnderConstructionList, projectHsseData.ReportDate);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user