96 lines
3.8 KiB
C#
96 lines
3.8 KiB
C#
|
|
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;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|