コード例 #1
0
ファイル: CostQuery.cs プロジェクト: NickQi/TianheDemo
        public Dictionary<string, EnergyValueCost> GetSingleItemCodeValue(QueryCost query, List<Model.Itemcode> itemCodeList)
        {
            var model = new BaseQueryModel();
            model.IsDevice = 0;
            model.areaType = query.ObjType;
            model.ObjectList = new List<int>() { query.ObjectId };
            model.Unit = BaseTool.GetChartUnit((int)query.Particle - 1);

            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, EnergyValueCost> tempConvert = new Dictionary<string, EnergyValueCost>();
            Dictionary<string, EnergyValueCost> tempConvert4Day = new Dictionary<string, EnergyValueCost>();
            switch (model.Unit)
            {
                case ChartUnit.unit_month:
                    for (DateTime i = model.Starttime; i <= model.Endtime.AddMonths(-1); i = i.AddMonths(1))
                    {
                        tempConvert.Add(i.ToString("yyyy-MM-01"), new EnergyValueCost { EnergyCost = 0, EnergyValue = 0 });
                    }
                    for (DateTime i = DateTime.Parse(query.EndTime.ToString("yyyy-MM-01")); i <= query.EndTime; i = i.AddDays(1))
                    {
                        tempConvert4Day.Add(i.ToString(("yyyy-MM-dd")), new EnergyValueCost { EnergyCost = 0, EnergyValue = 0 });
                    }
                    model.Endtime = query.EndTime.AddMonths(-1);
                    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"), new EnergyValueCost { EnergyCost = 0, EnergyValue = 0 });
                    }
                    break;
                case ChartUnit.unit_day:
                    for (DateTime i = model.Starttime; i <= model.Endtime; i = i.AddDays(1))
                    {
                        tempConvert.Add(i.ToString(("yyyy-MM-dd")), new EnergyValueCost { EnergyCost = 0, EnergyValue = 0 });
                    }
                    break;
            }
            foreach (var item in itemCodeList)
            {
                decimal price = _accssCommon.GetFeePrice(item.ItemCodeNumber);
                model.ItemCode = item.ItemCodeNumber;
                GenerateEnergyValue(model, tempConvert, price);
                if (tempConvert4Day.Count > 0)
                {
                    model.Starttime = DateTime.Parse(query.EndTime.ToString("yyyy-MM-01"));
                    model.Endtime = query.EndTime;
                    model.Unit = ChartUnit.unit_day;
                    GenerateEnergyValue(model, tempConvert4Day, price);
                    EnergyValueCost temp = new EnergyValueCost()
                                               {
                                                    EnergyCost=tempConvert4Day.Sum(i => i.Value.EnergyCost),
                                                    EnergyValue = tempConvert4Day.Sum(i => i.Value.EnergyValue),

                                               };

                    tempConvert.Add(query.EndTime.ToString("yyyy-MM-01"), temp);
                }

            }

            return tempConvert;
        }
コード例 #2
0
        public Dictionary <string, EnergyValueCost> GetSingleItemCodeValue(QueryCost query, List <Model.Itemcode> itemCodeList)
        {
            var model = new BaseQueryModel();

            model.IsDevice   = 0;
            model.areaType   = query.ObjType;
            model.ObjectList = new List <int>()
            {
                query.ObjectId
            };
            model.Unit = BaseTool.GetChartUnit((int)query.Particle - 1);

            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, EnergyValueCost> tempConvert     = new Dictionary <string, EnergyValueCost>();
            Dictionary <string, EnergyValueCost> tempConvert4Day = new Dictionary <string, EnergyValueCost>();

            switch (model.Unit)
            {
            case ChartUnit.unit_month:
                for (DateTime i = model.Starttime; i <= model.Endtime.AddMonths(-1); i = i.AddMonths(1))
                {
                    tempConvert.Add(i.ToString("yyyy-MM-01"), new EnergyValueCost {
                        EnergyCost = 0, EnergyValue = 0
                    });
                }
                for (DateTime i = DateTime.Parse(query.EndTime.ToString("yyyy-MM-01")); i <= query.EndTime; i = i.AddDays(1))
                {
                    tempConvert4Day.Add(i.ToString(("yyyy-MM-dd")), new EnergyValueCost {
                        EnergyCost = 0, EnergyValue = 0
                    });
                }
                model.Endtime = query.EndTime.AddMonths(-1);
                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"), new EnergyValueCost {
                        EnergyCost = 0, EnergyValue = 0
                    });
                }
                break;

            case ChartUnit.unit_day:
                for (DateTime i = model.Starttime; i <= model.Endtime; i = i.AddDays(1))
                {
                    tempConvert.Add(i.ToString(("yyyy-MM-dd")), new EnergyValueCost {
                        EnergyCost = 0, EnergyValue = 0
                    });
                }
                break;
            }
            foreach (var item in itemCodeList)
            {
                decimal price = _accssCommon.GetFeePrice(item.ItemCodeNumber);
                model.ItemCode = item.ItemCodeNumber;
                GenerateEnergyValue(model, tempConvert, price);
                if (tempConvert4Day.Count > 0)
                {
                    model.Starttime = DateTime.Parse(query.EndTime.ToString("yyyy-MM-01"));
                    model.Endtime   = query.EndTime;
                    model.Unit      = ChartUnit.unit_day;
                    GenerateEnergyValue(model, tempConvert4Day, price);
                    EnergyValueCost temp = new EnergyValueCost()
                    {
                        EnergyCost  = tempConvert4Day.Sum(i => i.Value.EnergyCost),
                        EnergyValue = tempConvert4Day.Sum(i => i.Value.EnergyValue),
                    };

                    tempConvert.Add(query.EndTime.ToString("yyyy-MM-01"), temp);
                }
            }

            return(tempConvert);
        }