501 lines
24 KiB
C#
501 lines
24 KiB
C#
using BLL;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace FineUIPro.Web
|
|
{
|
|
public partial class mainMenu_HSSE : PageBase
|
|
{
|
|
#region 定义项
|
|
/// <summary>
|
|
/// 项目主键
|
|
/// </summary>
|
|
public string ProjectId
|
|
{
|
|
get
|
|
{
|
|
return (string)ViewState["ProjectId"];
|
|
}
|
|
set
|
|
{
|
|
ViewState["ProjectId"] = value;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
this.ProjectId = string.Empty;
|
|
if (this.CurrUser != null && !string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
|
|
{
|
|
this.ProjectId = this.CurrUser.LoginProjectId;
|
|
}
|
|
getHazardRegisterLists = new List<Model.HSSE_Hazard_HazardRegister>();
|
|
getHazardRegisterLists = HSSE_Hazard_HazardRegisterService.GetHazardRegisterListByProjectId(this.ProjectId);
|
|
///当前现场总人数
|
|
getSitePerson();
|
|
var project = BLL.ProjectService.GetProjectByProjectId(this.ProjectId);
|
|
if (project != null && project.Telephone != null)
|
|
{
|
|
this.xmb.InnerHtml = project.Telephone;
|
|
}
|
|
}
|
|
}
|
|
|
|
#region 当前现场总人数
|
|
/// <summary>
|
|
/// 当前现场总人数
|
|
/// </summary>
|
|
private void getSitePerson()
|
|
{
|
|
//var getEmployInOutRecords = Funs.DB.T_d_EmployInOutRecord.Where(x => x.ProjectId == this.ProjectId && x.RecordDate.Value == DateTime.Now.Date).ToList();
|
|
// int AllCount = getEmployInOutRecords.Count();
|
|
|
|
var getallin = APIPageDataService.getPersonNum(ProjectId, DateTime.Now);
|
|
//int AllCount = getallin.Count();
|
|
var AllCount = (from x in Funs.DB.T_d_EmployInOutRecord
|
|
join y in Funs.DB.SitePerson_Person on new { ss1 = x.ProjectId, ss = x.IDCardNo } equals new { ss1 = y.ProjectId, ss = y.IdentityCard }
|
|
where y.ProjectId == this.CurrUser.LoginProjectId && y.IsUsed == true && x.ProjectId == this.CurrUser.LoginProjectId && x.RecordDate.Value == DateTime.Now.Date
|
|
select x.IDCardNo).Distinct().Count();
|
|
if (AllCount > 0)
|
|
{
|
|
////总人数
|
|
this.divperson.InnerHtml = ((AllCount % 10000) / 1000).ToString();
|
|
this.person00.InnerHtml = ((AllCount % 1000) / 100).ToString();
|
|
this.person01.InnerHtml = ((AllCount % 100) / 10).ToString();
|
|
this.person02.InnerHtml = (AllCount % 10).ToString();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 项目安全人工时
|
|
/// <summary>
|
|
/// 项目安全人工时
|
|
/// </summary>
|
|
protected string Two
|
|
{
|
|
get
|
|
{
|
|
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
|
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
|
List<string> listCategories = new List<string>();
|
|
businessColumn.title = "项目安全人工时";
|
|
Model.SingleSerie s = new Model.SingleSerie();
|
|
List<double> listdata = new List<double>();
|
|
|
|
Model.SingleSerie s2 = new Model.SingleSerie();
|
|
List<double> listdata2 = new List<double>();
|
|
var getMonts = SitePerson_MonthReportService.getMonthReports(CurrUser.LoginProjectId, null);
|
|
foreach (var month in getMonts.OrderBy(x => x.CompileDate))
|
|
{
|
|
listCategories.Add(string.Format("{0:yyyy-MM}", month.CompileDate));
|
|
listdata.Add(double.Parse((month.TotalPersonWorkTime ?? 0).ToString()));
|
|
listdata2.Add(double.Parse((month.DayWorkTime ?? 0).ToString()));
|
|
}
|
|
s.data = listdata;
|
|
series.Add(s);
|
|
s2.data = listdata2;
|
|
series.Add(s2);
|
|
businessColumn.categories = listCategories;
|
|
businessColumn.series = series;
|
|
return JsonConvert.SerializeObject(businessColumn);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 作业许可数量统计
|
|
/// <summary>
|
|
/// 作业许可数量统计
|
|
/// </summary>
|
|
protected string Three
|
|
{
|
|
get
|
|
{
|
|
//List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
|
//Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
|
//List<string> listCategories = new List<string>();
|
|
//businessColumn.title = "作业许可数量统计";
|
|
//Model.SingleSerie s = new Model.SingleSerie();
|
|
//List<double> listdata = new List<double>();
|
|
//var getStates = LicensePublicService.drpStatesItem().Where(x => x.Value != Const._Null);
|
|
//var getLicense = APILicenseDataService.getLicenseDataListByStates(this.ProjectId, Const.UnitId_CWCEC, null);
|
|
//foreach (var itemStates in getStates)
|
|
//{
|
|
// listCategories.Add(itemStates.Text);
|
|
// listdata.Add(getLicense.Where(x => x.States == itemStates.Value).Count());
|
|
//}
|
|
//s.data = listdata;
|
|
//series.Add(s);
|
|
//businessColumn.categories = listCategories;
|
|
//businessColumn.series = series;
|
|
//return JsonConvert.SerializeObject(businessColumn);
|
|
|
|
Model.SGGLDB db = Funs.DB;
|
|
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
|
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
|
List<string> listCategories = new List<string>();
|
|
businessColumn.title = "作业许可数量统计";
|
|
Model.SingleSerie s = new Model.SingleSerie();
|
|
List<double> listdata = new List<double>();
|
|
|
|
var qLicenseManager = (from x in db.License_LicenseManager.Where(xx => xx.ProjectId == CurrUser.LoginProjectId)
|
|
join y in db.Base_LicenseType
|
|
on x.LicenseTypeId equals y.LicenseTypeId into z
|
|
from zz in z
|
|
select new
|
|
{
|
|
x.LicenseTypeId,
|
|
zz.LicenseTypeCode
|
|
|
|
}).ToList();
|
|
int FireWork = db.License_FireWork.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == Const.State_3).Count();
|
|
int HeightWork = db.License_HeightWork.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == Const.State_3).Count();
|
|
int LimitedSpace = db.License_LimitedSpace.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == Const.State_3).Count();
|
|
int RadialWork = db.License_RadialWork.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == Const.State_3).Count();
|
|
int OpenCircuit = db.License_OpenCircuit.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == Const.State_3).Count();
|
|
int BreakGround = db.License_BreakGround.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == Const.State_3).Count();
|
|
int NightWork = db.License_NightWork.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == Const.State_3).Count();
|
|
int LiftingWork = db.License_LiftingWork.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.States == Const.State_3).Count();
|
|
|
|
foreach (var item in qLicenseManager)
|
|
{
|
|
switch (item.LicenseTypeCode)
|
|
{
|
|
case "01":
|
|
case "4"://动火
|
|
FireWork++;
|
|
break;
|
|
case "06":
|
|
case "18":
|
|
case "2"://高处
|
|
HeightWork++;
|
|
break;
|
|
case "03":
|
|
case "7"://受限
|
|
LimitedSpace++;
|
|
break;
|
|
case "14":
|
|
case "04"://射线
|
|
RadialWork++;
|
|
break;
|
|
case "09":
|
|
case "5"://断路
|
|
OpenCircuit++;
|
|
break;
|
|
case "02":
|
|
case "8"://动土
|
|
BreakGround++;
|
|
break;
|
|
case ""://夜间
|
|
NightWork++;
|
|
break;
|
|
case "19":
|
|
case "05":
|
|
case "3"://吊装
|
|
LiftingWork++;
|
|
break;
|
|
}
|
|
}
|
|
|
|
listCategories.Add("动火");
|
|
listdata.Add(FireWork);
|
|
listCategories.Add("高处");
|
|
listdata.Add(HeightWork);
|
|
listCategories.Add("受限");
|
|
listdata.Add(LimitedSpace);
|
|
listCategories.Add("射线");
|
|
listdata.Add(RadialWork);
|
|
listCategories.Add("断路");
|
|
listdata.Add(OpenCircuit);
|
|
listCategories.Add("动土");
|
|
listdata.Add(BreakGround);
|
|
listCategories.Add("夜间");
|
|
listdata.Add(NightWork);
|
|
listCategories.Add("吊装");
|
|
listdata.Add(LiftingWork);
|
|
|
|
s.data = listdata;
|
|
series.Add(s);
|
|
businessColumn.categories = listCategories;
|
|
businessColumn.series = series;
|
|
return JsonConvert.SerializeObject(businessColumn);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 安全检查问题统计
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public static List<Model.HSSE_Hazard_HazardRegister> getHazardRegisterLists;
|
|
|
|
/// <summary>
|
|
/// 按单位统计
|
|
/// </summary>
|
|
protected string Four1
|
|
{
|
|
get
|
|
{
|
|
//List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
|
//Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
|
//List<string> listCategories = new List<string>();
|
|
//Model.SingleSerie s = new Model.SingleSerie();
|
|
//Model.SingleSerie s2 = new Model.SingleSerie();
|
|
//List<double> listdata = new List<double>();
|
|
//List<double> listdata2 = new List<double>();
|
|
//businessColumn.title = "安全检查问题统计";
|
|
//var units = getHazardRegisterLists.Select(x => x.ResponsibleUnit).Distinct();
|
|
////UnitService.GetUnitByProjectIdUnitTypeList(this.ProjectId, BLL.Const.ProjectUnitType_2);
|
|
//if (units.Count() > 0)
|
|
//{
|
|
// foreach (var unitId in units)
|
|
// {
|
|
// var getPuUnit = Funs.DB.Project_ProjectUnit.FirstOrDefault(x => x.ProjectId == this.ProjectId && x.UnitId == unitId);
|
|
// if (getPuUnit != null)
|
|
// {
|
|
// var getunits = UnitService.GetUnitByUnitId(unitId);
|
|
// if (getunits != null)
|
|
// {
|
|
// listCategories.Add(getunits.ShortUnitName ?? getunits.UnitCode);
|
|
// var unitHazardRegisters = getHazardRegisterLists.Where(x => x.ResponsibleUnit == getunits.UnitId);
|
|
// //var noW = unitHazardRegisters.Where(x => x.States != "3");
|
|
// //listdata.Add(unitHazardRegisters.Count() - noW.Count());
|
|
// //listdata2.Add(unitHazardRegisters.Count());
|
|
|
|
// listdata.Add(unitHazardRegisters.Where(x => x.States == "1").Count());
|
|
// listdata2.Add(unitHazardRegisters.Count());
|
|
// }
|
|
// }
|
|
// }
|
|
//}
|
|
//else
|
|
//{
|
|
// var getunits = UnitService.GetUnitByProjectIdUnitTypeList(this.ProjectId, BLL.Const.ProjectUnitType_2).Take(10);
|
|
// foreach (var unit in getunits)
|
|
// {
|
|
// listCategories.Add(unit.ShortUnitName ?? unit.UnitCode);
|
|
// var unitHazardRegisters = getHazardRegisterLists.Where(x => x.ResponsibleUnit == unit.UnitId);
|
|
// //var noW = unitHazardRegisters.Where(x => x.States != "3");
|
|
// //listdata.Add(unitHazardRegisters.Count() - noW.Count());
|
|
// //listdata2.Add(unitHazardRegisters.Count());
|
|
// listdata.Add(unitHazardRegisters.Where(x => x.States == "1").Count());
|
|
// listdata2.Add(unitHazardRegisters.Count());
|
|
// }
|
|
//}
|
|
//s.data = listdata;
|
|
//series.Add(s);
|
|
|
|
//s2.data = listdata2;
|
|
//series.Add(s2);
|
|
//businessColumn.categories = listCategories;
|
|
//businessColumn.series = series;
|
|
//return JsonConvert.SerializeObject(businessColumn);
|
|
|
|
Model.SGGLDB db = Funs.DB;
|
|
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
|
List<string> listCategories = new List<string>();
|
|
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
|
Model.SingleSerie s = new Model.SingleSerie();
|
|
List<double> listdata = new List<double>();
|
|
List<double> listdata2 = new List<double>();
|
|
var hazardRegisters = from x in db.View_Hazard_HazardRegister where x.ProjectId == this.CurrUser.LoginProjectId select x;
|
|
if (hazardRegisters.Count() > 0)
|
|
{
|
|
var units = hazardRegisters.Select(x => x.ResponsibleUnit).Distinct();
|
|
foreach (var unit in units)
|
|
{
|
|
listCategories.Add(UnitService.GetShortUnitNameByUnitId(unit));
|
|
int state1 = hazardRegisters.Count(x => x.ResponsibleUnit == unit && x.States == "1");
|
|
int state2 = hazardRegisters.Count(x => x.ResponsibleUnit == unit);
|
|
listdata.Add(Convert.ToDouble(state1));
|
|
listdata2.Add(Convert.ToDouble(state2));
|
|
}
|
|
s.data = listdata;
|
|
s.data2 = listdata2;
|
|
series.Add(s);
|
|
}
|
|
businessColumn.categories = listCategories;
|
|
businessColumn.series = series;
|
|
return JsonConvert.SerializeObject(businessColumn);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 按类型统计
|
|
/// </summary>
|
|
protected string Four2
|
|
{
|
|
get
|
|
{
|
|
//List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
|
//Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
|
//List<string> listCategories = new List<string>();
|
|
//Model.SingleSerie s = new Model.SingleSerie();
|
|
//List<double> listdata = new List<double>();
|
|
//Model.SingleSerie s2 = new Model.SingleSerie();
|
|
//List<double> listdata2 = new List<double>();
|
|
//businessColumn.title = "安全检查问题统计";
|
|
|
|
////隐患类型
|
|
//var getTypes = (from x in Funs.DB.Sys_Const
|
|
// where x.GroupId == "Hiddendangertype"
|
|
// orderby x.SortIndex
|
|
// select x).ToList();
|
|
//foreach (var item in getTypes)
|
|
//{
|
|
// listCategories.Add(item.ConstText);
|
|
// var unitHazardRegisters = getHazardRegisterLists.Where(x => x.HiddenType == item.ConstValue);
|
|
// //var noW = unitHazardRegisters.Where(x => x.States != "3");
|
|
// //listdata.Add(unitHazardRegisters.Count() - noW.Count());
|
|
// listdata.Add(unitHazardRegisters.Where(x => x.States == "1").Count());
|
|
// listdata2.Add(unitHazardRegisters.Count());
|
|
//}
|
|
|
|
////问题类别
|
|
////var getTypes = HSSE_Hazard_HazardRegisterTypesService.GetHazardRegisterTypesList("1");
|
|
////foreach (var item in getTypes)
|
|
////{
|
|
//// listCategories.Add(item.RegisterTypesName);
|
|
//// var unitHazardRegisters = getHazardRegisterLists.Where(x => x.RegisterTypesId == item.RegisterTypesId);
|
|
//// //var noW = unitHazardRegisters.Where(x => x.States != "3");
|
|
//// //listdata.Add(unitHazardRegisters.Count() - noW.Count());
|
|
//// listdata.Add(unitHazardRegisters.Where(x => x.States == "1").Count());
|
|
//// listdata2.Add(unitHazardRegisters.Count());
|
|
////}
|
|
|
|
//s.data = listdata;
|
|
//series.Add(s);
|
|
//s2.data = listdata2;
|
|
//series.Add(s2);
|
|
//businessColumn.categories = listCategories;
|
|
//businessColumn.series = series;
|
|
//return JsonConvert.SerializeObject(businessColumn);
|
|
|
|
Model.SGGLDB db = Funs.DB;
|
|
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
|
List<string> listCategories = new List<string>();
|
|
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
|
Model.SingleSerie s = new Model.SingleSerie();
|
|
List<double> listdata = new List<double>();
|
|
List<double> listdata2 = new List<double>();
|
|
var hazardRegisters = from x in db.View_Hazard_HazardRegister where x.ProjectId == this.CurrUser.LoginProjectId select x;
|
|
if (hazardRegisters.Count() > 0)
|
|
{
|
|
var types = hazardRegisters.Select(x => x.RegisterTypesName).Distinct().ToList();
|
|
foreach (var type in types)
|
|
{
|
|
listCategories.Add(type);
|
|
int state1 = hazardRegisters.Count(x => x.RegisterTypesName == type && x.States == "1");
|
|
int state2 = hazardRegisters.Count(x => x.RegisterTypesName == type);
|
|
listdata.Add(Convert.ToDouble(state1));
|
|
listdata2.Add(Convert.ToDouble(state2));
|
|
}
|
|
s.data = listdata;
|
|
s.data2 = listdata2;
|
|
series.Add(s);
|
|
}
|
|
businessColumn.categories = listCategories;
|
|
businessColumn.series = series;
|
|
return JsonConvert.SerializeObject(businessColumn);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 入场安全培训
|
|
/// <summary>
|
|
/// 入场安全培训
|
|
/// </summary>
|
|
protected string Five
|
|
{
|
|
get
|
|
{
|
|
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
|
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
|
List<string> listCategories = new List<string>();
|
|
businessColumn.title = "入场培训";
|
|
Model.SingleSerie s = new Model.SingleSerie();
|
|
Model.SingleSerie s2 = new Model.SingleSerie();
|
|
//// 每月培训数量
|
|
List<double> listdata = new List<double>();
|
|
List<double> listdata2 = new List<double>();
|
|
var getTrainRecord = from x in Funs.DB.EduTrain_TrainRecord
|
|
where x.ProjectId == this.ProjectId && x.TrainTypeId == Const.EntryTrainTypeId
|
|
select x;
|
|
var getTrainRecordDetail = from x in Funs.DB.EduTrain_TrainRecordDetail
|
|
join y in getTrainRecord on x.TrainingId equals y.TrainingId
|
|
select x;
|
|
DateTime startTime = DateTime.Now;
|
|
DateTime endTime = DateTime.Now;
|
|
var getProject = ProjectService.GetProjectByProjectId(this.ProjectId);
|
|
if (getProject != null && getProject.StartDate.HasValue)
|
|
{
|
|
startTime = getProject.StartDate.Value;
|
|
if (getProject.EndDate.HasValue && getProject.EndDate < DateTime.Now)
|
|
{
|
|
endTime = getProject.EndDate.Value;
|
|
}
|
|
}
|
|
int totalCout = 0;
|
|
for (int i = 0; startTime.AddMonths(i) <= endTime; i++)
|
|
{
|
|
listCategories.Add(string.Format("{0:yyyy-MM}", startTime.AddMonths(i)));
|
|
|
|
var getMontDetail = from x in getTrainRecordDetail
|
|
join y in getTrainRecord on x.TrainingId equals y.TrainingId
|
|
where y.TrainStartDate.Value.Year == startTime.AddMonths(i).Year && y.TrainStartDate.Value.Month == startTime.AddMonths(i).Month
|
|
select x;
|
|
listdata.Add(getMontDetail.Count());
|
|
totalCout = totalCout + getMontDetail.Count();
|
|
listdata2.Add(totalCout);
|
|
}
|
|
|
|
s.data = listdata;
|
|
s2.data = listdata2;
|
|
series.Add(s);
|
|
series.Add(s2);
|
|
businessColumn.categories = listCategories;
|
|
businessColumn.series = series;
|
|
return JsonConvert.SerializeObject(businessColumn);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
# region 事故统计
|
|
/// <summary>
|
|
/// 事故统计
|
|
/// </summary>
|
|
protected string Six
|
|
{
|
|
get
|
|
{
|
|
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
|
|
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
|
|
|
|
Model.SingleSerie s = new Model.SingleSerie();
|
|
List<double> listdata = new List<double>();
|
|
|
|
businessColumn.title = "事故统计";
|
|
var getAccident = from x in Funs.DB.Accident_AccidentReport
|
|
where x.ProjectId == this.ProjectId
|
|
select x;
|
|
|
|
listdata.Add(getAccident.Where(x => x.AccidentTypeId == "1" || x.AccidentTypeId == "2" || x.AccidentTypeId == "3" || x.AccidentTypeId == "4").Count());
|
|
listdata.Add(getAccident.Where(x => x.AccidentTypeId == "5").Count());
|
|
listdata.Add(getAccident.Where(x => x.AccidentTypeId == "6" || x.AccidentTypeId == "7").Count());
|
|
listdata.Add(getAccident.Where(x => x.AccidentTypeId == "8" || x.AccidentTypeId == "9").Count());
|
|
listdata.Add(getAccident.Where(x => x.AccidentTypeId == "10").Count());
|
|
listdata.Add(getAccident.Where(x => x.AccidentTypeId == "11").Count());
|
|
|
|
s.data = listdata;
|
|
series.Add(s);
|
|
businessColumn.series = series;
|
|
return JsonConvert.SerializeObject(businessColumn);
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
} |