514 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			514 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			C#
		
	
	
	
using Newtonsoft.Json;
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Linq;
 | 
						|
using System.Web.UI.WebControls;
 | 
						|
using BLL;
 | 
						|
using System.Data;
 | 
						|
using System.Data.SqlClient;
 | 
						|
using Model;
 | 
						|
using System.Linq;
 | 
						|
using NPOI.SS.Formula.Functions;
 | 
						|
using NPOI.XSSF.Streaming.Values;
 | 
						|
using System.Web.UI.HtmlControls;
 | 
						|
using System.Text;
 | 
						|
using FineUIPro.Web.SysManage;
 | 
						|
 | 
						|
namespace FineUIPro.Web
 | 
						|
{
 | 
						|
    public partial class mainMenu_PGJSX : PageBase
 | 
						|
    {
 | 
						|
        #region 定义项
 | 
						|
        /// <summary>
 | 
						|
        /// 项目主键
 | 
						|
        /// </summary>
 | 
						|
        public string ProjectId
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                return (string)ViewState["ProjectId"];
 | 
						|
            }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                ViewState["ProjectId"] = value;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
        protected void Page_Load(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            if (!IsPostBack)
 | 
						|
            {
 | 
						|
                this.ProjectId = string.Empty;
 | 
						|
                if (this.CurrUser != null && !string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
 | 
						|
                {
 | 
						|
                    this.ProjectId = this.CurrUser.LoginProjectId;
 | 
						|
                }
 | 
						|
                BindGrid();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #region 关键事项统计
 | 
						|
 | 
						|
        #region 关键事项
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        ///  关键事项
 | 
						|
        /// </summary>
 | 
						|
        protected string One
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                var db = new Model.SGGLDB(Funs.ConnString);
 | 
						|
                List<Model.SingleSerie> series = new List<Model.SingleSerie>();
 | 
						|
                Model.BusinessColumn businessColumn = new Model.BusinessColumn();
 | 
						|
 | 
						|
                Model.SingleSerie s = new Model.SingleSerie();
 | 
						|
                List<double> listdata = new List<double>();
 | 
						|
 | 
						|
                businessColumn.title = "关键事项关闭率";
 | 
						|
                var allItems = from x in db.GJSX
 | 
						|
                               where x.ProjectId == this.CurrUser.LoginProjectId && x.State != "1"
 | 
						|
                               orderby x.GJSXID
 | 
						|
                               select x;
 | 
						|
                int closeNum = allItems.Where(x => x.State == "0").Count();
 | 
						|
                listdata.Add(closeNum);
 | 
						|
                listdata.Add(allItems.Count() - closeNum);
 | 
						|
                double closureRate = 0;
 | 
						|
                if (allItems.Any())
 | 
						|
                {
 | 
						|
                    closureRate = (double)closeNum / (double)allItems.Count();
 | 
						|
                }
 | 
						|
                listdata.Add(Math.Round(closureRate * 100, 2));
 | 
						|
 | 
						|
                s.data = listdata;
 | 
						|
                series.Add(s);
 | 
						|
                businessColumn.series = series;
 | 
						|
                return JsonConvert.SerializeObject(businessColumn);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 关键事项统计——按事项类别
 | 
						|
        /// </summary>
 | 
						|
        protected string Two
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                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 gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
 | 
						|
                var allItems = from x in Funs.DB.GJSX
 | 
						|
                               where x.ProjectId == this.ProjectId && x.State != "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 closeNum = 0;
 | 
						|
                foreach (var type in gjsxTypes)
 | 
						|
                {
 | 
						|
                    listCategories.Add(type.GJSXTypeName);
 | 
						|
                    var typeItems = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID));
 | 
						|
                    closeNum = typeItems.Where(x => x.State == "0").Count();
 | 
						|
                    listdata.Add(typeItems.Count() - closeNum);
 | 
						|
                    listdata2.Add(closeNum);
 | 
						|
                }
 | 
						|
                s.data = listdata;
 | 
						|
                s2.data = listdata2;
 | 
						|
                series.Add(s);
 | 
						|
                series.Add(s2);
 | 
						|
                businessColumn.categories = listCategories;
 | 
						|
                businessColumn.series = series;
 | 
						|
                return JsonConvert.SerializeObject(businessColumn);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 关键事项统计——按责任人
 | 
						|
        /// </summary>
 | 
						|
        protected string Five
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                List<Model.SingleSerie> series = new List<Model.SingleSerie>();
 | 
						|
                Model.BusinessColumn businessColumn = new Model.BusinessColumn();
 | 
						|
                List<string> listCategories = new List<string>();
 | 
						|
                businessColumn.title = "关键事项跟踪-按责任人统计";
 | 
						|
                businessColumn.xFontNum = 5;
 | 
						|
                //var userIds = BLL.GJSXService.GetGJSXUserList(this.ProjectId);
 | 
						|
                var allItems = from x in Funs.DB.GJSX
 | 
						|
                               where x.ProjectId == this.ProjectId && x.State != "1"
 | 
						|
                               select x;
 | 
						|
                //按照未关闭数取前10
 | 
						|
                var groupedUser = (from x in Funs.DB.GJSX
 | 
						|
                                   where x.ProjectId == this.ProjectId && x.State != "0" && x.State != "1"
 | 
						|
                                   select x).GroupBy(p => p.User_Acceptance)
 | 
						|
                          .Select(g => new
 | 
						|
                          {
 | 
						|
                              UserId = g.Key,
 | 
						|
                              Count = g.Count()
 | 
						|
                          })
 | 
						|
                          .OrderByDescending(x => x.Count)
 | 
						|
                          .Take(10)
 | 
						|
                          .ToList();
 | 
						|
 | 
						|
                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 closeNum = 0;
 | 
						|
                foreach (var userid in groupedUser)
 | 
						|
                {
 | 
						|
                    listCategories.Add(UserService.GetUserNameByUserId(userid.UserId));
 | 
						|
                    var typeItems = allItems.Where(x => x.User_Acceptance == userid.UserId);
 | 
						|
                    closeNum = typeItems.Where(x => x.State == "0").Count();
 | 
						|
                    listdata.Add(typeItems.Count() - closeNum);
 | 
						|
                    listdata2.Add(closeNum);
 | 
						|
                }
 | 
						|
                s.data = listdata;
 | 
						|
                s2.data = listdata2;
 | 
						|
                series.Add(s);
 | 
						|
                series.Add(s2);
 | 
						|
                businessColumn.categories = listCategories;
 | 
						|
                businessColumn.series = series;
 | 
						|
                return JsonConvert.SerializeObject(businessColumn);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region  超期统计
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 超期统计表格
 | 
						|
        /// </summary>
 | 
						|
        private void BindGrid()
 | 
						|
        {
 | 
						|
            Model.SGGLDB db = Funs.DB;
 | 
						|
            var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
 | 
						|
            var allItems = from x in db.GJSX
 | 
						|
                           where x.ProjectId == this.ProjectId && x.State != "1" && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate) 
 | 
						|
                           select x;
 | 
						|
            StringBuilder sb = new StringBuilder();
 | 
						|
            sb.Append("<table id=\"myTable\" class=\"myTableClass\" > ");
 | 
						|
            sb.Append("<thead>");
 | 
						|
            sb.Append("<tr>");
 | 
						|
            sb.Append("<th class=\"tab-title\" colspan=\"6\">关键事项超期天数统计(累计)</th>");
 | 
						|
            sb.Append("</tr>");
 | 
						|
            sb.Append("<tr>");
 | 
						|
            sb.Append("<th class=\"tab-header\">事项类别</th>");
 | 
						|
            sb.Append("<th class=\"tab-header\">不足一周</th>");
 | 
						|
            sb.Append("<th class=\"tab-header\">超期一周</th>");
 | 
						|
            sb.Append("<th class=\"tab-header\">超期两周</th>");
 | 
						|
            sb.Append("<th class=\"tab-header\">超期三周</th>");
 | 
						|
            sb.Append("<th class=\"tab-header\">超一个月</th>");
 | 
						|
            sb.Append("</tr>");
 | 
						|
            sb.Append("</thead>");
 | 
						|
            sb.Append("<tbody>");
 | 
						|
            foreach (var type in gjsxTypes)
 | 
						|
            {
 | 
						|
                int day1 = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID) && (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(7)).Count();
 | 
						|
                int day7 = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID) && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(7) && (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(14)).Count();
 | 
						|
                int day14 = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID) && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(14) && (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(21)).Count();
 | 
						|
                int day21 = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID) && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(21) && (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(28)).Count();
 | 
						|
                int day30 = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID) && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(28)).Count();
 | 
						|
                sb.Append("<tr>");
 | 
						|
                sb.Append($"<td>{type.GJSXTypeName}</td>");
 | 
						|
                sb.Append($"<td>{day1}</td>");
 | 
						|
                sb.Append($"<td>{day7}</td>");
 | 
						|
                sb.Append($"<td>{day14}</td>");
 | 
						|
                sb.Append($"<td>{day21}</td>");
 | 
						|
                sb.Append($"<td>{day30}</td>");
 | 
						|
                sb.Append("</tr>");
 | 
						|
            }
 | 
						|
            sb.Append("</tbody>");
 | 
						|
            sb.Append("</table>");
 | 
						|
            myDiv.InnerHtml = sb.ToString();
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 分页
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
 | 
						|
        {
 | 
						|
            BindGrid();
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 排序
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="sender"></param>
 | 
						|
        /// <param name="e"></param>
 | 
						|
        protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e)
 | 
						|
        {
 | 
						|
            BindGrid();
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 超期统计——不足一周
 | 
						|
        /// </summary>
 | 
						|
        protected string Three
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                List<Model.SingleSerie> series = new List<Model.SingleSerie>();
 | 
						|
                Model.BusinessColumn businessColumn = new Model.BusinessColumn();
 | 
						|
                List<string> listCategories = new List<string>();
 | 
						|
                businessColumn.title = "关键事项超期天数统计(累计)";
 | 
						|
                businessColumn.xFontNum = 5;
 | 
						|
                Model.SGGLDB db = Funs.DB;
 | 
						|
                var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
 | 
						|
                var allItems = from x in Funs.DB.GJSX
 | 
						|
                               where x.ProjectId == this.ProjectId && x.State != "1"
 | 
						|
                               && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate)
 | 
						|
                               && (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(7)
 | 
						|
                               select x;
 | 
						|
                Model.SingleSerie s = new Model.SingleSerie();
 | 
						|
                Model.SingleSerie s2 = new Model.SingleSerie();
 | 
						|
                List<double> listdata = new List<double>();
 | 
						|
                foreach (var type in gjsxTypes)
 | 
						|
                {
 | 
						|
                    listCategories.Add(type.GJSXTypeName);
 | 
						|
                    var typelst = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID)).ToList();
 | 
						|
                    listdata.Add(typelst.Count());
 | 
						|
                }
 | 
						|
                s.data = listdata;
 | 
						|
                series.Add(s);
 | 
						|
                businessColumn.categories = listCategories;
 | 
						|
                businessColumn.series = series;
 | 
						|
                return JsonConvert.SerializeObject(businessColumn);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 超期统计——超期一周
 | 
						|
        /// </summary>
 | 
						|
        protected string Three2
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                List<Model.SingleSerie> series = new List<Model.SingleSerie>();
 | 
						|
                Model.BusinessColumn businessColumn = new Model.BusinessColumn();
 | 
						|
                List<string> listCategories = new List<string>();
 | 
						|
                businessColumn.title = "关键事项超期天数统计(累计)";
 | 
						|
                businessColumn.xFontNum = 5;
 | 
						|
                Model.SGGLDB db = Funs.DB;
 | 
						|
                var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
 | 
						|
                var allItems = from x in Funs.DB.GJSX
 | 
						|
                               where x.ProjectId == this.ProjectId && x.State != "1"
 | 
						|
                               && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(7)
 | 
						|
                               && (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(14)
 | 
						|
                               select x;
 | 
						|
                Model.SingleSerie s = new Model.SingleSerie();
 | 
						|
                Model.SingleSerie s2 = new Model.SingleSerie();
 | 
						|
                List<double> listdata = new List<double>();
 | 
						|
                foreach (var type in gjsxTypes)
 | 
						|
                {
 | 
						|
                    listCategories.Add(type.GJSXTypeName);
 | 
						|
                    var typelst = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID)).ToList();
 | 
						|
                    listdata.Add(typelst.Count());
 | 
						|
                }
 | 
						|
                s.data = listdata;
 | 
						|
                series.Add(s);
 | 
						|
                businessColumn.categories = listCategories;
 | 
						|
                businessColumn.series = series;
 | 
						|
                return JsonConvert.SerializeObject(businessColumn);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 超期统计——超期两周
 | 
						|
        /// </summary>
 | 
						|
        protected string Three3
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                List<Model.SingleSerie> series = new List<Model.SingleSerie>();
 | 
						|
                Model.BusinessColumn businessColumn = new Model.BusinessColumn();
 | 
						|
                List<string> listCategories = new List<string>();
 | 
						|
                businessColumn.title = "关键事项超期天数统计(累计)";
 | 
						|
                businessColumn.xFontNum = 5;
 | 
						|
                Model.SGGLDB db = Funs.DB;
 | 
						|
                var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
 | 
						|
                var allItems = from x in Funs.DB.GJSX
 | 
						|
                               where x.ProjectId == this.ProjectId && x.State != "1"
 | 
						|
                               && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(14)
 | 
						|
                               && (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(21)
 | 
						|
                               select x;
 | 
						|
                Model.SingleSerie s = new Model.SingleSerie();
 | 
						|
                Model.SingleSerie s2 = new Model.SingleSerie();
 | 
						|
                List<double> listdata = new List<double>();
 | 
						|
                foreach (var type in gjsxTypes)
 | 
						|
                {
 | 
						|
                    listCategories.Add(type.GJSXTypeName);
 | 
						|
                    var typelst = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID)).ToList();
 | 
						|
                    listdata.Add(typelst.Count());
 | 
						|
                }
 | 
						|
                s.data = listdata;
 | 
						|
                series.Add(s);
 | 
						|
                businessColumn.categories = listCategories;
 | 
						|
                businessColumn.series = series;
 | 
						|
                return JsonConvert.SerializeObject(businessColumn);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 超期统计——超期三周
 | 
						|
        /// </summary>
 | 
						|
        protected string Three4
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                List<Model.SingleSerie> series = new List<Model.SingleSerie>();
 | 
						|
                Model.BusinessColumn businessColumn = new Model.BusinessColumn();
 | 
						|
                List<string> listCategories = new List<string>();
 | 
						|
                businessColumn.title = "关键事项超期天数统计(累计)";
 | 
						|
                businessColumn.xFontNum = 5;
 | 
						|
                Model.SGGLDB db = Funs.DB;
 | 
						|
                var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
 | 
						|
                var allItems = from x in Funs.DB.GJSX
 | 
						|
                               where x.ProjectId == this.ProjectId && x.State != "1"
 | 
						|
                               && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(21)
 | 
						|
                               && (x.CloseDate ?? DateTime.Now) < Convert.ToDateTime(x.CompleteDate).AddDays(30)
 | 
						|
                               select x;
 | 
						|
                Model.SingleSerie s = new Model.SingleSerie();
 | 
						|
                Model.SingleSerie s2 = new Model.SingleSerie();
 | 
						|
                List<double> listdata = new List<double>();
 | 
						|
                foreach (var type in gjsxTypes)
 | 
						|
                {
 | 
						|
                    listCategories.Add(type.GJSXTypeName);
 | 
						|
                    var typelst = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID)).ToList();
 | 
						|
                    listdata.Add(typelst.Count());
 | 
						|
                }
 | 
						|
                s.data = listdata;
 | 
						|
                series.Add(s);
 | 
						|
                businessColumn.categories = listCategories;
 | 
						|
                businessColumn.series = series;
 | 
						|
                return JsonConvert.SerializeObject(businessColumn);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 超期统计——超期一个月
 | 
						|
        /// </summary>
 | 
						|
        protected string Three5
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                List<Model.SingleSerie> series = new List<Model.SingleSerie>();
 | 
						|
                Model.BusinessColumn businessColumn = new Model.BusinessColumn();
 | 
						|
                List<string> listCategories = new List<string>();
 | 
						|
                businessColumn.title = "关键事项超期天数统计(累计)";
 | 
						|
                businessColumn.xFontNum = 5;
 | 
						|
                Model.SGGLDB db = Funs.DB;
 | 
						|
                var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
 | 
						|
                var allItems = from x in Funs.DB.GJSX
 | 
						|
                               where x.ProjectId == this.ProjectId && x.State != "1"
 | 
						|
                               && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate).AddDays(30)
 | 
						|
                               select x;
 | 
						|
                Model.SingleSerie s = new Model.SingleSerie();
 | 
						|
                Model.SingleSerie s2 = new Model.SingleSerie();
 | 
						|
                List<double> listdata = new List<double>();
 | 
						|
                foreach (var type in gjsxTypes)
 | 
						|
                {
 | 
						|
                    listCategories.Add(type.GJSXTypeName);
 | 
						|
                    var typelst = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID)).ToList();
 | 
						|
                    listdata.Add(typelst.Count());
 | 
						|
                }
 | 
						|
                s.data = listdata;
 | 
						|
                series.Add(s);
 | 
						|
                businessColumn.categories = listCategories;
 | 
						|
                businessColumn.series = series;
 | 
						|
                return JsonConvert.SerializeObject(businessColumn);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region  超期平均时间统计
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 超期平均时间统计
 | 
						|
        /// </summary>
 | 
						|
        protected string Four
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                List<Model.SingleSerie> series = new List<Model.SingleSerie>();
 | 
						|
                Model.BusinessColumn businessColumn = new Model.BusinessColumn();
 | 
						|
                List<string> listCategories = new List<string>();
 | 
						|
                businessColumn.title = "关键事项——超期平均时间";
 | 
						|
                businessColumn.xFontNum = 5;
 | 
						|
                Model.SGGLDB db = Funs.DB;
 | 
						|
                List<double> listdata = new List<double>();
 | 
						|
                List<double> listdata2 = new List<double>();
 | 
						|
                List<double> listdata3 = new List<double>();
 | 
						|
                Model.SingleSerie s = new Model.SingleSerie();
 | 
						|
                Model.SingleSerie s2 = new Model.SingleSerie();
 | 
						|
                Model.SingleSerie s3 = new Model.SingleSerie();
 | 
						|
 | 
						|
                var gjsxTypes = BLL.GJSXTypeService.GetGJSXTypeList();
 | 
						|
                //全平台
 | 
						|
                var overallItems = from x in Funs.DB.GJSX
 | 
						|
                                   where (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate) && x.State != "1"
 | 
						|
                                   select new
 | 
						|
                                   {
 | 
						|
                                       x.GJSXTypeId,
 | 
						|
                                       DiffDay = (double)((x.CloseDate ?? DateTime.Now) - Convert.ToDateTime(x.CompleteDate)).Days //+ 1
 | 
						|
                                   };
 | 
						|
                //本项目
 | 
						|
                var allItems = from x in Funs.DB.GJSX
 | 
						|
                               where x.ProjectId == this.ProjectId && x.State != "1"
 | 
						|
                               && (x.CloseDate ?? DateTime.Now) > Convert.ToDateTime(x.CompleteDate)
 | 
						|
                               select new
 | 
						|
                               {
 | 
						|
                                   x.GJSXTypeId,
 | 
						|
                                   DiffDay = (double)((x.CloseDate ?? DateTime.Now) - Convert.ToDateTime(x.CompleteDate)).Days //+ 1
 | 
						|
                               };
 | 
						|
                //全平台平均超期时间
 | 
						|
                double overallAverageDiffDay = 0;
 | 
						|
                if (overallItems.Any())
 | 
						|
                {
 | 
						|
                    overallAverageDiffDay = Math.Round(overallItems.Average(p => p.DiffDay), 1);
 | 
						|
                }
 | 
						|
                listdata3.Add(overallAverageDiffDay);
 | 
						|
                s3.data = listdata3;
 | 
						|
                //项目平均超期时间
 | 
						|
                double averageDiffDay = 0;
 | 
						|
                if (allItems.Any())
 | 
						|
                {
 | 
						|
                    averageDiffDay = Math.Round(allItems.Average(p => p.DiffDay), 1);
 | 
						|
                }
 | 
						|
                listdata2.Add(averageDiffDay);
 | 
						|
                s2.data = listdata2;
 | 
						|
 | 
						|
                //各事项类别超期平均时间
 | 
						|
                foreach (var type in gjsxTypes)
 | 
						|
                {
 | 
						|
                    listCategories.Add(type.GJSXTypeName);
 | 
						|
                    var typelst = allItems.Where(x => x.GJSXTypeId.Contains(type.GJSXTypeID)).ToList();
 | 
						|
                    double averageTypeDiffDay = 0;
 | 
						|
                    if (typelst.Any())
 | 
						|
                    {
 | 
						|
                        averageTypeDiffDay = Math.Round(typelst.Average(p => p.DiffDay), 1);
 | 
						|
                    }
 | 
						|
                    listdata.Add(averageTypeDiffDay);
 | 
						|
                }
 | 
						|
                s.data = listdata;
 | 
						|
                series.Add(s);
 | 
						|
                series.Add(s2);
 | 
						|
                series.Add(s3);
 | 
						|
                businessColumn.categories = listCategories;
 | 
						|
                businessColumn.series = series;
 | 
						|
                return JsonConvert.SerializeObject(businessColumn);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
} |