Example #1
0
 public ResultEnergyAnalyse GetEnergyAnalyseLineChart(QueryAnalyse query)
 {
     var pAction = new ExecuteProcess();
     try
     {
         var result = new NTS.WEB.BLL.Charts().GetEnergyAnalyseLineChart(query);
         if (result == null)
         {
             pAction.Success = false;
             pAction.ExceptionMsg = "暂无数据信息";
             return new ResultEnergyAnalyse() { ActionInfo = pAction };
         }
         pAction.Success = true;
         result.ActionInfo = pAction;
         return result;
     }
     catch (Exception e)
     {
         pAction.Success = false;
         pAction.ExceptionMsg = e.Message;
         return new ResultEnergyAnalyse() { ActionInfo = pAction };
     }
 }
Example #2
0
        public ResultEnergyAnalyse GetEnergyAnalyseLineChart_OLD(QueryAnalyse query)
        {
            try
            {

                VerifyPersonOrAreaExist(query);
                #region 返回对象定义
                ResultEnergyAnalyse result = new ResultEnergyAnalyse()
                {
                    OrderLst = new List<EnergyOrder>(),
                    series = new List<EneryAnalyseSeries>()

                };
                result.series.Add(new EneryAnalyseSeries() { data = new List<decimal>() });
                #endregion

                List<Model.Itemcode> itemCodeList = new List<Model.Itemcode>();
                if (query.IsDevice == 0)
                {
                    if (query.ItemCode == "00000")
                    {//总能耗
                        itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0 ", " order by ItemcodeID");
                        result.Unit = "T";//标准煤单位
                        result.series[0].name = "总能耗";
                    }
                    else
                    {
                        itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
                        if (itemCodeList.Count > 0)
                        {
                            result.Unit = itemCodeList[0].Unit;//单个分类分项单位
                            result.series[0].name = itemCodeList[0].ItemCodeName;

                            //var itemchildCodeList = new BLL.Itemcode().GetItemcodeList(string.Format(" and ParentID={0} ", itemCodeList[0].ItemcodeID), " order by ItemcodeID");

                            //if (itemchildCodeList.Count > 0)
                            //{
                            //    itemCodeList = itemchildCodeList;
                            //}
                        }

                    }
                }
                else
                {
                    var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid");
                    itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + deviceList[0].ItemCodeID + "'", " order by ItemcodeID");
                    if (itemCodeList.Count > 0)
                    {
                        result.Unit = itemCodeList[0].Unit;//单个分类分项单位
                        result.series[0].name = itemCodeList[0].ItemCodeName;
                    }
                    if (query.ItemCode == "00000")
                    {//总能耗

                        result.Unit = "T";//标准煤单位
                        result.series[0].name = "总能耗";
                    }

                }

                switch (query.QueryType)
                {
                    case EnergyAnalyseQueryType.Convert2Co2:
                    case EnergyAnalyseQueryType.Convert2Coal:
                        result.Unit = "T";//标准煤单位
                        break;
                    case EnergyAnalyseQueryType.Convert2Money:
                        result.Unit = "元";//标准煤单位
                        break;
                }

                DateTime tempStartTime = query.StartTime;
                DateTime tempEndTime = query.EndTime;
                switch (query.QueryType)
                {
                    case EnergyAnalyseQueryType.YearCompare://同比值
                        tempStartTime = tempStartTime.AddYears(-1);
                        tempEndTime = tempEndTime.AddYears(-1);
                        break;
                    case EnergyAnalyseQueryType.MonthCompare://环比值
                        tempStartTime = tempStartTime.AddMonths(-1);
                        tempEndTime = tempEndTime.AddMonths(-1);

                        break;
                }
                Dictionary<string, decimal> tempConvert = new Dictionary<string, decimal>();
                Dictionary<string, decimal> tempConvertHour = new Dictionary<string, decimal>();
                var model = new BaseQueryModel();
                model.IsDevice = query.IsDevice;
                model.ObjectList = new List<int>();

                model.ObjectList = new List<int>() { query.ObjectId };

                //if (model.IsDevice == 0)
                //{//区域
                //    model.ObjectList = new List<int>() { query.ObjectId };
                //}
                //else
                //{
                //    var device = new BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid");
                //    if (device.Count > 0)
                //    {
                //        model.ObjectList = (from p in device select p.DeviceID).ToList<int>();
                //    }
                //}
                //model.Unit = GetUnit(query.StartTime, query.EndTime);
                model.Unit = BaseTool.GetChartUnit(query.particle);
                if (model.Unit == ChartUnit.unit_month)
                {
                    model.Starttime = Convert.ToDateTime(tempStartTime.ToString("yyyy-MM-1"));
                    model.Endtime = Convert.ToDateTime(tempEndTime.ToString("yyyy-MM-1"));
                }
                else
                {
                    model.Starttime = tempStartTime;
                    model.Endtime = tempEndTime;
                }
                int templastmonthdays = 0;
                switch (model.Unit)
                {
                    case ChartUnit.unit_month:
                        for (DateTime i = model.Starttime; i <= model.Endtime; i = i.AddMonths(1))
                        {
                            tempConvert.Add(i.ToString("yyyy-MM-dd"), 0);
                        }
                        break;
                    case ChartUnit.unit_hour:
                        for (DateTime i = model.Starttime; i < model.Endtime.AddDays(1); i = i.AddHours(1))
                        {
                            tempConvert.Add(i.ToString("yyyy-MM-dd HH:00:00"), 0);
                        }
                        break;
                    case ChartUnit.unit_day:
                        if ((DateTime.Now- model.Endtime).Days>0)
                        {
                            for (DateTime i = model.Starttime; i <= model.Endtime; i = i.AddDays(1))
                            {
                                tempConvert.Add(i.ToString(("yyyy-MM-dd")), 0);
                            }
                        }
                        else
                        {
                            for (DateTime i = model.Starttime; i <= model.Endtime.AddDays(-1); i = i.AddDays(1))
                            {
                                tempConvert.Add(i.ToString(("yyyy-MM-dd")), 0);
                            }
                            for (DateTime i = model.Endtime; i <= DateTime.Now; i = i.AddHours(1))
                            {
                                tempConvertHour.Add(i.ToString("yyyy-MM-dd HH:00:00"), 0);
                            }

                        }

                        templastmonthdays = (model.Endtime - model.Starttime).Days;
                        break;
                }
                string objName = "";
                foreach (var item in itemCodeList)
                {
                    model.ItemCode = item.ItemCodeNumber;

                    BaseResult resList = _reportBll.GetBaseEneryDataList(model, query.ObjType == AreaType.Liquid ? true : false);

                    foreach (var r in resList.BaseLayerObjectResults)
                    {
                        if (model.IsDevice == 0)
                        {
                            objName = r.Value.baseLayerObject.LayerObjectName;//取区域名称
                        }
                        else
                        {
                            objName = r.Value.device.DeviceName;
                        }
                        foreach (var rr in r.Value.Datas)
                        {
                            if (query.ItemCode == "00000")
                            {
                                switch (query.QueryType)
                                {
                                    case EnergyAnalyseQueryType.Default://默认
                                    case EnergyAnalyseQueryType.YearCompare://默认
                                    case EnergyAnalyseQueryType.MonthCompare://默认
                                        tempConvert[rr.DatePick] += rr.CoalDataValue;
                                        break;
                                    case EnergyAnalyseQueryType.UnitArea://单位面积
                                        tempConvert[rr.DatePick] += rr.CoalDataValue / decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString());

                                        break;
                                    case EnergyAnalyseQueryType.UnitPerson://人均
                                        tempConvert[rr.DatePick] += rr.CoalDataValue / decimal.Parse(r.Value.baseLayerObject.PersonNum.ToString());
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Coal://
                                        tempConvert[rr.DatePick] += rr.CoalDataValue;
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Co2://
                                        tempConvert[rr.DatePick] += rr.Co2DataValue;
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Money://
                                        tempConvert[rr.DatePick] += rr.MoneyDataValue;
                                        break;
                                }
                            }
                            else
                            {
                                switch (query.QueryType)
                                {
                                    case EnergyAnalyseQueryType.Default://默认
                                    case EnergyAnalyseQueryType.YearCompare://默认
                                    case EnergyAnalyseQueryType.MonthCompare://默认
                                        tempConvert[rr.DatePick] += rr.DataValue;
                                        break;
                                    case EnergyAnalyseQueryType.UnitArea://单位面积
                                        tempConvert[rr.DatePick] += rr.DataValue / decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString());

                                        break;
                                    case EnergyAnalyseQueryType.UnitPerson://人均
                                        tempConvert[rr.DatePick] += rr.DataValue / decimal.Parse(r.Value.baseLayerObject.PersonNum.ToString());
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Coal://
                                        tempConvert[rr.DatePick] += rr.CoalDataValue;
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Co2://
                                        tempConvert[rr.DatePick] += rr.Co2DataValue;
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Money://
                                        tempConvert[rr.DatePick] += rr.MoneyDataValue;
                                        break;
                                }

                            }
                        }
                    }
                }
                int order = 1;
                foreach (var item in tempConvert)
                {

                    var time = item.Key;
                    if (model.Unit == ChartUnit.unit_month)
                    {
                        time = Convert.ToDateTime(time).ToString("yyyy-MM");
                    }

                    decimal value = decimal.Round(item.Value, 2);
                    result.series[0].data.Add(value);
                    result.OrderLst.Add(new EnergyOrder()
                    {
                        Order = order,
                        Tm = time,
                        Obj = objName,
                        Val = value,
                        EneType = result.series[0].name
                        // EneType =itemCodeList.Count > 1 ? "总能耗" : itemCodeList[0].ItemCodeName

                    });
                    order++;
                }
                if (query.QueryType == EnergyAnalyseQueryType.MonthCompare)
                {
                    int tempcurrentdays = (query.EndTime - query.StartTime).Days;
                    //int index = (28 - query.StartTime.Day) < 0 ? 0 : (28 - query.StartTime.Day);

                    if (model.Unit == ChartUnit.unit_day)
                    {
                        if (tempcurrentdays > templastmonthdays)
                        {//当前时间范围大于上月环比范围
                            int index = System.DateTime.DaysInMonth(query.StartTime.AddMonths(-1).Year, query.StartTime.AddMonths(-1).Month) - query.StartTime.Day;
                            if (index < 0)
                            {
                                index = 0;
                            }
                            for (int i = templastmonthdays; i < tempcurrentdays; i++)
                            {
                                result.series[0].data.Insert(index, result.series[0].data[index]);
                            }

                        }
                        else
                        {
                            if (tempcurrentdays < templastmonthdays)
                            {
                                int index = System.DateTime.DaysInMonth(query.StartTime.AddMonths(-1).Year, query.StartTime.AddMonths(-1).Month) - query.StartTime.Day;
                                for (int i = tempcurrentdays; i < templastmonthdays; i++)
                                {
                                    result.series[0].data.RemoveAt(index);
                                    index--;
                                }
                            }
                        }

                        //for (int i = 0; i < ((query.EndTime - query.StartTime).Days - tempdaycount); i++)
                        //{
                        //    result.series[0].data.Insert(index, result.series[0].data[index]);

                        //}

                    }
                }

                return result;
            }
            catch (Exception ee)
            {
                throw ee;
            }
        }
Example #3
0
        public ResultEnergyAnalyse GetEnergyAnalyseLineChart(QueryAnalyse query)
        {
            try
            {
                VerifyPersonOrAreaExist(query);
                #region 返回对象定义
                ResultEnergyAnalyse result = new ResultEnergyAnalyse()
                {
                    OrderLst = new List<EnergyOrder>(),
                    series = new List<EneryAnalyseSeries>()

                };
                result.series.Add(new EneryAnalyseSeries() { data = new List<decimal>() });
                #endregion

                List<Model.Itemcode> itemCodeList = new List<Model.Itemcode>();
                if (query.IsDevice == 0)
                {
                    if (query.ItemCode == "00000")
                    {//总能耗
                        itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0 ", " order by ItemcodeID");
                        result.Unit = "T";//标准煤单位
                        result.series[0].name = "总能耗";
                    }
                    else
                    {
                        itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
                        if (itemCodeList.Count > 0)
                        {
                            result.Unit = itemCodeList[0].Unit;//单个分类分项单位
                            result.series[0].name = itemCodeList[0].ItemCodeName;
                        }

                    }
                }
                else
                {
                    var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid");
                    itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + deviceList[0].ItemCodeID + "'", " order by ItemcodeID");
                    if (itemCodeList.Count > 0)
                    {
                        result.Unit = itemCodeList[0].Unit;//单个分类分项单位
                        result.series[0].name = itemCodeList[0].ItemCodeName;
                    }
                    if (query.ItemCode == "00000")
                    {//总能耗

                        result.Unit = "T";//标准煤单位
                        result.series[0].name = "总能耗";
                    }

                }

                switch (query.QueryType)
                {
                    case EnergyAnalyseQueryType.Convert2Co2:
                    case EnergyAnalyseQueryType.Convert2Coal:
                        result.Unit = "T";//标准煤单位
                        break;
                    case EnergyAnalyseQueryType.Convert2Money:
                        result.Unit = "元";//标准煤单位
                        break;
                }

                DateTime tempStartTime = query.StartTime;
                DateTime tempEndTime = query.EndTime;
                if ((DateTime.Now - tempEndTime).Days == 0)
                {
                    tempEndTime = DateTime.Now;
                }
                switch (query.QueryType)
                {
                    case EnergyAnalyseQueryType.YearCompare://同比值
                        tempStartTime = tempStartTime.AddYears(-1);
                        tempEndTime = tempEndTime.AddYears(-1);
                        break;
                    case EnergyAnalyseQueryType.MonthCompare://环比值

                        tempStartTime = tempStartTime.AddMonths(-1);
                        tempEndTime = tempEndTime.AddMonths(-1);

                        break;
                }
                Dictionary<string, decimal> tempConvert = new Dictionary<string, decimal>();
                Dictionary<string, decimal> tempConvertHour = new Dictionary<string, decimal>();
                var model = new BaseQueryModel();
                model.IsDevice = query.IsDevice;
                model.ObjectList = new List<int>();

                model.ObjectList = new List<int>() { query.ObjectId };

                model.Unit = BaseTool.GetChartUnit(query.particle);
                if (model.Unit == ChartUnit.unit_month)
                {
                    model.Starttime = Convert.ToDateTime(tempStartTime.ToString("yyyy-MM-1"));
                    model.Endtime = Convert.ToDateTime(tempEndTime.ToString("yyyy-MM-1"));
                }
                else
                {
                    model.Starttime = tempStartTime;
                    model.Endtime = tempEndTime;
                }
                int templastmonthdays = 0;
                switch (model.Unit)
                {
                    case ChartUnit.unit_month:
                        for (DateTime i = model.Starttime; i <= model.Endtime; i = i.AddMonths(1))
                        {
                            tempConvert.Add(i.ToString("yyyy-MM-dd"), 0);
                        }
                        break;
                    case ChartUnit.unit_hour:
                        for (DateTime i = model.Starttime; i < model.Endtime.AddDays(1); i = i.AddHours(1))
                        {
                            tempConvert.Add(i.ToString("yyyy-MM-dd HH:00:00"), 0);
                        }
                        break;
                    case ChartUnit.unit_day:
                        templastmonthdays = (model.Endtime - model.Starttime).Days;
                        if (model.Endtime.Hour== 0)
                        {
                            for (DateTime i = model.Starttime; i <= model.Endtime; i = i.AddDays(1))
                            {
                                tempConvert.Add(i.ToString(("yyyy-MM-dd")), 0);
                            }
                        }
                        else
                        {

                            for (DateTime i = model.Starttime; i <= model.Endtime.AddDays(-1); i = i.AddDays(1))
                            {
                                tempConvert.Add(i.ToString(("yyyy-MM-dd")), 0);
                            }

                            for (DateTime i = DateTime.Parse(model.Endtime.ToString("yyyy-MM-dd 00:00:00")); i <= model.Endtime; i = i.AddHours(1))
                            {
                                tempConvertHour.Add(i.ToString("yyyy-MM-dd HH:00:00"), 0);
                            }
                            model.Endtime = DateTime.Parse(tempEndTime.AddDays(-1).ToString("yyyy-MM-dd"));
                        }

                        break;
                }
                string objName = "";

                decimal temphourValue = 0;
                foreach (var item in itemCodeList)
                {
                    model.ItemCode = item.ItemCodeNumber;
                    GenerateEnergyDicValue(model, query, tempConvert,ref objName);
                    if (tempConvertHour.Count>0)
                    {
                        model.Unit = ChartUnit.unit_hour;
                        model.Starttime = DateTime.Parse(tempEndTime.ToString("yyyy-MM-dd 00:00:00"));
                        model.Endtime = DateTime.Parse(tempEndTime.ToString("yyyy-MM-dd HH:00:00"));
                        GenerateEnergyDicValue(model, query, tempConvertHour, ref objName);
                        temphourValue = tempConvertHour.Sum(i => i.Value);

                        model.Starttime = tempStartTime;
                        model.Endtime = DateTime.Parse(tempEndTime.AddDays(-1).ToString("yyyy-MM-dd"));
                        model.Unit = ChartUnit.unit_day;
                    }

                }
                if (tempConvertHour.Count > 0)
                {
                    tempConvert.Add(DateTime.Now.ToString("yyyy-MM-dd"), temphourValue);
                }
                int order = 1;
                foreach (var item in tempConvert)
                {

                    var time = item.Key;
                    if (model.Unit == ChartUnit.unit_month)
                    {
                        time = Convert.ToDateTime(time).ToString("yyyy-MM");
                    }

                    decimal value = decimal.Round(item.Value, 2);
                    result.series[0].data.Add(value);
                    result.OrderLst.Add(new EnergyOrder()
                    {
                        Order = order,
                        Tm = time,
                        Obj = objName,
                        Val = value,
                        EneType = result.series[0].name
                        // EneType =itemCodeList.Count > 1 ? "总能耗" : itemCodeList[0].ItemCodeName

                    });
                    order++;
                }
                if (query.QueryType == EnergyAnalyseQueryType.MonthCompare)
                {
                    int tempcurrentdays = (query.EndTime - query.StartTime).Days;
                    //int index = (28 - query.StartTime.Day) < 0 ? 0 : (28 - query.StartTime.Day);

                    if (model.Unit == ChartUnit.unit_day)
                    {
                        if (tempcurrentdays > templastmonthdays)
                        {//当前时间范围大于上月环比范围
                            int index = System.DateTime.DaysInMonth(query.StartTime.AddMonths(-1).Year, query.StartTime.AddMonths(-1).Month) - query.StartTime.Day;
                            if (index < 0)
                            {
                                index = 0;
                            }
                            for (int i = templastmonthdays; i < tempcurrentdays; i++)
                            {
                                result.series[0].data.Insert(index, result.series[0].data[index]);
                            }

                        }
                        else
                        {
                            if (tempcurrentdays < templastmonthdays)
                            {
                                int index = System.DateTime.DaysInMonth(query.StartTime.AddMonths(-1).Year, query.StartTime.AddMonths(-1).Month) - query.StartTime.Day;
                                for (int i = tempcurrentdays; i < templastmonthdays; i++)
                                {
                                    result.series[0].data.RemoveAt(index);
                                    index--;
                                }
                            }
                        }

                        //for (int i = 0; i < ((query.EndTime - query.StartTime).Days - tempdaycount); i++)
                        //{
                        //    result.series[0].data.Insert(index, result.series[0].data[index]);

                        //}

                    }
                }

                return result;
            }
            catch (Exception ee)
            {
                throw ee;
            }
        }
Example #4
0
        public EnergyAnalyseCompare GetEnergyAnalyseCompare(QueryAnalyse query)
        {
            try
            {

                EnergyAnalyseCompare result = new EnergyAnalyseCompare();
                query.QueryType = EnergyAnalyseQueryType.Default;

                ResultEnergyAnalyse temp = GetEnergyAnalyseLineChart(query);
                if (temp != null)
                {
                    result.Unit = temp.Unit;
                    result.MaxValue = decimal.Round(temp.OrderLst.Select(t => t.Val).Max(), 2);
                    result.MinValue = decimal.Round(temp.OrderLst.Select(t => t.Val).Min(), 2);
                    result.AverageValue = decimal.Round(temp.OrderLst.Select(t => t.Val).Average(), 2);
                    result.TotalValue = decimal.Round(temp.OrderLst.Select(t => t.Val).Sum(), 2);
                }
                query.QueryType = EnergyAnalyseQueryType.YearCompare;
                temp = GetEnergyAnalyseLineChart(query);
                if (temp != null)
                {
                    result.LastYearTotalValue = temp.OrderLst.Select(t => t.Val).Sum();
                    if (result.LastYearTotalValue > 0)
                    {
                        result.LastYearCompare = decimal.Round(100 * (result.TotalValue - result.LastYearTotalValue) / result.LastYearTotalValue, 2)
                                 .ToString(CultureInfo.InvariantCulture);
                    }
                }

                query.QueryType = EnergyAnalyseQueryType.MonthCompare;
                temp = GetEnergyAnalyseLineChart(query);
                if (temp != null)
                {
                    result.LastMonthTotalValue = temp.OrderLst.Select(t => t.Val).Sum();
                    if (result.LastMonthTotalValue > 0)
                    {
                        result.LastMonthCompare =
                            decimal.Round(100 * (result.TotalValue - result.LastMonthTotalValue) / result.LastMonthTotalValue,
                                          2).ToString(CultureInfo.InvariantCulture);

                    }
                }

                return result;
            }
            catch (Exception ee)
            {
                throw ee;
            }
        }
Example #5
0
        private Dictionary<string, decimal> GenerateEnergyDicValue(BaseQueryModel model, QueryAnalyse query, Dictionary<string, decimal> tempConvert,ref string objName)
        {
            BaseResult resList = _reportBll.GetBaseEneryDataList(model, query.ObjType == AreaType.Liquid ? true : false);

             foreach (var r in resList.BaseLayerObjectResults)
             {
                 if (model.IsDevice == 0)
                 {
                     objName = r.Value.baseLayerObject.LayerObjectName; //取区域名称
                 }
                 else
                 {
                     objName = r.Value.device.DeviceName;
                 }
                 foreach (var rr in r.Value.Datas)
                 {
                     if (query.ItemCode == "00000")
                     {
                         switch (query.QueryType)
                         {
                             case EnergyAnalyseQueryType.Default: //默认
                             case EnergyAnalyseQueryType.YearCompare: //默认
                             case EnergyAnalyseQueryType.MonthCompare: //默认
                                 tempConvert[rr.DatePick] += rr.CoalDataValue;
                                 break;
                             case EnergyAnalyseQueryType.UnitArea: //单位面积
                                 tempConvert[rr.DatePick] += rr.CoalDataValue/
                                                             decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString());

                                 break;
                             case EnergyAnalyseQueryType.UnitPerson: //人均
                                 tempConvert[rr.DatePick] += rr.CoalDataValue/
                                                             decimal.Parse(r.Value.baseLayerObject.PersonNum.ToString());
                                 break;
                             case EnergyAnalyseQueryType.Convert2Coal: //
                                 tempConvert[rr.DatePick] += rr.CoalDataValue;
                                 break;
                             case EnergyAnalyseQueryType.Convert2Co2: //
                                 tempConvert[rr.DatePick] += rr.Co2DataValue;
                                 break;
                             case EnergyAnalyseQueryType.Convert2Money: //
                                 tempConvert[rr.DatePick] += rr.MoneyDataValue;
                                 break;
                         }
                     }
                     else
                     {
                         switch (query.QueryType)
                         {
                             case EnergyAnalyseQueryType.Default: //默认
                             case EnergyAnalyseQueryType.YearCompare: //默认
                             case EnergyAnalyseQueryType.MonthCompare: //默认
                                 tempConvert[rr.DatePick] += rr.DataValue;
                                 break;
                             case EnergyAnalyseQueryType.UnitArea: //单位面积
                                 tempConvert[rr.DatePick] += rr.DataValue/
                                                             decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString());

                                 break;
                             case EnergyAnalyseQueryType.UnitPerson: //人均
                                 tempConvert[rr.DatePick] += rr.DataValue/
                                                             decimal.Parse(r.Value.baseLayerObject.PersonNum.ToString());
                                 break;
                             case EnergyAnalyseQueryType.Convert2Coal: //
                                 tempConvert[rr.DatePick] += rr.CoalDataValue;
                                 break;
                             case EnergyAnalyseQueryType.Convert2Co2: //
                                 tempConvert[rr.DatePick] += rr.Co2DataValue;
                                 break;
                             case EnergyAnalyseQueryType.Convert2Money: //
                                 tempConvert[rr.DatePick] += rr.MoneyDataValue;
                                 break;
                         }

                     }
                 }
             }
            return tempConvert;
        }
Example #6
0
        public ResultEnergyAnalysePie GetEnergyAnalysePie(QueryAnalyse query)
        {
            try
            {

                VerifyPersonOrAreaExist(query);

                ResultEnergyAnalysePie result = new ResultEnergyAnalysePie()
                {
                    LayerPie = new PieHighChart() { series = new List<Series>() },
                    ItemCodePie = new PieHighChart() { series = new List<Series>() }
                };
                result.LayerPie.series.Add(new Series() { data = new List<EneryHighChart>() });
                result.ItemCodePie.series.Add(new Series() { data = new List<EneryHighChart>() });
                query.QueryType = EnergyAnalyseQueryType.Default;

                List<Model.Itemcode> itemCodeList = new List<Model.Itemcode>();
                if (query.ItemCode == "00000")
                {//总能耗
                    itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0 ", " order by ItemcodeID");
                    result.Unit = "T";//标准煤单位
                }
                else
                {

                    itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
                    if (itemCodeList.Count > 0)
                    {
                        result.Unit = itemCodeList[0].Unit;//单个分类分项单位

                        var itemchildCodeList = new BLL.Itemcode().GetItemcodeList(string.Format(" and ParentID={0} ", itemCodeList[0].ItemcodeID), " order by ItemcodeID");

                        if (itemchildCodeList.Count > 0)
                        {
                            itemCodeList = itemchildCodeList;
                        }
                    }
                }
                switch (query.QueryType)
                {
                    case EnergyAnalyseQueryType.Convert2Co2:
                    case EnergyAnalyseQueryType.Convert2Coal:
                        result.Unit = "T";//标准煤单位
                        break;
                    case EnergyAnalyseQueryType.Convert2Money:
                        result.Unit = "元";//标准煤单位
                        break;
                }
                var model = new BaseQueryModel();
                model.IsDevice = query.IsDevice;
                model.ObjectList = new List<int>() { query.ObjectId };
                model.IsDevice = 0;//只获取区域的
                if (model.IsDevice == 0)
                {//区域
                    //model.ObjectList = (from p in LayerObjectList select p.LayerObjectID).ToList<int>();
                    model.ObjectList = query.ObjectChildren;
                    if (model.ObjectList.Count == 0)
                    {//如果选择的区域对象下没有子集则取当前对象能耗,否则取各子集能耗
                        model.ObjectList = new List<int>() { query.ObjectId };
                    }
                }
                else
                {//设备只取当前对象能耗

                    //var device = new BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid");
                    //if (device.Count > 0)
                    //{
                    //    model.ObjectList = (from p in device select p.DeviceID).ToList<int>();
                    //}
                }

                //model.Unit = GetUnit(query.StartTime, query.EndTime);
                model.Unit = BaseTool.GetChartUnit(query.particle);
                if (model.Unit == ChartUnit.unit_month)
                {
                    model.Starttime = Convert.ToDateTime(query.StartTime.ToString("yyyy-MM-1"));
                    model.Endtime = Convert.ToDateTime(query.EndTime.ToString("yyyy-MM-1"));
                }
                else
                {
                    model.Starttime = query.StartTime;
                    model.Endtime = query.EndTime;
                }

                Dictionary<string, decimal> tempLayerConvert = new Dictionary<string, decimal>();
                Dictionary<string, decimal> tempItemcodeConvert = new Dictionary<string, decimal>();
                if (query.ObjectChildren.Count == 0)
                {//当前选项没有子节点,则layer能耗和分类分项能耗就取当前选中节点的能耗值

                    foreach (var item in itemCodeList)
                    {
                        tempItemcodeConvert.Add(item.ItemCodeName, 0);

                        model.ItemCode = item.ItemCodeNumber;
                        BaseResult resList = _reportBll.GetBaseEneryDataList(model, query.ObjType == AreaType.Liquid ? true : false);
                        foreach (var r in resList.BaseLayerObjectResults)
                        {
                            var key = "";
                            if (model.IsDevice == 0)
                            {
                                key = r.Value.baseLayerObject.LayerObjectName;
                            }
                            else
                            {
                                key = r.Value.device.DeviceName;
                            }
                            if (!tempLayerConvert.ContainsKey(key))
                            {
                                tempLayerConvert.Add(key, 0);
                            }
                            if (query.ItemCode == "00000")
                            {//选择总能耗后把其他分类分项的能耗转化成标准煤
                                switch (query.QueryType)
                                {
                                    case EnergyAnalyseQueryType.Default: //默认总能耗
                                        tempLayerConvert[key] +=
                                  decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());//
                                        tempItemcodeConvert[item.ItemCodeName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());
                                        break;
                                    default:
                                        tempLayerConvert[key] +=
                                decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());
                                        tempItemcodeConvert[item.ItemCodeName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());
                                        break;
                                }
                            }
                            else
                            {
                                switch (query.QueryType)
                                {
                                    case EnergyAnalyseQueryType.Default: //默认总能耗
                                        tempLayerConvert[key] += r.Value.Total;
                                        tempItemcodeConvert[item.ItemCodeName] += r.Value.Total;
                                        break;
                                    default:
                                        tempLayerConvert[key] += r.Value.Total;
                                        tempItemcodeConvert[item.ItemCodeName] += r.Value.Total;
                                        break;
                                }
                            }
                        }
                    }
                }
                else
                {
                    model.ObjectList = query.ObjectChildren;//先获取layer子节点能耗值
                    foreach (var item in itemCodeList)
                    {

                        model.ItemCode = item.ItemCodeNumber;
                        BaseResult resList = _reportBll.GetBaseEneryDataList(model, query.ObjType == AreaType.Liquid ? true : false);
                        foreach (var r in resList.BaseLayerObjectResults)
                        {
                            var key = "";
                            if (model.IsDevice == 0)
                            {
                                key = r.Value.baseLayerObject.LayerObjectName;
                            }
                            else
                            {
                                key = r.Value.device.DeviceName;
                            }
                            if (!tempLayerConvert.ContainsKey(key))
                            {
                                tempLayerConvert.Add(key, 0);
                            }
                            if (query.ItemCode == "00000")
                            {//选择总能耗后把其他分类分项的能耗转化成标准煤
                                switch (query.QueryType)
                                {
                                    case EnergyAnalyseQueryType.Default: //默认总能耗
                                        tempLayerConvert[key] +=
                                  decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());//

                                        break;
                                    default:
                                        tempLayerConvert[key] +=
                                decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());

                                        break;
                                }
                            }
                            else
                            {
                                switch (query.QueryType)
                                {
                                    case EnergyAnalyseQueryType.Default: //默认总能耗
                                        tempLayerConvert[key] += r.Value.Total;

                                        break;
                                    default:
                                        tempLayerConvert[key] += r.Value.Total;

                                        break;
                                }

                            }

                        }

                    }

                    model.ObjectList = new List<int>() { query.ObjectId };//获取分类分项能耗值
                    foreach (var item in itemCodeList)
                    {
                        tempItemcodeConvert.Add(item.ItemCodeName, 0);
                        model.ItemCode = item.ItemCodeNumber;
                        BaseResult resList = _reportBll.GetBaseEneryDataList(model, query.ObjType == AreaType.Liquid ? true : false);

                        foreach (var r in resList.BaseLayerObjectResults)
                        {
                            if (query.ItemCode == "00000")
                            {//选择总能耗后把其他分类分项的能耗转化成标准煤
                                tempItemcodeConvert[item.ItemCodeName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());
                            }
                            else
                            {
                                tempItemcodeConvert[item.ItemCodeName] += r.Value.Total;
                            }
                        }

                    }
                }
                var tempDesc = from tt in tempLayerConvert orderby tt.Value descending select tt;//PieChart按照能耗值从高到低排序
                int tempindex = 1;
                decimal tempcount = 0;
                foreach (var item in tempDesc)
                {
                    decimal value = decimal.Round(item.Value, 2);
                    if (tempindex < 11)
                    {
                        result.LayerPie.series[0].data.Add(new EneryHighChart()
                        {
                            name = item.Key,
                            y = value
                        });
                    }
                    else
                    {
                        tempcount += value;
                    }

                    tempindex++;
                }
                if (tempindex > 11)
                {
                    result.LayerPie.series[0].data.Add(new EneryHighChart()
                    {
                        name = "其他",
                        y = tempcount
                    });
                }
                tempDesc = from tt in tempItemcodeConvert orderby tt.Value descending select tt;//PieChart按照能耗值从高到低排序
                tempindex = 1;
                tempcount = 0;
                foreach (var item in tempDesc)
                {
                    decimal value = decimal.Round(item.Value, 2);
                    if (tempindex < 11)
                    {
                        result.ItemCodePie.series[0].data.Add(new EneryHighChart()
                        {
                            name = item.Key,
                            y = value
                        });
                    }
                    else
                    {
                        tempcount += value;
                    }
                    tempindex++;
                }
                if (tempindex > 10)
                {
                    result.ItemCodePie.series[0].data.Add(new EneryHighChart()
                    {
                        name = "其他",
                        y = tempcount
                    });
                }
                return result;
            }
            catch (Exception ee)
            {
                throw ee;
            }
        }
Example #7
0
        public static ResultContrast ShowEnergyAnalyseLineChart(QueryAnalyse queryAnalyse, string[] chartObject, string[] chartDept, Dictionary<string, List<decimal>> dir)
        {
            //表格数据定义
            List<EnergyContrst> enerList = new List<EnergyContrst>();

            ResultContrast contrast = new ResultContrast();
            ExecuteProcess execu = new ExecuteProcess();
            if (chartObject.Length == 0)
            {
                execu.Success = false;
                execu.ExceptionMsg = "暂无数据信息";
                execu.ActionName = "";
                execu.ActionUser = "";
                execu.ActionTime = System.DateTime.Now;
            }
            else
            {
                execu.Success = true;
                execu.ExceptionMsg = "";
            }

            string sql = " and ItemCodeNumber = '" + queryAnalyse.ItemCode + "'";
            List<NTS.WEB.Model.Itemcode> itemList = Framework.Common.BaseWcf.CreateChannel<ServiceInterface.IEnergyContrastService>("EnergyContrastService")
                                 .GetItemCodeList(sql, "");

            contrast.ActionInfo = execu;

            #region 数据series
            LineJson lineJson = new LineJson();
            List<EneryCompare> compareList = new List<EneryCompare>();
            #endregion

            int Index = 0;
            StringBuilder chartNew = new StringBuilder();
            {
                foreach (var d in dir)
                {

                    EnergyContrst ener = new EnergyContrst();

                    EneryCompare compareItem = new EneryCompare();

                    if (itemList.Count == 0)
                    {
                        ener.EneType = "总能耗";
                    }
                    else
                    {
                        ener.EneType = itemList[0].ItemCodeName;
                    }

                    ener.Obj = d.Key;
                    ener.Tm = queryAnalyse.StartTime.ToString();
                    ener.Val = Math.Round(d.Value.Sum(), 2);

                    compareItem.name = d.Key;
                    compareItem.data = d.Value;
                    compareList.Add(compareItem);

                    enerList.Add(ener);
                    Index++;
                }
                if (chartDept.Length > 0)
                {
                    lineJson.Unit = chartDept[0];
                    contrast.Unit = chartDept[0];
                }
                lineJson.CompareType = "object";

                contrast.ContrastLst = enerList; // 表格数据。

                lineJson.series = compareList;
                contrast.lineJson = lineJson;

                //lineJson.series =
                return contrast;
            }
        }