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
 | 
						|
    }
 | 
						|
} |