201 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			201 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			C#
		
	
	
	
using BLL;
 | 
						|
using Newtonsoft.Json;
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Linq;
 | 
						|
 | 
						|
namespace FineUIPro.Web.common
 | 
						|
{
 | 
						|
    public partial class mainMenu_PDigData : PageBase
 | 
						|
    {
 | 
						|
        protected void Page_Load(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            if (!IsPostBack)
 | 
						|
            {
 | 
						|
                getEmployInOutRecords = Funs.DB.T_d_EmployInOutRecord.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RecordDate.Value == DateTime.Now.Date).ToList();
 | 
						|
                getAllPersons = Funs.DB.SitePerson_Person.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).ToList();
 | 
						|
                getPersons = getAllPersons.Where(x =>x.IsUsed == true && x.InTime <= DateTime.Now && (!x.OutTime.HasValue || x.OutTime > DateTime.Now)).ToList();
 | 
						|
                ///当前现场总人数
 | 
						|
                getSitePerson();             
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #region 当前现场总人数
 | 
						|
        /// <summary>
 | 
						|
        ///  当前现场总人数
 | 
						|
        /// </summary>
 | 
						|
        private void getSitePerson()
 | 
						|
        {
 | 
						|
            var AllCount = getEmployInOutRecords.Count();
 | 
						|
            if (AllCount > 0)
 | 
						|
            {
 | 
						|
                ////总人数
 | 
						|
                this.divperson.InnerHtml = ((AllCount % 10000) / 1000).ToString();
 | 
						|
                this.person00.InnerHtml = ((AllCount % 1000) / 100).ToString();
 | 
						|
                this.person01.InnerHtml = ((AllCount % 100) / 10).ToString();
 | 
						|
                this.person02.InnerHtml = (AllCount % 10).ToString();
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region 项目安全人工时
 | 
						|
        /// <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 = "项目安全人工时";
 | 
						|
                Model.SingleSerie s = new Model.SingleSerie();
 | 
						|
                List<double> listdata = new List<double>();
 | 
						|
 | 
						|
                Model.SingleSerie s2 = new Model.SingleSerie();
 | 
						|
                List<double> listdata2 = new List<double>();
 | 
						|
                var getMonts = SitePerson_MonthReportService.getMonthReports(CurrUser.LoginProjectId, null);
 | 
						|
                foreach (var month in getMonts.OrderBy(x => x.CompileDate))
 | 
						|
                {
 | 
						|
                    listCategories.Add(string.Format("{0:yyyy-MM}", month.CompileDate));
 | 
						|
                    listdata.Add(double.Parse((month.TotalPersonWorkTime ?? 0).ToString()));
 | 
						|
                    listdata2.Add(double.Parse((month.DayWorkTime ?? 0).ToString()));
 | 
						|
                }
 | 
						|
                s.data = listdata;
 | 
						|
                series.Add(s);
 | 
						|
                s2.data = listdata2;
 | 
						|
                series.Add(s2);
 | 
						|
                businessColumn.categories = listCategories;
 | 
						|
                businessColumn.series = series;
 | 
						|
                return JsonConvert.SerializeObject(businessColumn);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
                
 | 
						|
        #region  现场人员
 | 
						|
        /// <summary>
 | 
						|
        /// 
 | 
						|
        /// </summary>
 | 
						|
        public static List<Model.T_d_EmployInOutRecord> getEmployInOutRecords;
 | 
						|
        /// <summary>
 | 
						|
        /// 
 | 
						|
        /// </summary>
 | 
						|
        public static List<Model.SitePerson_Person> getAllPersons;
 | 
						|
        /// <summary>
 | 
						|
        /// 
 | 
						|
        /// </summary>
 | 
						|
        public static List<Model.SitePerson_Person> getPersons;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 按单位统计
 | 
						|
        /// </summary>
 | 
						|
        protected string Four1
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                List<Model.SingleSerie> series = new List<Model.SingleSerie>();
 | 
						|
                Model.BusinessColumn businessColumn = new Model.BusinessColumn();
 | 
						|
                List<string> listCategories = new List<string>();
 | 
						|
                Model.SingleSerie s = new Model.SingleSerie();
 | 
						|
                Model.SingleSerie s2 = new Model.SingleSerie();
 | 
						|
                List<double> listdata = new List<double>();
 | 
						|
                List<double> listdata2 = new List<double>();
 | 
						|
                businessColumn.title = "现场人员";
 | 
						|
                int manCount = 0;
 | 
						|
                var units = getAllPersons.Select(x => x.UnitId).Distinct();
 | 
						|
                if (units.Count() > 0)
 | 
						|
                {                 
 | 
						|
                    foreach (var unitId in units)
 | 
						|
                    {                       
 | 
						|
                        var unitRords = from x in getEmployInOutRecords
 | 
						|
                                        join y in getAllPersons on x.IDCardNo equals y.IdentityCard
 | 
						|
                                        where y.UnitId == unitId && y.PersonId != null && x.UnitId== unitId
 | 
						|
                                        select x;
 | 
						|
                        var unitPersons = getPersons.Where(x => x.UnitId == unitId);
 | 
						|
                        int rcount = unitRords.Distinct().Count();
 | 
						|
                        if (rcount > 0)
 | 
						|
                        {
 | 
						|
                            manCount += rcount;
 | 
						|
                            listCategories.Add(UnitService.GetShortUnitNameByUnitId(unitId));
 | 
						|
                            listdata.Add(rcount);
 | 
						|
                            listdata2.Add(unitPersons.Count());
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
 | 
						|
                int nullCount = getEmployInOutRecords.Count() - manCount;
 | 
						|
                if (nullCount > 0)
 | 
						|
                {
 | 
						|
                    listCategories.Add("未知");
 | 
						|
                    listdata.Add(nullCount);
 | 
						|
                    listdata2.Add(0);
 | 
						|
                }
 | 
						|
                s.data = listdata;
 | 
						|
                series.Add(s);
 | 
						|
 | 
						|
                s2.data = listdata2;
 | 
						|
                series.Add(s2);
 | 
						|
 | 
						|
                businessColumn.categories = listCategories;
 | 
						|
                businessColumn.series = series;
 | 
						|
                return JsonConvert.SerializeObject(businessColumn);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 按岗位统计
 | 
						|
        /// </summary>
 | 
						|
        protected string Four2
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                List<Model.SingleSerie> series = new List<Model.SingleSerie>();
 | 
						|
                Model.BusinessColumn businessColumn = new Model.BusinessColumn();
 | 
						|
                List<string> listCategories = new List<string>();
 | 
						|
                Model.SingleSerie s = new Model.SingleSerie();
 | 
						|
                List<double> listdata = new List<double>();
 | 
						|
                Model.SingleSerie s2 = new Model.SingleSerie();
 | 
						|
                List<double> listdata2 = new List<double>();
 | 
						|
                businessColumn.title = "现场人员";
 | 
						|
                var getTypes = (from x in getEmployInOutRecords
 | 
						|
                                join y in getAllPersons on x.IDCardNo equals y.IdentityCard
 | 
						|
                                join z in Funs.DB.Base_WorkPost on y.WorkPostId equals z.WorkPostId                    
 | 
						|
                                select new { y.WorkPostId,z.WorkPostName }).Distinct();
 | 
						|
                if (getTypes.Count() > 0)
 | 
						|
                {
 | 
						|
                    foreach (var item in getTypes)
 | 
						|
                    {
 | 
						|
                        listCategories.Add(item.WorkPostName ?? "未知");
 | 
						|
                        var unitRords = getEmployInOutRecords.Where(x => x.PostId == item.WorkPostId);
 | 
						|
                        var unitPersons = getPersons.Where(x => x.WorkPostId == item.WorkPostId);
 | 
						|
                        listdata.Add(unitRords.Count());
 | 
						|
                        listdata2.Add(unitPersons.Count());
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    var getpTypes = getPersons.Select(x => x.WorkPostId).Distinct();
 | 
						|
                    foreach (var item in getpTypes)
 | 
						|
                    {
 | 
						|
                        listCategories.Add(WorkPostService.getWorkPostNameById(item));
 | 
						|
                        var unitRords = getEmployInOutRecords.Where(x => x.PostId == item);
 | 
						|
                        var unitPersons = getPersons.Where(x => x.WorkPostId == item);
 | 
						|
                        listdata.Add(unitRords.Count());
 | 
						|
                        listdata2.Add(unitPersons.Count());
 | 
						|
                    }
 | 
						|
                }
 | 
						|
 | 
						|
                s.data = listdata;
 | 
						|
                series.Add(s);
 | 
						|
                s2.data = listdata2;
 | 
						|
                series.Add(s2);
 | 
						|
                businessColumn.categories = listCategories;
 | 
						|
                businessColumn.series = series;
 | 
						|
                return JsonConvert.SerializeObject(businessColumn);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
                
 | 
						|
    }
 | 
						|
} |