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