177 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			177 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Data;
 | |
| using System.Linq;
 | |
| using BLL;
 | |
| 
 | |
| namespace FineUIPro.Web.Transfer.Chart
 | |
| {
 | |
|     public partial class PunchlistFrom : 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 forms = from x in Funs.DB.Transfer_PunchlistFrom
 | |
|                                   where x.ProjectId == this.CurrUser.LoginProjectId
 | |
|                                   select x;
 | |
|             if (!string.IsNullOrEmpty(this.txtStartTime.Text.Trim()))
 | |
|             {
 | |
|                 forms = forms.Where(x => x.PUNCH_ITEM_FINISH_DATE >= Funs.GetNewDateTime(this.txtStartTime.Text.Trim()));
 | |
|             }
 | |
|             if (!string.IsNullOrEmpty(this.txtEndTime.Text.Trim()))
 | |
|             {
 | |
|                 forms = forms.Where(x => x.PUNCH_ITEM_FINISH_DATE <= Funs.GetNewDateTime(this.txtEndTime.Text.Trim()));
 | |
|             }
 | |
|             var list = new List<string> { "Testing", "Pre-Commissioning", "PSSR", "Commissioning" };
 | |
|             if (this.rblState.SelectedValue == "0")
 | |
|             {
 | |
|                 #region 按Identified during/by统计
 | |
|                 if (this.drpChartType.SelectedValue != "Pie")  //非饼形图
 | |
|                 {
 | |
|                     ///按单位统计
 | |
|                     DataTable dtTime = new DataTable();
 | |
|                     dtTime.Columns.Add("Identified during/by", typeof(string));
 | |
|                     dtTime.Columns.Add("总数量", typeof(string));
 | |
|                     dtTime.Columns.Add("A数量", typeof(string));
 | |
|                     dtTime.Columns.Add("B数量", typeof(string));
 | |
|                     dtTime.Columns.Add("C数量", typeof(string));
 | |
|                     dtTime.Columns.Add("Finished", typeof(string));
 | |
|                     dtTime.Columns.Add("In Progress", typeof(string));
 | |
|                     dtTime.Columns.Add("Not Start", typeof(string));
 | |
|                     foreach (var item in list)
 | |
|                     {
 | |
|                         DataRow rowTime = dtTime.NewRow();
 | |
|                         Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem();
 | |
|                         rowTime["Identified during/by"] = item;
 | |
|                         var types = forms.Where(x => x.Identified == item);
 | |
|                         rowTime["总数量"] = types.Count();
 | |
|                         rowTime["A数量"] = types.Where(x => x.Category == "A").Count();
 | |
|                         rowTime["B数量"] = types.Where(x => x.Category == "B").Count();
 | |
|                         rowTime["C数量"] = types.Where(x => x.Category == "C").Count();
 | |
|                         rowTime["Finished"] = types.Where(x => x.PUNCH_ITEM_STATUS == "Finished").Count();
 | |
|                         rowTime["In Progress"] = types.Where(x => x.PUNCH_ITEM_STATUS == "In Progress").Count();
 | |
|                         rowTime["Not Start"] = types.Where(x => x.PUNCH_ITEM_STATUS == "Not Start").Count();
 | |
|                         dtTime.Rows.Add(rowTime);
 | |
|                     }
 | |
|                     this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项分析", this.drpChartType.SelectedValue, 1300, 550, this.ckbShow.Checked));
 | |
|                 }
 | |
|                 else   //饼形图
 | |
|                 {
 | |
|                     DataTable dtTime = new DataTable();
 | |
|                     dtTime.Columns.Add("Identified during/by", typeof(string)); 
 | |
|                     dtTime.Columns.Add("总数量", typeof(string));
 | |
|                     foreach (var item in list)
 | |
|                     {
 | |
|                         DataRow rowTime = dtTime.NewRow();
 | |
|                         Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem();
 | |
|                         rowTime["Identified during/by"] = item;
 | |
|                         var types = forms.Where(x => x.Identified == item);
 | |
|                         rowTime["总数量"] = types.Count();
 | |
|                         dtTime.Rows.Add(rowTime);
 | |
|                     }
 | |
|                     this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项分析", this.drpChartType.SelectedValue, 1300, 550, this.ckbShow.Checked));
 | |
|                 }
 | |
|                 #endregion
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 #region 按Discipline
 | |
|                 var disciplines = from x in Funs.DB.Base_TransferMajor orderby x.DisciplineCode select x;
 | |
|                 if (this.drpChartType.SelectedValue != "Pie")  //非饼形图
 | |
|                 {
 | |
|                     ///按检查项
 | |
|                     DataTable dtTime = new DataTable();
 | |
|                     dtTime.Columns.Add("Discipline", typeof(string));
 | |
|                     dtTime.Columns.Add("总数量", typeof(string));
 | |
|                     dtTime.Columns.Add("A数量", typeof(string));
 | |
|                     dtTime.Columns.Add("B数量", typeof(string));
 | |
|                     dtTime.Columns.Add("C数量", typeof(string));
 | |
|                     dtTime.Columns.Add("Finished", typeof(string));
 | |
|                     dtTime.Columns.Add("In Progress", typeof(string));
 | |
|                     dtTime.Columns.Add("Not Start", typeof(string));
 | |
|                     foreach (var item in disciplines)
 | |
|                     {
 | |
|                         DataRow rowTime = dtTime.NewRow();
 | |
|                         Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem();
 | |
|                         rowTime["Discipline"] = item.Discipline;
 | |
|                         var types = forms.Where(x => x.Discipline == item.Discipline || x.Discipline==item.DisciplineCode);
 | |
|                         rowTime["总数量"] = types.Count();
 | |
|                         rowTime["A数量"] = types.Where(x => x.Category == "A").Count();
 | |
|                         rowTime["B数量"] = types.Where(x => x.Category == "B").Count();
 | |
|                         rowTime["C数量"] = types.Where(x => x.Category == "C").Count();
 | |
|                         rowTime["Finished"] = types.Where(x => x.PUNCH_ITEM_STATUS == "Finished").Count();
 | |
|                         rowTime["In Progress"] = types.Where(x => x.PUNCH_ITEM_STATUS == "In Progress").Count();
 | |
|                         rowTime["Not Start"] = types.Where(x => x.PUNCH_ITEM_STATUS == "Not Start").Count();
 | |
|                         dtTime.Rows.Add(rowTime);
 | |
|                     }
 | |
| 
 | |
|                     this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项分析", this.drpChartType.SelectedValue, 1300, 550, this.ckbShow.Checked));
 | |
|                 }
 | |
|                 else   //饼形图
 | |
|                 {
 | |
|                     ///按问题类型
 | |
|                     DataTable dtTime = new DataTable();
 | |
|                     dtTime.Columns.Add("Discipline", typeof(string));
 | |
|                     dtTime.Columns.Add("总数量", typeof(string));
 | |
|                     foreach (var item in disciplines)
 | |
|                     {
 | |
|                         DataRow rowTime = dtTime.NewRow();
 | |
|                         Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem();
 | |
|                         rowTime["Discipline"] = item.Discipline;
 | |
|                         var types = forms.Where(x => x.Discipline == item.Discipline || x.Discipline == item.DisciplineCode);
 | |
|                         rowTime["总数量"] = types.Count();
 | |
|                         dtTime.Rows.Add(rowTime);
 | |
|                     }
 | |
| 
 | |
|                     this.ChartAccidentTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtTime, "尾项分析", this.drpChartType.SelectedValue, 1300, 550, 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
 | |
|     }
 | |
| } |