using System; using System.Collections.Generic; using System.Data; using System.Linq; using BLL; namespace FineUIPro.Web.ZHGL.Information { public partial class AnalyseSafeAccident : PageBase { #region 加载页面 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BLL.ConstValue.InitConstValueDropDownList(this.drpYear, ConstValue.Group_0008, false); this.drpYear.SelectedValue = DateTime.Now.Year.ToString(); BLL.ConstValue.InitConstValueDropDownList(this.drpMonth, ConstValue.Group_0009, false); this.drpMonth.SelectedValue = DateTime.Now.Month.ToString(); BLL.ConstValue.InitConstValueDropDownList(this.drpChartType, ConstValue.Group_ChartType, false); } } #endregion #region 统计 /// /// 统计分析 /// /// /// protected void BtnAnalyse_Click(object sender, EventArgs e) { if (!GetButtonPower(BLL.Const.BtnAnalyse)) { ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); return; } this.AnalyseData(); } /// /// 统计方法 /// private void AnalyseData() { List yearValues = new List(); foreach (ListItem item in this.drpYear.SelectedItemArray) { yearValues.Add(item.Value); } List monthValues = new List(); foreach (ListItem item in this.drpMonth.SelectedItemArray) { monthValues.Add(item.Value); } var accidentCauseReport = (from x in Funs.DB.Information_AccidentCauseReport where yearValues.Contains(x.Year.ToString()) && monthValues.Contains(x.Month.ToString()) select x); #region 按时间统计 ///按单位统计 DataTable dtTime = new DataTable(); dtTime.Columns.Add("事故类别", typeof(string)); dtTime.Columns.Add("数量", typeof(string)); var reportItem = from x in Funs.DB.Information_AccidentCauseReportItem join y in accidentCauseReport on x.AccidentCauseReportId equals y.AccidentCauseReportId select x; var accidentType = BLL.ConstValue.drpConstItemList(ConstValue.Group_0012).Where(x => x.ConstValue != "总计"); foreach (var item in accidentType) { DataRow rowTime = dtTime.NewRow(); Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem(); rowTime["事故类别"] = item.ConstText; var typeAccident = (from x in reportItem where x.AccidentType == item.ConstValue select x).ToList(); rowTime["数量"] = typeAccident.Sum(x => x.TotalDeath) ?? 0 + typeAccident.Sum(x => x.TotalInjuries) ?? 0 + typeAccident.Sum(x => x.TotalMinorInjuries) ?? 0; dtTime.Rows.Add(rowTime); } this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "事故类别分析", this.drpChartType.SelectedValue, 1150, 450, this.ckbShow.Checked)); #endregion } #endregion #region 获取按钮权限 /// /// 获取按钮权限 /// /// /// private bool GetButtonPower(string button) { return BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.AnalyseSafeAccidentMenuId, button); } #endregion #region 清空 /// /// 清空下拉框 /// /// /// protected void drpYear_ClearIconClick(object sender, EventArgs e) { this.drpYear.SelectedValue = DateTime.Now.Year.ToString(); this.AnalyseData(); } /// /// 清空下拉框 /// /// /// protected void drpMonth_ClearIconClick(object sender, EventArgs e) { this.drpMonth.SelectedValue = DateTime.Now.Month.ToString(); this.AnalyseData(); } #endregion #region 图形 /// /// 图形变换 /// /// /// protected void drpChartType_SelectedIndexChanged(object sender, EventArgs e) { this.AnalyseData(); } protected void ckbShow_CheckedChanged(object sender, CheckedEventArgs e) { this.AnalyseData(); } #endregion } }