137 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			137 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Data; | |||
|  | using System.Linq; | |||
|  | using BLL; | |||
|  | 
 | |||
|  | namespace FineUIPro.Web.Transfer.Chart | |||
|  | { | |||
|  |     public partial class PunchlistFromChart : PageBase | |||
|  |     { | |||
|  |         #region 定义项 | |||
|  |         /// <summary> | |||
|  |         /// 项目主键 | |||
|  |         /// </summary> | |||
|  |         public string ProjectId | |||
|  |         { | |||
|  |             get | |||
|  |             { | |||
|  |                 return (string)ViewState["ProjectId"]; | |||
|  |             } | |||
|  |             set | |||
|  |             { | |||
|  |                 ViewState["ProjectId"] = value; | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 加载页面 | |||
|  |         /// <summary> | |||
|  |         /// 加载页面 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void Page_Load(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (!IsPostBack) | |||
|  |             { | |||
|  |                 this.ProjectId = this.CurrUser.LoginProjectId; | |||
|  |                 if (!string.IsNullOrEmpty(Request.Params["projectId"])) | |||
|  |                 { | |||
|  |                     this.ProjectId = Request.Params["projectId"]; | |||
|  |                 } | |||
|  | 
 | |||
|  |                 this.AnalyseData(); | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 统计分析 | |||
|  |         /// </summary> | |||
|  |         /// <param name="sender"></param> | |||
|  |         /// <param name="e"></param> | |||
|  |         protected void BtnAnalyse_Click(object sender, EventArgs e) | |||
|  |         { | |||
|  |             this.AnalyseData(); | |||
|  |         } | |||
|  | 
 | |||
|  |         #region 统计 | |||
|  |         private void AnalyseData() | |||
|  |         { | |||
|  |             if (string.IsNullOrEmpty(ProjectId)) | |||
|  |             { | |||
|  |                 Alert.ShowInTop("项目未获取到,请刷新页面。", MessageBoxIcon.Warning); | |||
|  |                 return; | |||
|  |             } | |||
|  |             var forms = from x in Funs.DB.Transfer_PunchlistFrom | |||
|  |                         where x.ProjectId == this.CurrUser.LoginProjectId | |||
|  |                         select x; | |||
|  |             var dates = (from x in forms where x.PUNCH_ITEM_FINISH_DATE != null orderby x.PUNCH_ITEM_FINISH_DATE select x.PUNCH_ITEM_FINISH_DATE).Distinct().ToList(); | |||
|  |             DataTable dtTime = new DataTable(); | |||
|  |             if (rblType.SelectedValue == "1") | |||
|  |             { | |||
|  |                 dtTime.Columns.Add("日期", typeof(string)); | |||
|  |                 dtTime.Columns.Add("Finished(%)", typeof(string)); | |||
|  |                 if (dates.Count() > 0) | |||
|  |                 { | |||
|  |                     List<DateTime> months = new List<DateTime>(); | |||
|  |                     DateTime startDate = Convert.ToDateTime(dates.First()); | |||
|  |                     DateTime endDate = Convert.ToDateTime(dates.Last()); | |||
|  |                     do | |||
|  |                     { | |||
|  |                         months.Add(startDate); | |||
|  |                         startDate = startDate.AddDays(15); | |||
|  |                     } while (startDate <= endDate); | |||
|  |                     var nums = forms.Count(); | |||
|  |                     foreach (var item in months) | |||
|  |                     { | |||
|  |                         DataRow rowTime = dtTime.NewRow(); | |||
|  |                         Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem(); | |||
|  |                         rowTime["日期"] = string.Format("{0:yyyy-MM-dd}", item); | |||
|  |                         var finishedNums = forms.Count(x => x.PUNCH_ITEM_FINISH_DATE <= item && x.PUNCH_ITEM_STATUS == "Finished"); | |||
|  |                         if (nums > 0) | |||
|  |                         { | |||
|  |                             rowTime["Finished(%)"] = 1.0 * finishedNums / nums; | |||
|  |                         } | |||
|  |                         dtTime.Rows.Add(rowTime); | |||
|  |                     } | |||
|  |                     this.ChartUc.CreateChartPunchlistFrom(BLL.ChartControlService.GetDataSourceChartByYijiao(dtTime, "PROGRESS REPORT", "Line", 1100, 600, false)); | |||
|  |                 } | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 dtTime.Columns.Add("日期", typeof(string)); | |||
|  |                 dtTime.Columns.Add("Finished", typeof(string)); | |||
|  |                 if (dates.Count() > 0) | |||
|  |                 { | |||
|  |                     List<DateTime> months = new List<DateTime>(); | |||
|  |                     DateTime startDate = Convert.ToDateTime(dates.First()); | |||
|  |                     DateTime endDate = Convert.ToDateTime(dates.Last()); | |||
|  |                     do | |||
|  |                     { | |||
|  |                         months.Add(startDate); | |||
|  |                         startDate = startDate.AddDays(15); | |||
|  |                     } while (startDate <= endDate); | |||
|  |                     var nums = forms.Count(); | |||
|  |                     foreach (var item in months) | |||
|  |                     { | |||
|  |                         DataRow rowTime = dtTime.NewRow(); | |||
|  |                         Model.SpTDesktopItem newspItem = new Model.SpTDesktopItem(); | |||
|  |                         rowTime["日期"] = string.Format("{0:yyyy-MM-dd}", item); | |||
|  |                         var finishedNums = forms.Count(x => x.PUNCH_ITEM_FINISH_DATE <= item && x.PUNCH_ITEM_STATUS == "Finished"); | |||
|  |                         rowTime["Finished"] = finishedNums; | |||
|  |                         dtTime.Rows.Add(rowTime); | |||
|  |                     } | |||
|  |                     this.ChartUc.CreateChart(BLL.ChartControlService.GetDataSourceChartByYijiao(dtTime, "PROGRESS REPORT", "Line", 1100, 600, false)); | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         protected void rblType_SelectedIndexChanged(object sender, EventArgs e) | |||
|  |         { | |||
|  |             this.AnalyseData(); | |||
|  |         } | |||
|  |     } | |||
|  | } |