CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/DataShow/JDStatistics.aspx.cs

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