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