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; }
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); }