168 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			168 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Data;
 | |
| using System.Linq;
 | |
| using BLL;
 | |
| 
 | |
| namespace FineUIPro.Web.JDGL.Check
 | |
| {
 | |
|     public partial class QuantityCompletionChart : PageBase
 | |
|     {
 | |
|         #region 加载页面
 | |
|         /// <summary>
 | |
|         /// 加载页面
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void Page_Load(object sender, EventArgs e)
 | |
|         {
 | |
|             if (!IsPostBack)
 | |
|             {
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 统计
 | |
|         /// <summary>
 | |
|         /// 统计分析
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void BtnAnalyse_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             this.AnalyseData();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 统计方法
 | |
|         /// </summary>
 | |
|         private void AnalyseData()
 | |
|         {
 | |
|             var hazardRegisters = (from x in Funs.DB.HSSE_Hazard_HazardRegister
 | |
|                                    where x.ProjectId == this.CurrUser.LoginProjectId
 | |
|                                    && x.States != "4" && x.ProblemTypes == "1"
 | |
|                                    select x);
 | |
|             if (!string.IsNullOrEmpty(this.txtStartRectificationTime.Text.Trim()))
 | |
|             {
 | |
|                 hazardRegisters = hazardRegisters.Where(x => x.CheckTime >= Funs.GetNewDateTime(this.txtStartRectificationTime.Text.Trim()));
 | |
|             }
 | |
|             if (!string.IsNullOrEmpty(this.txtEndRectificationTime.Text.Trim()))
 | |
|             {
 | |
|                 hazardRegisters = hazardRegisters.Where(x => x.CheckTime <= Funs.GetNewDateTime(this.txtEndRectificationTime.Text.Trim()));
 | |
|             }
 | |
|             if (this.rblState.SelectedValue == "0")
 | |
|             {
 | |
|                 #region 按单位统计
 | |
|                 if (this.drpChartType.SelectedValue != "Pie")  //非饼形图
 | |
|                 {
 | |
|                     ///按单位统计
 | |
|                     DataTable dtTime = new DataTable();
 | |
|                     dtTime.Columns.Add("单位", typeof(string));
 | |
|                     dtTime.Columns.Add("总数量", typeof(string));
 | |
|                     dtTime.Columns.Add("待整改", typeof(string));
 | |
|                     dtTime.Columns.Add("已整改", typeof(string));
 | |
| 
 | |
|                     var units = BLL.UnitService.GetUnitByProjectIdUnitTypeList(this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2);
 | |
|                     foreach (var item in units)
 | |
|                     {
 | |
|                         DataRow rowTime = dtTime.NewRow();
 | |
|                         Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem();
 | |
|                         rowTime["单位"] = item.UnitName;
 | |
|                         var unitHazad = hazardRegisters.Where(x => x.ResponsibleUnit == item.UnitId);
 | |
|                         rowTime["总数量"] = unitHazad.Count();
 | |
|                         rowTime["待整改"] = unitHazad.Where(x => x.States == "1" || x.States == null).Count();
 | |
|                         rowTime["已整改"] = unitHazad.Where(x => x.States == "3" || x.States == "2").Count();
 | |
|                         dtTime.Rows.Add(rowTime);
 | |
|                     }
 | |
|                     this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "单位巡检分析", this.drpChartType.SelectedValue, 1100, 300, this.ckbShow.Checked));
 | |
|                 }
 | |
|                 else   //饼形图
 | |
|                 {
 | |
|                     DataTable dtTime = new DataTable();
 | |
|                     dtTime.Columns.Add("单位", typeof(string));
 | |
|                     dtTime.Columns.Add("总数量", typeof(string));
 | |
| 
 | |
|                     var units = BLL.UnitService.GetUnitByProjectIdUnitTypeList(this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2);
 | |
|                     foreach (var item in units)
 | |
|                     {
 | |
|                         DataRow rowTime = dtTime.NewRow();
 | |
|                         Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem();
 | |
|                         rowTime["单位"] = item.UnitName;
 | |
|                         var unitHazad = hazardRegisters.Where(x => x.ResponsibleUnit == item.UnitId);
 | |
|                         rowTime["总数量"] = unitHazad.Count();
 | |
|                         dtTime.Rows.Add(rowTime);
 | |
|                     }
 | |
|                     this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "单位巡检分析", this.drpChartType.SelectedValue, 1130, 450, this.ckbShow.Checked));
 | |
|                 }
 | |
|                 #endregion
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 #region 按检查项
 | |
|                 if (this.drpChartType.SelectedValue != "Pie")  //非饼形图
 | |
|                 {
 | |
|                     ///按检查项
 | |
|                     DataTable dtTime = new DataTable();
 | |
|                     dtTime.Columns.Add("检查项", typeof(string));
 | |
|                     dtTime.Columns.Add("总数量", typeof(string));
 | |
|                     dtTime.Columns.Add("待整改", typeof(string));
 | |
|                     dtTime.Columns.Add("已整改", typeof(string));
 | |
| 
 | |
|                     var types = from x in Funs.DB.HSSE_Hazard_HazardRegisterTypes where x.HazardRegisterType == "1" orderby x.TypeCode select x;
 | |
|                     foreach (var item in types)
 | |
|                     {
 | |
|                         DataRow rowTime = dtTime.NewRow();
 | |
|                         Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem();
 | |
|                         rowTime["检查项"] = item.RegisterTypesName;
 | |
|                         var typeHazad = hazardRegisters.Where(x => x.RegisterTypesId == item.RegisterTypesId);
 | |
|                         rowTime["总数量"] = typeHazad.Count();
 | |
|                         rowTime["待整改"] = typeHazad.Where(x => x.States == "1" || x.States == null).Count();
 | |
|                         rowTime["已整改"] = typeHazad.Where(x => x.States == "3" || x.States == "2").Count();
 | |
|                         dtTime.Rows.Add(rowTime);
 | |
|                     }
 | |
| 
 | |
|                     this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "巡检问题分析", this.drpChartType.SelectedValue, 1100, 330, this.ckbShow.Checked));
 | |
|                 }
 | |
|                 else   //饼形图
 | |
|                 {
 | |
|                     ///按问题类型
 | |
|                     DataTable dtTime = new DataTable();
 | |
|                     dtTime.Columns.Add("检查项", typeof(string));
 | |
|                     dtTime.Columns.Add("总数量", typeof(string));
 | |
| 
 | |
|                     var types = from x in Funs.DB.HSSE_Hazard_HazardRegisterTypes where x.HazardRegisterType == "1" orderby x.TypeCode select x;
 | |
|                     foreach (var item in types)
 | |
|                     {
 | |
|                         DataRow rowTime = dtTime.NewRow();
 | |
|                         Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem();
 | |
|                         rowTime["检查项"] = item.RegisterTypesName;
 | |
|                         var typeHazad = hazardRegisters.Where(x => x.RegisterTypesId == item.RegisterTypesId);
 | |
|                         rowTime["总数量"] = typeHazad.Count();
 | |
|                         dtTime.Rows.Add(rowTime);
 | |
|                     }
 | |
| 
 | |
|                     this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "巡检问题分析", this.drpChartType.SelectedValue, 1100, 330, this.ckbShow.Checked));
 | |
|                 }
 | |
|                 #endregion
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 图形
 | |
|         /// <summary>
 | |
|         /// 图形变换 
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void drpChartType_SelectedIndexChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             this.AnalyseData();
 | |
|         }
 | |
| 
 | |
|         protected void ckbShow_CheckedChanged(object sender, CheckedEventArgs e)
 | |
|         {
 | |
|             this.AnalyseData();
 | |
|         }
 | |
|         #endregion
 | |
|     }
 | |
| } |