180 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			180 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using BLL; | |||
|  | using Newtonsoft.Json; | |||
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Data; | |||
|  | using System.Data.SqlClient; | |||
|  | using System.Linq; | |||
|  | using System.Text; | |||
|  | 
 | |||
|  | //using FineUIPro.Web.DataShow; | |||
|  | using Model; | |||
|  | //using System.Runtime.Caching; | |||
|  | using System.Threading.Tasks; | |||
|  | //using System.Web; | |||
|  | //using System.Web.UI; | |||
|  | //using System.Web.UI.WebControls; | |||
|  | //using Org.BouncyCastle.Ocsp; | |||
|  | //using FineUIPro.Web.HJGL.FL; | |||
|  | 
 | |||
|  | namespace FineUIPro.Web.DataShow | |||
|  | { | |||
|  |     public partial class JDStatistics : PageBase | |||
|  |     { | |||
|  |         List<Model.Base_Project> allProjects; | |||
|  |         #region 定义项 | |||
|  |         /// <summary> | |||
|  |         /// 项目主键 | |||
|  |         /// </summary> | |||
|  |         public string ProjectId | |||
|  |         { | |||
|  |             get | |||
|  |             { | |||
|  |                 return (string)ViewState["ProjectId"]; | |||
|  |             } | |||
|  |             set | |||
|  |             { | |||
|  |                 ViewState["ProjectId"] = value; | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  |         protected async void Page_Load(object sender, EventArgs e) | |||
|  |         { | |||
|  |             if (!IsPostBack) | |||
|  |             { | |||
|  |                 allProjects = ProjectService.GetAllProjectDropDownList(); | |||
|  | 
 | |||
|  |                 this.ProjectId = string.Empty; | |||
|  |                 if (this.CurrUser != null && !string.IsNullOrEmpty(this.CurrUser.LoginProjectId)) | |||
|  |                 { | |||
|  |                     this.ProjectId = this.CurrUser.LoginProjectId; | |||
|  |                 } | |||
|  | 
 | |||
|  | 
 | |||
|  |                 //GetJdAsync(); | |||
|  | 
 | |||
|  |                 var projectJDQKTask = GetJdAsync(); | |||
|  |                 var otherTasks = new List<Task> | |||
|  |                 { | |||
|  |                     //GetJdAsync(),// 进度情况 | |||
|  |                     GetMonthJDAsync(),// 月进度 | |||
|  |                     GetWeekJDAsync(),// 周进度 | |||
|  |                 }; | |||
|  | 
 | |||
|  |                 await Task.WhenAll(otherTasks.Concat(new[] { projectJDQKTask })); | |||
|  | 
 | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         #region 进度情况 | |||
|  | 
 | |||
|  |         //protected string ProjectAllJd; | |||
|  |         protected string ProjectJd; | |||
|  |         protected string ProjectMc; | |||
|  |         protected async Task GetJdAsync() | |||
|  |         { | |||
|  |             var list = allProjects; | |||
|  |             if (list.Any()) | |||
|  |             { | |||
|  |                 var progressCompletions = from x in Funs.DB.JDGL_ProgressCompletion select x; | |||
|  |                 foreach (var item in list) | |||
|  |                 { | |||
|  |                     var pCs = progressCompletions.Where(x => x.ProjectId == item.ProjectId).ToList(); | |||
|  | 
 | |||
|  |                     //ProjectAllJd += "'" + pCs.Sum(x => x.PlanNum ?? 0).ToString("0.##") + "',"; | |||
|  |                     ProjectJd += "'" + pCs.Sum(x => x.RealNum ?? 0).ToString("0.##") + "',"; | |||
|  |                     ProjectMc += "'" + item.ShortName + "',"; | |||
|  |                 } | |||
|  |                 //ProjectAllJd = ProjectAllJd.TrimEnd(','); | |||
|  |                 ProjectJd = ProjectJd.TrimEnd(','); | |||
|  |                 ProjectMc = ProjectMc.TrimEnd(','); | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  | 
 | |||
|  |         #region 月进度 | |||
|  | 
 | |||
|  |         protected string MonthJD; | |||
|  |         /// <summary> | |||
|  |         /// 月进度 | |||
|  |         /// </summary> | |||
|  |         protected async Task GetMonthJDAsync() | |||
|  |         { | |||
|  |             List<Model.SingleSerie> series = new List<Model.SingleSerie>(); | |||
|  |             Model.BusinessColumn businessColumn = new Model.BusinessColumn(); | |||
|  |             List<string> listCategories = new List<string>(); | |||
|  |             businessColumn.title = "月进度完成情况"; | |||
|  |             businessColumn.xFontNum = 8; | |||
|  |             var date = DateTime.Now.AddMonths(1); | |||
|  |             var allItems = from x in Funs.DB.JDGL_MonthPlan | |||
|  |                            where x.Months < new DateTime(date.Year, date.Month, 1) | |||
|  |                            select x; | |||
|  |             Model.SingleSerie s = new Model.SingleSerie(); | |||
|  |             Model.SingleSerie s2 = new Model.SingleSerie(); | |||
|  |             List<double> listdata = new List<double>(); | |||
|  |             List<double> listdata2 = new List<double>(); | |||
|  |             int okNum = 0; | |||
|  |             foreach (var pro in allProjects) | |||
|  |             { | |||
|  |                 listCategories.Add(pro.ShortName); | |||
|  |                 var proItems = allItems.Where(x => x.ProjectId == pro.ProjectId); | |||
|  |                 okNum = proItems.Where(x => x.RealDate.HasValue).Count(); | |||
|  |                 listdata.Add(proItems.Count() - okNum); | |||
|  |                 listdata2.Add(okNum); | |||
|  |             } | |||
|  |             s.data = listdata; | |||
|  |             s2.data = listdata2; | |||
|  |             series.Add(s); | |||
|  |             series.Add(s2); | |||
|  |             businessColumn.categories = listCategories; | |||
|  |             businessColumn.series = series; | |||
|  |             MonthJD = JsonConvert.SerializeObject(businessColumn); | |||
|  |         } | |||
|  | 
 | |||
|  |         #endregion | |||
|  | 
 | |||
|  | 
 | |||
|  |         #region 周进度 | |||
|  | 
 | |||
|  |         protected string WeekJD; | |||
|  |         /// <summary> | |||
|  |         /// 周进度 | |||
|  |         /// </summary> | |||
|  |         protected async Task GetWeekJDAsync() | |||
|  |         { | |||
|  |             List<Model.SingleSerie> series = new List<Model.SingleSerie>(); | |||
|  |             Model.BusinessColumn businessColumn = new Model.BusinessColumn(); | |||
|  |             List<string> listCategories = new List<string>(); | |||
|  |             businessColumn.title = "周进度完成情况"; | |||
|  |             businessColumn.xFontNum = 8; | |||
|  |             var date = DateTime.Now.AddMonths(1); | |||
|  |             var allItems = from x in Funs.DB.JDGL_WeekPlan | |||
|  |                            where x.EndDate < new DateTime(date.Year, date.Month, 1) | |||
|  |                            select x; | |||
|  |             Model.SingleSerie s = new Model.SingleSerie(); | |||
|  |             Model.SingleSerie s2 = new Model.SingleSerie(); | |||
|  |             List<double> listdata = new List<double>(); | |||
|  |             List<double> listdata2 = new List<double>(); | |||
|  |             int okNum = 0; | |||
|  |             foreach (var pro in allProjects) | |||
|  |             { | |||
|  |                 listCategories.Add(pro.ShortName); | |||
|  |                 var proItems = allItems.Where(x => x.ProjectId == pro.ProjectId); | |||
|  |                 okNum = proItems.Where(x => x.IsOK.HasValue && x.IsOK == true).Count(); | |||
|  |                 listdata.Add(proItems.Count() - okNum); | |||
|  |                 listdata2.Add(okNum); | |||
|  |             } | |||
|  |             s.data = listdata; | |||
|  |             s2.data = listdata2; | |||
|  |             series.Add(s); | |||
|  |             series.Add(s2); | |||
|  |             businessColumn.categories = listCategories; | |||
|  |             businessColumn.series = series; | |||
|  |             WeekJD = JsonConvert.SerializeObject(businessColumn); | |||
|  |         } | |||
|  | 
 | |||
|  |         #endregion | |||
|  | 
 | |||
|  |     } | |||
|  | } |