using BLL; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; namespace FineUIPro.Web { public partial class mainMenu_HSSE : PageBase { #region 定义项 /// /// 项目主键 /// 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(); 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 当前现场总人数 /// /// 当前现场总人数 /// 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 项目安全人工时 /// /// 项目安全人工时 /// protected string Two { get { List series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); businessColumn.title = "项目安全人工时"; Model.SingleSerie s = new Model.SingleSerie(); List listdata = new List(); Model.SingleSerie s2 = new Model.SingleSerie(); List listdata2 = new List(); 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 作业许可数量统计 /// /// 作业许可数量统计 /// protected string Three { get { //List series = new List(); //Model.BusinessColumn businessColumn = new Model.BusinessColumn(); //List listCategories = new List(); //businessColumn.title = "作业许可数量统计"; //Model.SingleSerie s = new Model.SingleSerie(); //List listdata = new List(); //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 series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); businessColumn.title = "作业许可数量统计"; Model.SingleSerie s = new Model.SingleSerie(); List listdata = new List(); 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 安全检查问题统计 /// /// /// public static List getHazardRegisterLists; /// /// 按单位统计 /// protected string Four1 { get { //List series = new List(); //Model.BusinessColumn businessColumn = new Model.BusinessColumn(); //List listCategories = new List(); //Model.SingleSerie s = new Model.SingleSerie(); //Model.SingleSerie s2 = new Model.SingleSerie(); //List listdata = new List(); //List listdata2 = new List(); //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 listCategories = new List(); List series = new List(); Model.SingleSerie s = new Model.SingleSerie(); List listdata = new List(); List listdata2 = new List(); 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); } } /// /// 按类型统计 /// protected string Four2 { get { //List series = new List(); //Model.BusinessColumn businessColumn = new Model.BusinessColumn(); //List listCategories = new List(); //Model.SingleSerie s = new Model.SingleSerie(); //List listdata = new List(); //Model.SingleSerie s2 = new Model.SingleSerie(); //List listdata2 = new List(); //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 listCategories = new List(); List series = new List(); Model.SingleSerie s = new Model.SingleSerie(); List listdata = new List(); List listdata2 = new List(); 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 入场安全培训 /// /// 入场安全培训 /// protected string Five { get { List series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); businessColumn.title = "入场培训"; Model.SingleSerie s = new Model.SingleSerie(); Model.SingleSerie s2 = new Model.SingleSerie(); //// 每月培训数量 List listdata = new List(); List listdata2 = new List(); 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 事故统计 /// /// 事故统计 /// protected string Six { get { List series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); Model.SingleSerie s = new Model.SingleSerie(); List listdata = new List(); 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 } }