209 lines
9.8 KiB
C#
209 lines
9.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Web.Http;
|
|
using BLL;
|
|
|
|
namespace WebAPI.Controllers
|
|
{
|
|
/// <summary>
|
|
/// 首页数据
|
|
/// </summary>
|
|
public class PageDataController : ApiController
|
|
{
|
|
#region 根据projectId获取首页数据
|
|
/// <summary>
|
|
/// 根据projectId获取首页数据
|
|
/// </summary>
|
|
/// <param name="projectId"></param>
|
|
/// <returns></returns>
|
|
public Model.ResponeData getPageDataByProject(string projectId)
|
|
{
|
|
var responeData = new Model.ResponeData();
|
|
try
|
|
{
|
|
Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString);
|
|
var getProject = ProjectService.GetProjectByProjectId(projectId);
|
|
if (getProject != null)
|
|
{
|
|
////项目开始时间
|
|
string ProjectData = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
|
|
int SafeDayCount = 0, SafeHours = 0, SitePersonNum = 0, SpecialEquipmentNum = 0, EntryTrainingNum = 0, HiddenDangerNum = 0,
|
|
RectificationNum = 0, RiskI = 0, RiskII = 0, RiskIII = 0, RiskIV = 0, RiskV = 0;
|
|
if (getProject.StartDate.HasValue)
|
|
{
|
|
ProjectData = string.Format("{0:yyyy-MM-dd}", getProject.StartDate);
|
|
////安全运行天数
|
|
SafeDayCount = Convert.ToInt32((DateTime.Now - getProject.StartDate).Value.TotalDays);
|
|
}
|
|
|
|
//获取输入数据记录
|
|
var getDataList =db.Wx_PageData.FirstOrDefault(x => x.ProjectId == projectId && x.CreatDate.Value.Year == DateTime.Now.Year
|
|
&& x.CreatDate.Value.Month == DateTime.Now.Month && x.CreatDate.Value.Day == DateTime.Now.Day);
|
|
if (getDataList != null)
|
|
{
|
|
SafeHours = getDataList.SafeHours ?? 0;
|
|
SitePersonNum = getDataList.SitePersonNum ?? 0;
|
|
SpecialEquipmentNum = getDataList.SpecialEquipmentNum ?? 0;
|
|
EntryTrainingNum = getDataList.EntryTrainingNum ?? 0;
|
|
HiddenDangerNum = getDataList.HiddenDangerNum ?? 0;
|
|
RectificationNum = getDataList.RectificationNum ?? 0;
|
|
RiskI = getDataList.RiskI ?? 0;
|
|
RiskII = getDataList.RiskII ?? 0;
|
|
RiskIII = getDataList.RiskIII ?? 0;
|
|
RiskIV = getDataList.RiskIV ?? 0;
|
|
RiskV = getDataList.RiskV ?? 0;
|
|
}
|
|
else
|
|
{
|
|
int weekDay = WeekDayService.CaculateWeekDay(DateTime.Now);
|
|
//当前周的范围
|
|
DateTime retStartDay = DateTime.Now.AddDays(-(weekDay - 1)).AddDays(-1);
|
|
DateTime retEndDay = DateTime.Now.AddDays(6 - weekDay).AddDays(1);
|
|
|
|
var getHazardItems = from x in db.Hazard_HazardSelectedItem
|
|
join y in db.Hazard_HazardList on x.HazardListId equals y.HazardListId
|
|
where y.ProjectId == projectId && y.CompileDate > retStartDay && y.CompileDate < retEndDay
|
|
select x;
|
|
if (getHazardItems.Count() > 0)
|
|
{
|
|
RiskI = getHazardItems.Where(x => x.HazardLevel == "1").Count();
|
|
RiskII = getHazardItems.Where(x => x.HazardLevel == "2").Count();
|
|
RiskIII = getHazardItems.Where(x => x.HazardLevel == "3").Count();
|
|
RiskIV = getHazardItems.Where(x => x.HazardLevel == "4").Count();
|
|
RiskV = getHazardItems.Where(x => x.HazardLevel == "5").Count();
|
|
}
|
|
//// 隐患整改
|
|
var getRectifyNotices = from x in db.Check_RectifyNotices
|
|
where x.ProjectId == projectId && x.SignDate.HasValue
|
|
select x;
|
|
if (getRectifyNotices.Count() > 0)
|
|
{
|
|
HiddenDangerNum = getRectifyNotices.Count();
|
|
RectificationNum = getRectifyNotices.Where(x => x.States == "5").Count();
|
|
}
|
|
|
|
//// 大型及特种设备
|
|
SpecialEquipmentNum = (from x in db.QualityAudit_EquipmentQuality
|
|
join y in db.Base_SpecialEquipment on x.SpecialEquipmentId equals y.SpecialEquipmentId
|
|
where x.ProjectId == projectId && (y.SpecialEquipmentType == "1" || y.SpecialEquipmentType == "2" || y.SpecialEquipmentType == "3")
|
|
&& (!x.OutDate.HasValue || x.OutDate > DateTime.Now)
|
|
select x).Count();
|
|
|
|
//// 入场培训累计数量
|
|
//// 入场培训累计数量
|
|
var getTrainRecords = from x in db.EduTrain_TrainRecord
|
|
where x.ProjectId == projectId && x.TrainTypeId == Const.EntryTrainTypeId
|
|
select x;
|
|
if (getTrainRecords.Count() > 0)
|
|
{
|
|
EntryTrainingNum = getTrainRecords.Sum(x => x.TrainPersonNum ?? 0);
|
|
}
|
|
var getPersonInOutNumber = db.SitePerson_PersonInOutNumber.FirstOrDefault(x => x.ProjectId == projectId && x.InOutDate.Year == DateTime.Now.Year
|
|
&& x.InOutDate.Month == DateTime.Now.Month && x.InOutDate.Day == DateTime.Now.Day);
|
|
if (getPersonInOutNumber != null)
|
|
{
|
|
//// 现场人员数
|
|
SitePersonNum = getPersonInOutNumber.PersonNum ?? 0;
|
|
//// 获取工时
|
|
SafeHours = getPersonInOutNumber.WorkHours ?? 0;
|
|
}
|
|
else
|
|
{
|
|
SafeHours = APIPageDataService.getSafeHours(projectId);
|
|
GetDataService.CorrectingPersonInOutNumber(projectId);
|
|
}
|
|
}
|
|
string hiddenStr = RectificationNum.ToString() + "/" + HiddenDangerNum.ToString();
|
|
responeData.data = new { ProjectData, SafeDayCount, SafeHours, SitePersonNum, SpecialEquipmentNum, EntryTrainingNum, hiddenStr, RiskI, RiskII, RiskIII, RiskIV, RiskV };
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
responeData.code = 0;
|
|
responeData.message = ex.Message;
|
|
}
|
|
|
|
return responeData;
|
|
}
|
|
#endregion
|
|
|
|
#region 根据projectId获取首页数据-当日入场人数
|
|
/// <summary>
|
|
/// 根据projectId获取首页数据-当日入场人数
|
|
/// </summary>
|
|
/// <param name="projectId"></param>
|
|
/// <returns></returns>
|
|
public Model.ResponeData getPageDataInPersonCoutt(string projectId)
|
|
{
|
|
var responeData = new Model.ResponeData();
|
|
try
|
|
{
|
|
var getPrsonLists = Funs.DB.SitePerson_PersonInOutNow.Where(x => x.ProjectId == projectId && x.IsIn == true
|
|
&& x.ChangeTime.Value.Year == DateTime.Now.Year && x.ChangeTime.Value.Month == DateTime.Now.Month
|
|
&& x.ChangeTime.Value.Day == DateTime.Now.Day);
|
|
int personCout = getPrsonLists.Select(x => x.PersonId).Distinct().Count();
|
|
responeData.data = new { personCout };
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
responeData.code = 0;
|
|
responeData.message = ex.Message;
|
|
}
|
|
|
|
return responeData;
|
|
}
|
|
#endregion
|
|
|
|
#region 根据projectId获取首页数据-当前人数
|
|
/// <summary>
|
|
/// 根据projectId获取首页数据-当日入场人数
|
|
/// </summary>
|
|
/// <param name="projectId"></param>
|
|
/// <returns></returns>
|
|
public Model.ResponeData getPersonNum(string projectId)
|
|
{
|
|
var responeData = new Model.ResponeData();
|
|
try
|
|
{
|
|
int SitePersonNum = APIPageDataService.getPersonNum(projectId, DateTime.Now).Count();
|
|
responeData.data = new { SitePersonNum };
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
responeData.code = 0;
|
|
responeData.message = ex.Message;
|
|
}
|
|
|
|
return responeData;
|
|
}
|
|
#endregion
|
|
|
|
#region 根据projectId获取首页数据-人工时
|
|
/// <summary>
|
|
/// 根据projectId获取首页数据-当日入场人数
|
|
/// </summary>
|
|
/// <param name="projectId"></param>
|
|
/// <returns></returns>
|
|
public Model.ResponeData getSafeHours(string projectId)
|
|
{
|
|
var responeData = new Model.ResponeData();
|
|
try
|
|
{
|
|
int safeHours = APIPageDataService.getSafeHours(projectId);
|
|
responeData.data = new { safeHours };
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
responeData.code = 0;
|
|
responeData.message = ex.Message;
|
|
}
|
|
|
|
return responeData;
|
|
}
|
|
#endregion
|
|
}
|
|
}
|