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 allProjects; #region 定义项 /// /// 项目主键 /// 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 { //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; /// /// 月进度 /// protected async Task GetMonthJDAsync() { List series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); 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 listdata = new List(); List listdata2 = new List(); 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; /// /// 周进度 /// protected async Task GetWeekJDAsync() { List series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); List listCategories = new List(); 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 listdata = new List(); List listdata2 = new List(); 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 } }