using BLL; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Data; using System.Linq; namespace FineUIPro.Web { public partial class mainMenu_HSSE : PageBase { #region 项目ID /// /// 项目ID /// 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) { this.ProjectId = this.CurrUser.LoginProjectId; } ///当前现场总人数 this.getSitePerson(); ///项目通讯 var project = BLL.ProjectService.GetProjectByProjectId(this.ProjectId); if (project != null) { divXmTelTitle = project.Telephone ?? "---"; } ///项目安全人工时 this.getSafeWorkTimes(); ///安全检查问题统计 this.getSafeCheck(); ///获取作业票数量 this.getLicenseCount(); ////安全教育培训数量 this.getEduTrainCount(); ////事故数量 this.getAccidentCount(); } } protected string divXmTelTitle; #region 当前现场总人数 /// /// 当前现场总人数 /// private void getSitePerson() { // var getallin = APIPageDataService.getPersonInOutNum(this.ProjectId, DateTime.Now); string sql = @"select c.ConstText,b.PostType,count( *) num from SitePerson_Person a left join Base_WorkPost b on a.WorkPostId=b.WorkPostId LEFT JOIN Sys_Const AS c ON c.ConstValue = b.PostType and c.GroupId = 'PostType' where IsUsed =1 and InTime<='" + DateTime.Now.ToString("yyyy-MM-dd") + "' and (OutTime is null or OutTime>'" + DateTime.Now.ToString("yyyy-MM-dd") + @"' ) and a.ProjectId='" + this.CurrUser.LoginProjectId + @"' and a.AuditorDate is not null group by c.ConstText,b.PostType "; List listStr = new List(); SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(sql, parameter); int allcount = 0; int mcount = 0; if (tb != null) { foreach (DataRow row in tb.Rows) { allcount += int.Parse(row["num"].ToString()); if (!string.IsNullOrEmpty(row["ConstText"].ToString()) && row["ConstText"].ToString().Contains("管理")) { mcount += int.Parse(row["num"].ToString()); } } } this.divPersonNum.InnerHtml = allcount.ToString(); if (CurrUser.LoginProjectId == "b11a16ea-148c-4bae-a5a1-32158b599482") { this.divPersonNum.InnerHtml = "1301"; } } #endregion #region 项目安全人工时 protected string SafeWorkTimeMonths; protected string SafeWorkTimeCounts; protected string SumSafeWorkTimeCounts; /// /// 项目安全人工时 /// protected void getSafeWorkTimes() { SafeWorkTimeMonths = "[]"; SafeWorkTimeCounts = "[]"; SumSafeWorkTimeCounts = "[]"; List monhts = new List(); List counts = new List(); List countSums = new List(); decimal sumMonthCount = 0; var getMonts = Funs.DB.SeDin_MonthReport.Where(x => x.ProjectId == this.ProjectId).OrderBy(x => x.ReporMonth); var getmax = getMonts.FirstOrDefault(); if (getMonts.Count() > 0) { foreach (var item in getMonts) { monhts.Add(string.Format("{0:yyyy-MM}", item.ReporMonth)); decimal monthCount = 0; var getItem = Funs.DB.SeDin_MonthReport2.FirstOrDefault(x => x.MonthReportId == item.MonthReportId); if (getItem != null && getItem.MonthWorkTime.HasValue) { monthCount = getItem.MonthWorkTime ?? 0; sumMonthCount += monthCount; if (sumMonthCount < getItem.ProjectWorkTime) { sumMonthCount = getItem.ProjectWorkTime ?? 0; } } counts.Add(monthCount); countSums.Add(sumMonthCount); } } else { monhts.Add(string.Format("{0:yyyy-MM}", DateTime.Now)); counts.Add(0); countSums.Add(0); } SafeWorkTimeMonths = JsonConvert.SerializeObject(monhts); SafeWorkTimeCounts = JsonConvert.SerializeObject(counts); SumSafeWorkTimeCounts = JsonConvert.SerializeObject(countSums); if (CurrUser.LoginProjectId == "b11a16ea-148c-4bae-a5a1-32158b599482") { SafeWorkTimeMonths = "[\"2022-08\",\"2022-09\",\"2022-10\",\"2022-11\",\"2022-12\",\"2023-01\",\"2023-02\"]"; SafeWorkTimeCounts = "[672512,658746,568426,486204,153402,68742,213854]"; SumSafeWorkTimeCounts = "[3221746,3880492,4448918,4935122,5088524,5157266,5371120]"; } } #endregion #region 作业许可数量统计 protected string LicenseStates; protected string LicenseCounts; /// /// 作业许可数量统计 /// protected void getLicenseCount() { LicenseStates = "[]"; LicenseCounts = "[]"; List stateList = new List(); List countList = new List(); var getStates = LicensePublicService.drpStatesItem().Where(x => x.Value != Const._Null); var getLicense = APILicenseDataService.getLicenseDataListByStates(this.CurrUser.LoginProjectId, Const.UnitId_CD, null ); foreach (var itemStates in getStates) { stateList.Add(itemStates.Text); if (getLicense != null) { countList.Add(getLicense.Where(x => x.States == itemStates.Value).Count()); } countList.Add(0); } if (stateList.Count() > 0) { LicenseStates = JsonConvert.SerializeObject(stateList); LicenseCounts = JsonConvert.SerializeObject(countList); } if (CurrUser.LoginProjectId == "b11a16ea-148c-4bae-a5a1-32158b599482") { LicenseStates = "[\"待提交\",\"审核中\",\"作业中\",\"已完成\",\"作废\"]"; LicenseCounts = "[0,0,258,9027,0]"; } } #endregion #region 安全检查问题统计 protected string CheckUnit ; protected string CheckUnitALLCount; protected string CheckUnitNoCount; protected string CheckType; protected string CheckTypeALLCount; protected string CheckTypeNoCount; /// /// 按单位统计 /// protected void getSafeCheck() { CheckUnit = "[]"; CheckUnitALLCount = "[]"; CheckUnitNoCount = "[]"; List listUnit = new List(); List listUAll = new List(); List listUNo = new List(); var getHazardRegisterLists = HSSE_Hazard_HazardRegisterService.GetHazardRegisterListByProjectId(this.ProjectId); var units = UnitService.GetUnitByProjectIdUnitTypeList(this.ProjectId, BLL.Const.ProjectUnitType_2); if (units.Count() > 0) { foreach (var unit in units) { listUnit.Add(unit.ShortUnitName ?? ""); var unitHazardRegisters = getHazardRegisterLists.Where(x => x.ResponsibleUnit == unit.UnitId && x.States != "-1"); var noW = unitHazardRegisters.Where(x => x.States == "3"); listUAll.Add(unitHazardRegisters.Count()); listUNo.Add(unitHazardRegisters.Count() - noW.Count()); } } else { listUnit.Add(""); listUAll.Add(0); listUNo.Add(0); } CheckUnit = JsonConvert.SerializeObject(listUnit); CheckUnitALLCount = JsonConvert.SerializeObject(listUAll); CheckUnitNoCount = JsonConvert.SerializeObject(listUNo); CheckType = "[]"; CheckTypeALLCount = "[]"; CheckTypeNoCount = "[]"; List listType = new List(); List listTAll = new List(); List listTNo = new List(); string strSql = @"select b.RegisterTypesName ,count(*) allr ,sum(case when states=3 then 1 else 0 end) finish from HSSE_Hazard_HazardRegister a left join HSSE_Hazard_HazardRegisterTypes b on a.RegisterTypesId = b.RegisterTypesId where a.ProjectId='" + this.ProjectId + @"' and b.RegisterTypesName is not null group by b.RegisterTypesName"; DataTable tb = SQLHelper.GetDataTableRunText(strSql, null); if (tb!=null && tb.Rows.Count>0) { foreach (DataRow item in tb.Rows) { listType.Add(item["RegisterTypesName"].ToString()); //var unitHazardRegisters = getHazardRegisterLists.Where(x => x.RegisterTypesId == item.RegisterTypesId); //var noW = unitHazardRegisters.Where(x => x.States == "3"); listTAll.Add(int.Parse(item["allr"].ToString())); listTNo.Add(int.Parse(item["allr"].ToString()) - int.Parse(item["finish"].ToString())); } } else { listType.Add(""); listTAll.Add(0); listTNo.Add(0); } CheckType = JsonConvert.SerializeObject(listType); CheckTypeALLCount = JsonConvert.SerializeObject(listTAll); CheckTypeNoCount = JsonConvert.SerializeObject(listTNo); } #endregion #region 入场安全培训 public string EduTrainMonths; public string EduTrainCounts; public string EduTrainSumCounts; /// /// 入场安全培训 /// protected void getEduTrainCount() { EduTrainMonths = "[]"; EduTrainCounts = "[]"; EduTrainSumCounts = "[]"; //// 每月培训数量 List listdata = new List(); List listdataSum = new List(); List listMonths = 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.CurrUser.LoginProjectId); 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++) { listMonths.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(); listdataSum.Add(totalCout); } if (listMonths.Count() > 0) { EduTrainMonths = JsonConvert.SerializeObject(listMonths); EduTrainCounts = JsonConvert.SerializeObject(listdata); EduTrainSumCounts = JsonConvert.SerializeObject(listdataSum); } if (CurrUser.LoginProjectId == "b11a16ea-148c-4bae-a5a1-32158b599482") { EduTrainMonths = "[\"2022-08\",\"2022-09\",\"2022-10\",\"2022-11\",\"2022-12\",\"2023-01\",\"2023-02\"]"; EduTrainCounts = "[1250,486,76,150,18,532,846]"; EduTrainSumCounts = "[1250,486,76,150,18,532,846]"; } } #endregion #region 事故统计 public string AccidentTypes; public string AccidentCounts; /// /// 事故统计 /// protected void getAccidentCount() { //AccidentTypes = "[人身伤害, 未遂事故, 火灾, 机械设备, 环境影响, 其他]"; List listCount = new List(); var getAccident = from x in Funs.DB.Accident_AccidentReport where x.ProjectId == this.ProjectId select x; listCount.Add(getAccident.Where(x => x.AccidentTypeId == "1" || x.AccidentTypeId == "2" || x.AccidentTypeId == "3" || x.AccidentTypeId == "4").Count()); listCount.Add(getAccident.Where(x => x.AccidentTypeId == "5").Count()); listCount.Add(getAccident.Where(x => x.AccidentTypeId == "6" || x.AccidentTypeId == "7").Count()); listCount.Add(getAccident.Where(x => x.AccidentTypeId == "8" || x.AccidentTypeId == "9").Count()); listCount.Add(getAccident.Where(x => x.AccidentTypeId == "10").Count()); listCount.Add(getAccident.Where(x => x.AccidentTypeId == "11").Count()); AccidentCounts = JsonConvert.SerializeObject(listCount); } #endregion } }