76 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
	
using System.Collections.Generic;
 | 
						|
using System.Linq;
 | 
						|
 | 
						|
namespace BLL
 | 
						|
{
 | 
						|
    public static class APIChartAnalysisService
 | 
						|
    {
 | 
						|
        #region 根据类型获取图型数据
 | 
						|
        /// <summary>
 | 
						|
        /// 根据类型获取图型数据
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="type"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static List<Model.ChartAnalysisItem> getChartAnalysisByType(string projectId, string type, string startDate, string endDate)
 | 
						|
        {
 | 
						|
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                List<Model.ChartAnalysisItem> getDataLists = new List<Model.ChartAnalysisItem>();
 | 
						|
                var getHazardRegister = from x in db.HSSE_Hazard_HazardRegister
 | 
						|
                                        where x.ProjectId == projectId
 | 
						|
                                        select x;
 | 
						|
                if (!string.IsNullOrEmpty(startDate))
 | 
						|
                {
 | 
						|
                    var sDate = Funs.GetNewDateTime(startDate);
 | 
						|
                    getHazardRegister = getHazardRegister.Where(x => x.RegisterDate >= sDate);
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrEmpty(endDate))
 | 
						|
                {
 | 
						|
                    var eDate = Funs.GetNewDateTime(endDate);
 | 
						|
                    getHazardRegister = getHazardRegister.Where(x => x.RegisterDate <= eDate);
 | 
						|
                }
 | 
						|
                if (type == "1")
 | 
						|
                {
 | 
						|
                    var getUnitlistIds = getHazardRegister.Select(x => x.ResponsibleUnit).Distinct().ToList();
 | 
						|
                    foreach (var unitItem in getUnitlistIds)
 | 
						|
                    {
 | 
						|
                        var getUnitRegister = getHazardRegister.Where(x => x.ResponsibleUnit == unitItem);
 | 
						|
                        Model.ChartAnalysisItem newItem = new Model.ChartAnalysisItem
 | 
						|
                        {
 | 
						|
                            DataId = unitItem,
 | 
						|
                            Type = type,
 | 
						|
                            DataName = UnitService.GetUnitCodeByUnitId(unitItem),
 | 
						|
                            DataSumCount = getUnitRegister.Count(),
 | 
						|
                            DataCount1 = getUnitRegister.Where(x => x.States == "2" || x.States == "3").Count(),
 | 
						|
                        };
 | 
						|
 | 
						|
                        getDataLists.Add(newItem);
 | 
						|
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                else if (type == "2")
 | 
						|
                {
 | 
						|
                    var getRegisterTypesIds = getHazardRegister.Select(x => x.RegisterTypesId).Distinct().ToList();
 | 
						|
                    foreach (var typeItem in getRegisterTypesIds)
 | 
						|
                    {
 | 
						|
                        var getUnitRegister = getHazardRegister.Where(x => x.RegisterTypesId == typeItem);
 | 
						|
                        Model.ChartAnalysisItem newItem = new Model.ChartAnalysisItem
 | 
						|
                        {
 | 
						|
                            DataId = typeItem,
 | 
						|
                            Type = type,
 | 
						|
                            DataName = db.HSSE_Hazard_HazardRegisterTypes.First(y => y.RegisterTypesId == typeItem).RegisterTypesName,
 | 
						|
                            DataSumCount = getUnitRegister.Count(),
 | 
						|
                            DataCount1 = getUnitRegister.Where(x => x.States == "2" || x.States == "3").Count(),
 | 
						|
                        };
 | 
						|
 | 
						|
                        getDataLists.Add(newItem);
 | 
						|
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                return getDataLists;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
}
 |