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