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