public decimal[] GetIndexCompareEnery(DateTime startTime, DateTime endTime) { decimal[] MonthResult = new decimal[2]; // string userid = ""; // try // { // userid = Utils.GetCookie("userid"); // } // catch // { // userid = ""; // } // var ObjectList = new List<Model.BaseLayerObject>(); // string where = ""; // if (string.IsNullOrEmpty(userid)) // { // where = string.Format(@"and LayerObjectParentID={0} ", 0); // } // else // { // where = string.Format(@"and LayerObjectParentID={0} AND layerobjectid in( SELECT AREAID from TB_USERGROUPAREARIGHT //WHERE USERGROUPID =(SELECT GROUPS FROM TB_USER WHERE ID={1} ))", 0, userid); // } // ObjectList = new DAL.BaseLayerObject().GetBaseLayerObjectList(where, string.Format(" order by LayerObjectID")); var ObjectList = new BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectParentID={0}", 0), " order by LayerObjectID"); var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID"); List<string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList<string>(); BaseQueryModel model = new BaseQueryModel(); model.IsDevice = 0; model.ObjectList = (from p in ObjectList select p.LayerObjectID).ToList<int>(); decimal tempConvert = 0; foreach (var item in ItemCodeStr) { decimal tempCount = 0; decimal tempCountConvert = 0; model.ItemCode = item; model.Unit = ChartUnit.unit_month; model.Starttime = startTime; model.Endtime = endTime; var ResList = reportBll.GetBaseEneryDataList(model); foreach (var r in ResList.BaseLayerObjectResults) { tempCount += r.Value.Total; tempCountConvert += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()); } if (item == "01000") { MonthResult[0] = tempCount; } tempConvert += tempCountConvert; } MonthResult[1] = tempConvert; return MonthResult; }
/// <summary> /// 根据查询条件获取数据。 /// </summary> /// <param name="basicQuery"></param> /// <returns></returns> public ResultCompare GetDateTongJiData(BasicQuery basicQuery) { var resultList = new ResultView.ResultCompare { ObjectName = new List <string>(), Enery = new Dictionary <string, List <decimal> >(), Dept = new List <string>() }; List <Model.BaseLayerObject> objectList; if (basicQuery.AreaType == AreaType.Area) { objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList( string.Format(" and layerobjectid = {0}", basicQuery.ObjectNum), ""); } else { objectList = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList( string.Format(" and layerobjectid = {0}", basicQuery.ObjectNum), ""); } EnergyContrast contst = new EnergyContrast(); var result = contst.GetQueryLineChart(basicQuery); resultList.ObjectName = result.ObjectName; if (basicQuery.ItemCode != "00000") { var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + basicQuery.ItemCode + "'", " order by ItemcodeID")[0]; resultList.Enery.Add(objectList[0].LayerObjectName, result.Enery[itemList.ItemCodeName]); for (int i = 0; i < result.Dept.Count; i++) { resultList.Dept.Add(itemList.Unit); } } else { var tempValue = new decimal[result.Enery[result.Enery.Keys.First <string>()].Count]; foreach (var re in result.Enery) { for (var i = 0; i < re.Value.Count; i++) { tempValue[i] += re.Value[i]; } } for (int i = 0; i < result.Dept.Count; i++) { resultList.Dept.Add("T"); } resultList.Enery.Add(objectList[0].LayerObjectName, tempValue.ToList()); } return(resultList); }
/// <summary> /// 根据查询条件获取数据。 /// </summary> /// <param name="basicQuery"></param> /// <returns></returns> public ResultCompare GetDateTongJiData(BasicQuery basicQuery) { var resultList = new ResultView.ResultCompare { ObjectName = new List<string>(), Enery = new Dictionary<string, List<decimal>>(), Dept = new List<string>() }; List<Model.BaseLayerObject> objectList; if (basicQuery.AreaType == AreaType.Area) { objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList( string.Format(" and layerobjectid = {0}", basicQuery.ObjectNum), ""); } else { objectList = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList( string.Format(" and layerobjectid = {0}", basicQuery.ObjectNum), ""); } EnergyContrast contst = new EnergyContrast(); var result = contst.GetQueryLineChart(basicQuery); resultList.ObjectName = result.ObjectName; if (basicQuery.ItemCode != "00000") { var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + basicQuery.ItemCode + "'", " order by ItemcodeID")[0]; resultList.Enery.Add(objectList[0].LayerObjectName, result.Enery[itemList.ItemCodeName]); for (int i = 0; i < result.Dept.Count; i++) { resultList.Dept.Add(itemList.Unit); } } else { var tempValue = new decimal[result.Enery[result.Enery.Keys.First<string>()].Count]; foreach (var re in result.Enery) { for (var i = 0; i < re.Value.Count; i++) { tempValue[i] += re.Value[i]; } } for (int i = 0; i < result.Dept.Count; i++) { resultList.Dept.Add("T"); } resultList.Enery.Add(objectList[0].LayerObjectName, tempValue.ToList()); } return resultList; }
public BaseResult GetDeviceQuerySingleItemCodeEneryTotal(NTS.WEB.DataContact.BasicQuery query) { var ObjectList = new BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectNum), " order by deviceid"); var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID"); List <string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList <string>(); BaseQueryModel model = new BaseQueryModel(); model.IsDevice = 1; model.ObjectList = (from p in ObjectList select p.DeviceID).ToList <int>(); model.ItemCode = query.ItemCode; model.Unit = BaseTool.GetChartUnit(query.Unit); model.Starttime = query.StartTime; model.Endtime = query.EndTime; var ResList = reportBll.GetBaseEneryDataList(model); return(ResList); }
public string ExportQueryLineChart() { var inputValue = _ntsPage.Request.Form["Inputs"]; var query = Newtonsoft.Json.JsonConvert.DeserializeObject<BasicQuery>(inputValue); var result = Framework.Common.BaseWcf.CreateChannel<ServiceInterface.IChart>("Chart") .GetQueryLineChart(query); try { string name = new BLL.BaseLayerObject().GetBaseLayerObjectList( string.Format(" and layerobjectid={0}", query.ObjectNum), " order by LayerObjectID")[0].LayerObjectName; string itemUnit = result.Dept[0]; var dept = string.Empty; var itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID"); if (itList.Count > 0) { dept = itList[0].Unit; } string itemName = query.ItemCode == "00000" ? "总能耗" : dept; var ItemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID"); string ItemName = query.ItemCode == "00000" ? "总能耗" : ItemList[0].ItemCodeName; DataTable dt = TableView.CreateBaseDataTable(); if (query.ItemCode != "00000") { for (var r = 0; r < result.Enery[itList[0].ItemCodeName].Count; r++) { DataRow dr = dt.NewRow(); dr[1] = result.ObjectName[r]; dr[2] = query.ObjectNum; dr[3] = name; dr[4] = result.ObjectName[r]; dr[5] = result.ObjectName[r]; dr[6] = itemName; dr[7] = decimal.Round(decimal.Parse(result.Enery[itList[0].ItemCodeName][r].ToString()), 2).ToString(); dt.Rows.Add(dr); } } else { foreach (var i in result.Enery) { DataRow drs = dt.NewRow(); drs[1] = i.Key; drs[2] = "-"; drs[3] = "-"; drs[4] = "-"; drs[5] = "-"; drs[6] = "-"; drs[7] = "-"; dt.Rows.Add(drs); for (var r = 0; r < result.Enery[i.Key].Count; r++) { DataRow dr = dt.NewRow(); dr[1] = result.ObjectName[r]; dr[2] = query.ObjectNum; dr[3] = name; dr[4] = result.ObjectName[r]; dr[5] = result.ObjectName[r]; dr[6] = itemName; dr[7] = decimal.Round(decimal.Parse(result.Enery[i.Key][r].ToString()), 2); dt.Rows.Add(dr); } } } if (dt != null) { string temp_path = AppDomain.CurrentDomain.BaseDirectory + "temp_file\\"; if (!Directory.Exists(temp_path)) { Directory.CreateDirectory(temp_path); string[] files = Directory.GetFiles(temp_path); foreach (string fn in files) { File.Delete(temp_path + fn); } } string save_path = DateTime.Now.Ticks + ".xls"; string templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\能耗查询.xls"; TemplateParam param = new TemplateParam(name + " " + ItemName + " ", new CellParam(0, 0), query.StartTime.ToString("yyyy-MM-dd") + "~" + query.EndTime.ToString("yyyy-MM-dd"), new CellParam(3, 0), false, new CellParam(4, 0)); param.DataColumn = new[] { 0, 3, 1, 7 }; param.ItemUnit = "(单位:" + itemUnit + ")"; param.ItemUnitCell = new CellParam(3, 4); dt.TableName = "能耗查询统计"; ExportHelper.ExportExcel(dt, temp_path + save_path, templatePath, param); return "{\"status\":\"success\",\"msg\":\"" + "/temp_file/" + save_path + "\"}"; } else { return "{\"status\":\"error\",\"msg\":\"导出失败:当前无任何数据\"}"; } } catch (Exception ex) { return "{\"status\":\"error\",\"msg\":\"导出失败:由于当前无数据或其他原因导致" + ex.Message + "\"}"; } }
public string ExportExcelCostQuery() { var inputValue = _ntsPage.Request.Form["Inputs"]; var query = Newtonsoft.Json.JsonConvert.DeserializeObject<QueryCost>(inputValue); var result = Framework.Common.BaseWcf.CreateChannel<ServiceInterface.ICostQueryService>("CostQueryService").GetCostQuery(query); string objectName = ""; switch(query.ObjType) { case AreaType.Area: objectName = new BLL.BaseLayerObject().GetBaseLayerObjectList( string.Format(" and layerobjectid={0}", query.ObjectId), " order by LayerObjectID")[0].LayerObjectName; break; case AreaType.Liquid: objectName = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList( string.Format(" and layerobjectid={0}", query.ObjectId), " order by LayerObjectID")[0].LayerObjectName; break; } var dept = string.Empty; List<Model.Itemcode> itList = null; string unit = ""; string itemCodeName = ""; itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID"); if (itList.Count > 0) { dept = itList[0].Unit; } unit = query.ItemCode == "00000" ? "T" : dept; itemCodeName = itList.Count == 0 ? "总能耗" : itList[0].ItemCodeName; try { if (result.FeeTbl != null) { if (result.FeeTbl.FeeList.Count > 0) { DataTable dt = TableView.CreateCostQueryDataTable(result); for (var r = 0; r < result.FeeTbl.FeeList.Count; r++) { DataRow dr = dt.NewRow(); for (int j = 1; j <= dt.Columns.Count - 1; j++) { dr[j] = result.FeeTbl.FeeList[r][j - 1]; } dt.Rows.Add(dr); } string temp_path = AppDomain.CurrentDomain.BaseDirectory + "temp_file\\"; if (!Directory.Exists(temp_path)) { Directory.CreateDirectory(temp_path); string[] files = Directory.GetFiles(temp_path); foreach (string fn in files) { File.Delete(temp_path + fn); } } string save_path = DateTime.Now.Ticks + ".xls"; string templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\费用查询.xls"; string time = ""; switch (query.Particle) { case Particle.Month: time = query.StartTime.Year + "-" + query.StartTime.Month + "月"; break; case Particle.Year: time = query.StartTime.Year + "年"; break; } TemplateParam param = new TemplateParam(objectName + " 费用查询---" + itemCodeName + "能耗", new CellParam(0, 0), time, new CellParam(3, 0), true, new CellParam(4, 0)); List<int> columnIndex = new List<int>(); for (int i = 0; i <= dt.Columns.Count - 1; i++) { columnIndex.Add(i); } param.DataColumn = columnIndex.ToArray(); param.ItemUnit = "(单位:" + unit + ")"; param.ItemUnitCell = new CellParam(3, 5); param.SortColumn = 0; dt.TableName = "费用查询"; ExportHelper.ExportExcel(dt, temp_path + save_path, templatePath, param); return "{\"status\":\"success\",\"msg\":\"" + "/temp_file/" + save_path + "\"}"; } else { return "{\"status\":\"error\",\"msg\":\"导出失败:当前无任何数据\"}"; } } else { return "{\"status\":\"error\",\"msg\":\"导出失败:当前无任何数据\"}"; } } catch (Exception ex) { return "{\"status\":\"error\",\"msg\":\"导出失败:由于当前无数据或其他原因导致" + ex.Message + "\"}"; } }
public ResultItemCode GetPersonNumPeriodsQueryLineChart(QueryContrastPeriods query, TimePeriod time) { #region 定义区 var resultList = new ResultView.ResultItemCode { ObjectName = new List<string>(), Enery = new Dictionary<string, List<decimal>>(), Dept = new List<string>() }; #endregion var dept = string.Empty; var objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList( string.Format(" and layerobjectid={0}", query.AreaId), " order by LayerObjectID"); var itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID"); if (itList.Count > 0) { dept = itList[0].Unit; } dept = query.ItemCode == "00000" ? "T" : dept; if (query.ItemCode == "00000") { // resultList.Dept = new List<string>() { "T" }; var itemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID"); var eneryDataListTotal = new Dictionary<string, Dictionary<string, decimal>>(); var maxcode = "01000"; var count = 0; foreach (var itemcode in itemList) { var lineChart = GetPersonNumSingleItemCodeByObject(query, itemcode.ItemCodeNumber, time, 1); if (count < lineChart.Count) { count = lineChart.Count; maxcode = itemcode.ItemCodeNumber; } eneryDataListTotal.Add(itemcode.ItemCodeNumber, lineChart); // resultList.Enery.Add(itemcode.ItemCodeName, lineChart.DatePickEnery); } // 重新赋值 foreach (var itemcode in itemList) { var itemcode1 = itemcode; foreach (var max in eneryDataListTotal[maxcode].Where(max => !eneryDataListTotal[itemcode1.ItemCodeNumber].ContainsKey(max.Key))) { eneryDataListTotal[itemcode.ItemCodeNumber].Add(max.Key, 0); } var temp = eneryDataListTotal[itemcode.ItemCodeNumber].OrderBy(p => Convert.ToDateTime(p.Key)); var tempOrder = temp.ToDictionary(keyValuePair => keyValuePair.Key, keyValuePair => keyValuePair.Value); eneryDataListTotal[itemcode.ItemCodeNumber] = tempOrder; resultList.Enery.Add(itemcode.ItemCodeName, eneryDataListTotal[itemcode.ItemCodeNumber].Values.ToList()); } resultList.ObjectName = eneryDataListTotal[maxcode].Select(p => p.Key.ToString(CultureInfo.InvariantCulture)).ToList(); } else { var item = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID")[0]; var lineChart = GetSingleItemCodeByObjectNew(query, query.ItemCode, time, 0); // resultList.Dept = new List<string>() {item.Unit}; resultList.ObjectName = lineChart.Select(p => p.Key.ToString()).ToList(); resultList.Enery.Add(item.ItemCodeName, lineChart.Select(p => decimal.Parse(p.Value.ToString())).ToList()); } foreach (var baseLayerObject in resultList.ObjectName) { resultList.Dept.Add(dept); } return resultList; }
/// <summary> /// add by: jy /// add at: 2014-3-24 /// note : 人均能耗对比 /// </summary> /// <param name="query"></param> /// <returns></returns> public ResultCompare GetPersonNumCompareChart(QueryOrderObjects queryObject) { #region 定义区 var resultList = new ResultView.ResultCompare { ObjectName = new List<string>(), Enery = new Dictionary<string, List<decimal>>(), Dept = new List<string>() }; #endregion var olist = queryObject.AreaIdLst.Aggregate(string.Empty, (current, q) => current + ("," + q.ToString())); if (olist.Length > 0) { List<Model.BaseLayerObject> objectList; if (queryObject.ObjType == AreaType.Area) { objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList( string.Format(" and layerobjectid in ({0})", olist.Substring(1)), " order by LayerObjectID"); } else { objectList = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList( string.Format(" and layerobjectid in ({0})", olist.Substring(1)), " order by LayerObjectID"); } foreach (var o in objectList) { var basicQuery = new BasicQuery { EndTime = queryObject.EndTime, StartTime = queryObject.StartTime, ItemCode = queryObject.ItemCode, Unit = queryObject.Particle, AreaType = queryObject.ObjType, QueryType = queryObject.QueryType }; basicQuery.ObjectNum = o.LayerObjectID; var result = GetQueryLineChart(basicQuery); //resultList.Dept = result.Dept; resultList.ObjectName = result.ObjectName; if (queryObject.ItemCode != "00000") { var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + queryObject.ItemCode + "'", " order by ItemcodeID")[0]; //resultList.Enery.Add(o.LayerObjectName, result.Enery[itemList.ItemCodeName]); for (int i = 0; i < result.Dept.Count; i++) { resultList.Dept.Add(itemList.Unit); } resultList.Enery.Add(o.LayerObjectName, result.Enery[itemList.ItemCodeName].Select(p => p / decimal.Parse(o.PersonNum.ToString())).ToList()); } else { var tempValue = new decimal[result.Enery[result.Enery.Keys.First<string>()].Count]; foreach (var re in result.Enery) { for (var i = 0; i < re.Value.Count; i++) { tempValue[i] += re.Value[i]; } } for (int i = 0; i < result.Dept.Count; i++) { resultList.Dept.Add("T"); } resultList.Enery.Add(o.LayerObjectName, tempValue.ToList().Select(p => p / decimal.Parse(o.PersonNum.ToString())).ToList()); } } return resultList; } return null; }
public MainInfo GetIndexCompareEneryNew(DateTime startTime, DateTime endTime) { MainInfo mainInfo = new MainInfo(); mainInfo.IsOnlyElec = false; mainInfo.ItemValues = new List<EneryStatistic>(); mainInfo.PeriodValues = new List<EnerySum>(); var ObjectList = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList(string.Format(" and LayerObjectParentID={0}", 0), " order by LayerObjectID"); var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID"); //var ItemList = new BLL.Itemcode().GetItemcodeList("", " order by ItemcodeID"); EneryStatistic eneryStatistic4Elec = new EneryStatistic(); if (ItemList.Count == 1) {//只有电 mainInfo.IsOnlyElec = true;//只有电 eneryStatistic4Elec.CName = ItemList[0].ItemCodeName; eneryStatistic4Elec.ItemCode = ItemList[0].ItemCodeNumber; eneryStatistic4Elec.Unit = ItemList[0].Unit; ItemList = new BLL.Itemcode().GetItemcodeList(string.Format(" and ParentID={0}", ItemList[0].ItemcodeID), " order by ItemcodeID"); } BaseQueryModel model = new BaseQueryModel(); model.IsDevice = 0; model.ObjectList = (from p in ObjectList select p.LayerObjectID).ToList<int>(); foreach (var item in ItemList) { EneryStatistic eneryStatistic = new EneryStatistic(); eneryStatistic.CName = item.ItemCodeName; eneryStatistic.ItemCode = item.ItemCodeNumber; eneryStatistic.Unit = item.Unit; model.ItemCode = item.ItemCodeNumber; decimal tempItemCoalEneryValue = 0; decimal tempLastMonthItemCoalEneryValue = 0; BaseResult ResList = new BaseResult(); if ((endTime - startTime).Days > 0) { model.Unit = ChartUnit.unit_day; model.Starttime = startTime; model.Endtime = DateTime.Parse(endTime.AddDays(-1).ToString("yyyy-MM-dd 00:00:00")); ResList = reportBll.GetBaseEneryDataList(model, true); if (ResList == null) { continue; } foreach (var r in ResList.BaseLayerObjectResults) { eneryStatistic.EneryValue += r.Value.Total; eneryStatistic.EnergyValue2Coal += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()); tempItemCoalEneryValue += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()); } } if (endTime.Hour > 0) { model.Unit = ChartUnit.unit_hour; model.Starttime = DateTime.Parse(endTime.ToString("yyyy-MM-dd 00:00:00")); model.Endtime = DateTime.Parse(endTime.ToString("yyyy-MM-dd HH:00:00")); ResList = reportBll.GetBaseEneryDataList(model, true); if (ResList == null) { continue; } foreach (var r in ResList.BaseLayerObjectResults) { eneryStatistic.EneryValue += r.Value.Total; eneryStatistic.EnergyValue2Coal += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()); tempItemCoalEneryValue += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()); } } eneryStatistic.EneryValue = decimal.Round(eneryStatistic.EneryValue, 2); eneryStatistic.EnergyValue2Coal = decimal.Round(eneryStatistic.EnergyValue2Coal, 2); tempItemCoalEneryValue = decimal.Round(tempItemCoalEneryValue, 2); model.Starttime = startTime.AddMonths(-1); model.Endtime = endTime.AddMonths(-1); if ((endTime - startTime).Days > 0) { model.Unit = ChartUnit.unit_day; model.Endtime = DateTime.Parse(model.Endtime.AddDays(-1).ToString("yyyy-MM-dd 00:00:00")); ResList = reportBll.GetBaseEneryDataList(model, true); if (ResList == null) { continue; } foreach (var r in ResList.BaseLayerObjectResults) { eneryStatistic.EnergyLastMonth += decimal.Round(r.Value.Total, 2); tempLastMonthItemCoalEneryValue += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()); } } if (endTime.Hour > 0) { model.Unit = ChartUnit.unit_hour; model.Starttime = DateTime.Parse(endTime.AddMonths(-1).ToString("yyyy-MM-dd 00:00:00")); model.Endtime = DateTime.Parse(endTime.AddMonths(-1).ToString("yyyy-MM-dd HH:00:00")); ResList = reportBll.GetBaseEneryDataList(model, true); if (ResList == null) { continue; } foreach (var r in ResList.BaseLayerObjectResults) { eneryStatistic.EnergyLastMonth += decimal.Round(r.Value.Total, 2); tempLastMonthItemCoalEneryValue += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()); } } eneryStatistic.EnergyLastMonth = decimal.Round(eneryStatistic.EnergyLastMonth, 2); tempLastMonthItemCoalEneryValue = decimal.Round(tempLastMonthItemCoalEneryValue, 2); if (eneryStatistic.EnergyLastMonth > 0) { eneryStatistic.MonthCompare = decimal.Round(100 * (eneryStatistic.EneryValue - eneryStatistic.EnergyLastMonth) / eneryStatistic.EnergyLastMonth, 2) .ToString(CultureInfo.InvariantCulture) + "%"; } mainInfo.Total += Math.Round(tempItemCoalEneryValue, 2); mainInfo.TotalLastMon += Math.Round(tempLastMonthItemCoalEneryValue, 2); if (mainInfo.IsOnlyElec) { eneryStatistic4Elec.EneryValue += eneryStatistic.EneryValue; eneryStatistic4Elec.EnergyValue2Coal += eneryStatistic.EneryValue; eneryStatistic4Elec.EnergyLastMonth += eneryStatistic.EnergyLastMonth; } mainInfo.ItemValues.Add(eneryStatistic); if (item.ItemCodeNumber == "01000") { GeneratePeriodValues(model, mainInfo); } } if (mainInfo.TotalLastMon > 0) { mainInfo.TotalCompare = decimal.Round(100 * (mainInfo.Total - mainInfo.TotalLastMon) / mainInfo.TotalLastMon, 2) .ToString(CultureInfo.InvariantCulture) + "%"; } if (mainInfo.IsOnlyElec) { eneryStatistic4Elec.MonthCompare = mainInfo.TotalCompare; mainInfo.ItemValues.Insert(0, eneryStatistic4Elec); model.ItemCode = "01000"; GeneratePeriodValues(model, mainInfo); } return mainInfo; }
public ResultView.IndexMonthEnery GetMonthItemCodeList(DateTime startTime, DateTime endTime) { IndexMonthEnery MonthResult = new IndexMonthEnery(); var ObjectList = new BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectParentID='{0}'", 0), " order by LayerObjectID"); string[] ItemCodeStr = { "01000", "02000", "03000", "04000" }; Dictionary<string, decimal> SumMonth = new Dictionary<string, decimal>(); BaseQueryModel model = new BaseQueryModel(); model.IsDevice = 0; model.ObjectList = (from p in ObjectList select p.LayerObjectID).ToList<int>(); foreach (var item in ItemCodeStr) { decimal tempCount = 0; model.ItemCode = item; model.Unit = ChartUnit.unit_month; model.Starttime = startTime; model.Endtime = endTime; var ResList = reportBll.GetBaseEneryDataList(model); foreach (var r in ResList.BaseLayerObjectResults) { tempCount += r.Value.Total; } SumMonth.Add(item, tempCount); } if (SumMonth.Count > 0) { MonthResult.MonthElectricity = SumMonth[ItemCodeStr[0]]; MonthResult.MonthWater = SumMonth[ItemCodeStr[1]]; MonthResult.MonthGas = SumMonth[ItemCodeStr[2]]; MonthResult.MonthWarm = SumMonth[ItemCodeStr[3]]; return MonthResult; } return null; }
public ResultItemCode GetPersonNumPeriodsQueryLineChart(QueryContrastPeriods query, TimePeriod time) { #region 定义区 var resultList = new ResultView.ResultItemCode { ObjectName = new List <string>(), Enery = new Dictionary <string, List <decimal> >(), Dept = new List <string>() }; #endregion var dept = string.Empty; var objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList( string.Format(" and layerobjectid={0}", query.AreaId), " order by LayerObjectID"); var itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID"); if (itList.Count > 0) { dept = itList[0].Unit; } dept = query.ItemCode == "00000" ? "T" : dept; if (query.ItemCode == "00000") { // resultList.Dept = new List<string>() { "T" }; var itemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID"); var eneryDataListTotal = new Dictionary <string, Dictionary <string, decimal> >(); var maxcode = "01000"; var count = 0; foreach (var itemcode in itemList) { var lineChart = GetPersonNumSingleItemCodeByObject(query, itemcode.ItemCodeNumber, time, 1); if (count < lineChart.Count) { count = lineChart.Count; maxcode = itemcode.ItemCodeNumber; } eneryDataListTotal.Add(itemcode.ItemCodeNumber, lineChart); // resultList.Enery.Add(itemcode.ItemCodeName, lineChart.DatePickEnery); } // 重新赋值 foreach (var itemcode in itemList) { var itemcode1 = itemcode; foreach (var max in eneryDataListTotal[maxcode].Where(max => !eneryDataListTotal[itemcode1.ItemCodeNumber].ContainsKey(max.Key))) { eneryDataListTotal[itemcode.ItemCodeNumber].Add(max.Key, 0); } var temp = eneryDataListTotal[itemcode.ItemCodeNumber].OrderBy(p => Convert.ToDateTime(p.Key)); var tempOrder = temp.ToDictionary(keyValuePair => keyValuePair.Key, keyValuePair => keyValuePair.Value); eneryDataListTotal[itemcode.ItemCodeNumber] = tempOrder; resultList.Enery.Add(itemcode.ItemCodeName, eneryDataListTotal[itemcode.ItemCodeNumber].Values.ToList()); } resultList.ObjectName = eneryDataListTotal[maxcode].Select(p => p.Key.ToString(CultureInfo.InvariantCulture)).ToList(); } else { var item = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID")[0]; var lineChart = GetSingleItemCodeByObjectNew(query, query.ItemCode, time, 0); // resultList.Dept = new List<string>() {item.Unit}; resultList.ObjectName = lineChart.Select(p => p.Key.ToString()).ToList(); resultList.Enery.Add(item.ItemCodeName, lineChart.Select(p => decimal.Parse(p.Value.ToString())).ToList()); } foreach (var baseLayerObject in resultList.ObjectName) { resultList.Dept.Add(dept); } return(resultList); }
public QueryEneryTotal GetDeviceQueryEneryTotal(NTS.WEB.DataContact.BasicQuery query) { BaseResult baseResult = new BaseResult(); baseResult.BaseLayerObjectResults = new Dictionary <string, BaseData>(); var Object = new BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectNum), " order by deviceid")[0]; baseResult.BaseLayerObjectResults = new Dictionary <string, BaseData>(); baseResult.BaseLayerObjectResults.Add(Object.DeviceID.ToString(), new BaseData()); baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList = new System.Collections.Hashtable(); baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Datas = new List <DataItems>(); baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList.Add("ITEMCOAL", 0); baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList.Add("ITEMCO2", 0); if (query.ItemCode != "00000") { query.ItemCode = Object.ItemCodeID; var resList = GetQueryDeviceSingleItemCodeEneryTotal(query); return(resList != null ? new QueryEneryTotal { TotalEnergy = resList.BaseLayerObjectResults[Object.DeviceID.ToString()].Total } : null); } else { query.ItemCode = Object.ItemCodeID; query.ItemCode = Object.ItemCodeID; var resList = GetQueryDeviceSingleItemCodeEneryTotal(query); return(resList != null ? new QueryEneryTotal { TotalEnergy = decimal.Parse(resList.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) } : null); //var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID"); //List<string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList<string>(); //Dictionary<string, decimal> DataValue = new Dictionary<string, decimal>(); //Dictionary<string, decimal> CoalDataValue = new Dictionary<string, decimal>(); //Dictionary<string, decimal> Co2DataValue = new Dictionary<string, decimal>(); //for (var item = 0; item < ItemCodeStr.Count; item++) //{ // query.ItemCode = ItemCodeStr[item]; // var ResList = GetQueryDeviceSingleItemCodeEneryTotal(query); // if (ResList != null) // { // baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Total += ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].Total; // baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()); // baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCO2"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCO2"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCO2"].ToString()); // foreach (var li in ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].Datas) // { // #region 累加赋值 // if (DataValue.ContainsKey(li.DatePick)) // { // DataValue[li.DatePick] += li.DataValue; // } // else // { // DataValue.Add(li.DatePick, li.DataValue); // } // if (CoalDataValue.ContainsKey(li.DatePick)) // { // CoalDataValue[li.DatePick] += li.CoalDataValue; // } // else // { // CoalDataValue.Add(li.DatePick, li.CoalDataValue); // } // if (Co2DataValue.ContainsKey(li.DatePick)) // { // Co2DataValue[li.DatePick] += li.Co2DataValue; // } // else // { // Co2DataValue.Add(li.DatePick, li.Co2DataValue); // } // #endregion // if (item == ItemCodeStr.Count - 1) // { // li.DataValue = DataValue[li.DatePick]; // li.CoalDataValue = CoalDataValue[li.DatePick]; // li.Co2DataValue = Co2DataValue[li.DatePick]; // baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Datas.Add(li); // } // } // } //} // if (baseResult != null) { return new QueryEneryTotal { TotalEnergy = baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Total }; } //return null; } }
public QueryEneryTotal GetQueryEneryTotal(NTS.WEB.DataContact.BasicQuery query) { BaseResult baseResult = new BaseResult(); baseResult.BaseLayerObjectResults = new Dictionary <string, BaseData>(); var Object = new BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectID={0}", query.ObjectNum), " order by LayerObjectID")[0]; baseResult.BaseLayerObjectResults = new Dictionary <string, BaseData>(); baseResult.BaseLayerObjectResults.Add(Object.LayerObjectID.ToString(), new BaseData()); baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList = new System.Collections.Hashtable(); baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Datas = new List <DataItems>(); baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList.Add("ITEMCOAL", 0); baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList.Add("ITEMCO2", 0); if (query.ItemCode != "00000") { var ResList = GetQuerySingleItemCodeEneryTotal(query); if (ResList != null) { return(new QueryEneryTotal { TotalEnergy = decimal.Parse(ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) }); } //TotalEnergy = ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Total return(null); } else { var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID"); List <string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList <string>(); Dictionary <string, decimal> DataValue = new Dictionary <string, decimal>(); Dictionary <string, decimal> CoalDataValue = new Dictionary <string, decimal>(); Dictionary <string, decimal> Co2DataValue = new Dictionary <string, decimal>(); for (var item = 0; item < ItemCodeStr.Count; item++) { query.ItemCode = ItemCodeStr[item]; var ResList = GetQuerySingleItemCodeEneryTotal(query); if (ResList != null) { baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Total += ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Total; baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()); baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCO2"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCO2"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCO2"].ToString()); foreach (var li in ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Datas) { #region 累加赋值 if (DataValue.ContainsKey(li.DatePick)) { DataValue[li.DatePick] += li.DataValue; } else { DataValue.Add(li.DatePick, li.DataValue); } if (CoalDataValue.ContainsKey(li.DatePick)) { CoalDataValue[li.DatePick] += li.CoalDataValue; } else { CoalDataValue.Add(li.DatePick, li.CoalDataValue); } if (Co2DataValue.ContainsKey(li.DatePick)) { Co2DataValue[li.DatePick] += li.Co2DataValue; } else { Co2DataValue.Add(li.DatePick, li.Co2DataValue); } #endregion if (item == ItemCodeStr.Count - 1) { li.DataValue = DataValue[li.DatePick]; li.CoalDataValue = CoalDataValue[li.DatePick]; li.Co2DataValue = Co2DataValue[li.DatePick]; baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Datas.Add(li); } } } } if (baseResult != null) { return(new QueryEneryTotal { TotalEnergy = decimal.Parse(baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) }); } return(null); } }
public QueryEneryTotal GetDeviceQueryEneryTotal(NTS.WEB.DataContact.BasicQuery query) { BaseResult baseResult = new BaseResult(); baseResult.BaseLayerObjectResults = new Dictionary<string, BaseData>(); var Object = new BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectNum), " order by deviceid")[0]; baseResult.BaseLayerObjectResults = new Dictionary<string, BaseData>(); baseResult.BaseLayerObjectResults.Add(Object.DeviceID.ToString(), new BaseData()); baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList = new System.Collections.Hashtable(); baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Datas = new List<DataItems>(); baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList.Add("ITEMCOAL", 0); baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList.Add("ITEMCO2", 0); if (query.ItemCode != "00000") { query.ItemCode = Object.ItemCodeID; var resList = GetQueryDeviceSingleItemCodeEneryTotal(query); return resList != null ? new QueryEneryTotal { TotalEnergy = resList.BaseLayerObjectResults[Object.DeviceID.ToString()].Total } : null; } else { query.ItemCode = Object.ItemCodeID; query.ItemCode = Object.ItemCodeID; var resList = GetQueryDeviceSingleItemCodeEneryTotal(query); return resList != null ? new QueryEneryTotal { TotalEnergy = decimal.Parse(resList.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) } : null; //var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID"); //List<string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList<string>(); //Dictionary<string, decimal> DataValue = new Dictionary<string, decimal>(); //Dictionary<string, decimal> CoalDataValue = new Dictionary<string, decimal>(); //Dictionary<string, decimal> Co2DataValue = new Dictionary<string, decimal>(); //for (var item = 0; item < ItemCodeStr.Count; item++) //{ // query.ItemCode = ItemCodeStr[item]; // var ResList = GetQueryDeviceSingleItemCodeEneryTotal(query); // if (ResList != null) // { // baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Total += ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].Total; // baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()); // baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCO2"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCO2"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCO2"].ToString()); // foreach (var li in ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].Datas) // { // #region 累加赋值 // if (DataValue.ContainsKey(li.DatePick)) // { // DataValue[li.DatePick] += li.DataValue; // } // else // { // DataValue.Add(li.DatePick, li.DataValue); // } // if (CoalDataValue.ContainsKey(li.DatePick)) // { // CoalDataValue[li.DatePick] += li.CoalDataValue; // } // else // { // CoalDataValue.Add(li.DatePick, li.CoalDataValue); // } // if (Co2DataValue.ContainsKey(li.DatePick)) // { // Co2DataValue[li.DatePick] += li.Co2DataValue; // } // else // { // Co2DataValue.Add(li.DatePick, li.Co2DataValue); // } // #endregion // if (item == ItemCodeStr.Count - 1) // { // li.DataValue = DataValue[li.DatePick]; // li.CoalDataValue = CoalDataValue[li.DatePick]; // li.Co2DataValue = Co2DataValue[li.DatePick]; // baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Datas.Add(li); // } // } // } //} // if (baseResult != null) { return new QueryEneryTotal { TotalEnergy = baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Total }; } //return null; } }
public BaseResult GetQuerySingleItemCodeEneryTotal(NTS.WEB.DataContact.BasicQuery query) { var ObjectList = new BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectID={0}", query.ObjectNum), " order by LayerObjectID"); // var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=-1", " order by ItemcodeID"); //List<string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList<string>(); BaseQueryModel model = new BaseQueryModel(); model.IsDevice = 0; model.ObjectList = (from p in ObjectList select p.LayerObjectID).ToList<int>(); model.ItemCode = query.ItemCode; model.Unit = BaseTool.GetChartUnit(query.Unit); model.Starttime = query.StartTime; model.Endtime = query.EndTime; var ResList = reportBll.GetBaseEneryDataList(model); return ResList; }
public QueryEneryTotal GetQueryEneryTotal(NTS.WEB.DataContact.BasicQuery query) { BaseResult baseResult = new BaseResult(); baseResult.BaseLayerObjectResults = new Dictionary<string, BaseData>(); var Object = new BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectID={0}", query.ObjectNum), " order by LayerObjectID")[0]; baseResult.BaseLayerObjectResults = new Dictionary<string, BaseData>(); baseResult.BaseLayerObjectResults.Add(Object.LayerObjectID.ToString(), new BaseData()); baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList = new System.Collections.Hashtable(); baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Datas = new List<DataItems>(); baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList.Add("ITEMCOAL", 0); baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList.Add("ITEMCO2", 0); if (query.ItemCode != "00000") { var ResList = GetQuerySingleItemCodeEneryTotal(query); if (ResList != null) { return new QueryEneryTotal { TotalEnergy = decimal.Parse(ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) }; }//TotalEnergy = ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Total return null; } else { var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID"); List<string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList<string>(); Dictionary<string, decimal> DataValue = new Dictionary<string, decimal>(); Dictionary<string, decimal> CoalDataValue = new Dictionary<string, decimal>(); Dictionary<string, decimal> Co2DataValue = new Dictionary<string, decimal>(); for (var item = 0; item < ItemCodeStr.Count; item++) { query.ItemCode = ItemCodeStr[item]; var ResList = GetQuerySingleItemCodeEneryTotal(query); if (ResList != null) { baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Total += ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Total; baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()); baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCO2"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCO2"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCO2"].ToString()); foreach (var li in ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Datas) { #region 累加赋值 if (DataValue.ContainsKey(li.DatePick)) { DataValue[li.DatePick] += li.DataValue; } else { DataValue.Add(li.DatePick, li.DataValue); } if (CoalDataValue.ContainsKey(li.DatePick)) { CoalDataValue[li.DatePick] += li.CoalDataValue; } else { CoalDataValue.Add(li.DatePick, li.CoalDataValue); } if (Co2DataValue.ContainsKey(li.DatePick)) { Co2DataValue[li.DatePick] += li.Co2DataValue; } else { Co2DataValue.Add(li.DatePick, li.Co2DataValue); } #endregion if (item == ItemCodeStr.Count - 1) { li.DataValue = DataValue[li.DatePick]; li.CoalDataValue = CoalDataValue[li.DatePick]; li.Co2DataValue = Co2DataValue[li.DatePick]; baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Datas.Add(li); } } } } if (baseResult != null) { return new QueryEneryTotal { TotalEnergy = decimal.Parse(baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) }; } return null; } }
public string ExportQueryLineChart() { var inputValue = _ntsPage.Request.Form["Inputs"]; var query = Newtonsoft.Json.JsonConvert.DeserializeObject <BasicQuery>(inputValue); var result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IChart>("Chart") .GetQueryLineChart(query); try { string name = new BLL.BaseLayerObject().GetBaseLayerObjectList( string.Format(" and layerobjectid={0}", query.ObjectNum), " order by LayerObjectID")[0].LayerObjectName; string itemUnit = result.Dept[0]; var dept = string.Empty; var itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID"); if (itList.Count > 0) { dept = itList[0].Unit; } string itemName = query.ItemCode == "00000" ? "总能耗" : dept; var ItemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID"); string ItemName = query.ItemCode == "00000" ? "总能耗" : ItemList[0].ItemCodeName; DataTable dt = TableView.CreateBaseDataTable(); if (query.ItemCode != "00000") { for (var r = 0; r < result.Enery[itList[0].ItemCodeName].Count; r++) { DataRow dr = dt.NewRow(); dr[1] = result.ObjectName[r]; dr[2] = query.ObjectNum; dr[3] = name; dr[4] = result.ObjectName[r]; dr[5] = result.ObjectName[r]; dr[6] = itemName; dr[7] = decimal.Round(decimal.Parse(result.Enery[itList[0].ItemCodeName][r].ToString()), 2).ToString(); dt.Rows.Add(dr); } } else { foreach (var i in result.Enery) { DataRow drs = dt.NewRow(); drs[1] = i.Key; drs[2] = "-"; drs[3] = "-"; drs[4] = "-"; drs[5] = "-"; drs[6] = "-"; drs[7] = "-"; dt.Rows.Add(drs); for (var r = 0; r < result.Enery[i.Key].Count; r++) { DataRow dr = dt.NewRow(); dr[1] = result.ObjectName[r]; dr[2] = query.ObjectNum; dr[3] = name; dr[4] = result.ObjectName[r]; dr[5] = result.ObjectName[r]; dr[6] = itemName; dr[7] = decimal.Round(decimal.Parse(result.Enery[i.Key][r].ToString()), 2); dt.Rows.Add(dr); } } } if (dt != null) { string temp_path = AppDomain.CurrentDomain.BaseDirectory + "temp_file\\"; if (!Directory.Exists(temp_path)) { Directory.CreateDirectory(temp_path); string[] files = Directory.GetFiles(temp_path); foreach (string fn in files) { File.Delete(temp_path + fn); } } string save_path = DateTime.Now.Ticks + ".xls"; string templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\能耗查询.xls"; TemplateParam param = new TemplateParam(name + " " + ItemName + " ", new CellParam(0, 0), query.StartTime.ToString("yyyy-MM-dd") + "~" + query.EndTime.ToString("yyyy-MM-dd"), new CellParam(3, 0), false, new CellParam(4, 0)); param.DataColumn = new[] { 0, 3, 1, 7 }; param.ItemUnit = "(单位:" + itemUnit + ")"; param.ItemUnitCell = new CellParam(3, 4); dt.TableName = "能耗查询统计"; ExportHelper.ExportExcel(dt, temp_path + save_path, templatePath, param); return("{\"status\":\"success\",\"msg\":\"" + "/temp_file/" + save_path + "\"}"); } else { return("{\"status\":\"error\",\"msg\":\"导出失败:当前无任何数据\"}"); } } catch (Exception ex) { return("{\"status\":\"error\",\"msg\":\"导出失败:由于当前无数据或其他原因导致" + ex.Message + "\"}"); } }
/// <summary> /// 返回首页的电分类占比图 /// </summary> /// <returns></returns> public List<decimal> GetIndexPieChart() { var objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and layerobjectparentid={0}", 0), " order by LayerObjectID"); var itemList = new NTS.WEB.BLL.Itemcode().GetItemcodeList(string.Format(" and ParentID=(select itemcodeid from Becm_ItemCode where ItemCodeNumber='{0}')", "01000"), " order by ItemcodeID"); var list = (from item in itemList select new BaseQueryModel { IsDevice = 0, ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>(), ItemCode = item.ItemCodeNumber, Unit = ChartUnit.unit_month, Starttime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-1")), Endtime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-1")) } into model select _reportBll.GetBaseEneryDataList(model) into resList select objectList.Sum(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString()].Total)).ToList(); return list; }
public string ExportExcelCostQuery() { var inputValue = _ntsPage.Request.Form["Inputs"]; var query = Newtonsoft.Json.JsonConvert.DeserializeObject <QueryCost>(inputValue); var result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.ICostQueryService>("CostQueryService").GetCostQuery(query); string objectName = ""; switch (query.ObjType) { case AreaType.Area: objectName = new BLL.BaseLayerObject().GetBaseLayerObjectList( string.Format(" and layerobjectid={0}", query.ObjectId), " order by LayerObjectID")[0].LayerObjectName; break; case AreaType.Liquid: objectName = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList( string.Format(" and layerobjectid={0}", query.ObjectId), " order by LayerObjectID")[0].LayerObjectName; break; } var dept = string.Empty; List <Model.Itemcode> itList = null; string unit = ""; string itemCodeName = ""; itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID"); if (itList.Count > 0) { dept = itList[0].Unit; } unit = query.ItemCode == "00000" ? "T" : dept; itemCodeName = itList.Count == 0 ? "总能耗" : itList[0].ItemCodeName; try { if (result.FeeTbl != null) { if (result.FeeTbl.FeeList.Count > 0) { DataTable dt = TableView.CreateCostQueryDataTable(result); for (var r = 0; r < result.FeeTbl.FeeList.Count; r++) { DataRow dr = dt.NewRow(); for (int j = 1; j <= dt.Columns.Count - 1; j++) { dr[j] = result.FeeTbl.FeeList[r][j - 1]; } dt.Rows.Add(dr); } string temp_path = AppDomain.CurrentDomain.BaseDirectory + "temp_file\\"; if (!Directory.Exists(temp_path)) { Directory.CreateDirectory(temp_path); string[] files = Directory.GetFiles(temp_path); foreach (string fn in files) { File.Delete(temp_path + fn); } } string save_path = DateTime.Now.Ticks + ".xls"; string templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\费用查询.xls"; string time = ""; switch (query.Particle) { case Particle.Month: time = query.StartTime.Year + "-" + query.StartTime.Month + "月"; break; case Particle.Year: time = query.StartTime.Year + "年"; break; } TemplateParam param = new TemplateParam(objectName + " 费用查询---" + itemCodeName + "能耗", new CellParam(0, 0), time, new CellParam(3, 0), true, new CellParam(4, 0)); List <int> columnIndex = new List <int>(); for (int i = 0; i <= dt.Columns.Count - 1; i++) { columnIndex.Add(i); } param.DataColumn = columnIndex.ToArray(); param.ItemUnit = "(单位:" + unit + ")"; param.ItemUnitCell = new CellParam(3, 5); param.SortColumn = 0; dt.TableName = "费用查询"; ExportHelper.ExportExcel(dt, temp_path + save_path, templatePath, param); return("{\"status\":\"success\",\"msg\":\"" + "/temp_file/" + save_path + "\"}"); } else { return("{\"status\":\"error\",\"msg\":\"导出失败:当前无任何数据\"}"); } } else { return("{\"status\":\"error\",\"msg\":\"导出失败:当前无任何数据\"}"); } } catch (Exception ex) { return("{\"status\":\"error\",\"msg\":\"导出失败:由于当前无数据或其他原因导致" + ex.Message + "\"}"); } }
public ResultQueryPie GetQueryPieChart(DataContact.BasicQuery query) { #region 定义区 var resultList = new ResultView.ResultQueryPie { ObjectName = new List<string>(), Enery = new List<decimal>(), Dept = new List<string>() }; #endregion var objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList( string.Format(" and layerobjectparentid={0}", query.ObjectNum), " order by LayerObjectID"); if (objectList.Count > 0) { decimal eTotal = 0; for (var i = 0; i < objectList.Count; i++) { var querynew = new BasicQuery { StartTime = query.StartTime, EndTime = query.EndTime, ItemCode = query.ItemCode, ObjectNum = objectList[i].LayerObjectID, ObjectType = query.ObjectType, Unit = query.Unit }; //if (i < 5) //{ if (query.ItemCode != "00000") { var item = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID")[0]; resultList.Dept.Add(item.Unit); } else { resultList.Dept.Add("T"); } resultList.ObjectName.Add(objectList[i].LayerObjectName); resultList.Enery.Add(new QueryEnery().GetQueryEneryTotal(querynew).TotalEnergy); //} //else //{ // eTotal += new QueryEnery().GetQueryEneryTotal(querynew).TotalEnergy; // if (i == objectList.Count - 1) // { // if (query.ItemCode != "00000") // { // var item = // new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", // " order by ItemcodeID")[0]; // resultList.Dept.Add(item.Unit); // } // else // { // resultList.Dept.Add("T"); // } // resultList.ObjectName.Add("其他"); // resultList.Enery.Add(eTotal); // } //} } if (resultList.Enery.Count > 5) { //resultList.ObjectName[5] = "其他"; List<EnergyRank> lstEnergy = new List<EnergyRank>(); for (var i = 0; i < resultList.Enery.Count; i++) { EnergyRank er = new EnergyRank(); er.ObjName = resultList.ObjectName[i]; er.Energy = resultList.Enery[i]; lstEnergy.Add(er); } lstEnergy = lstEnergy.OrderByDescending(p => p.Energy).ToList(); resultList.Dept.Clear(); resultList.ObjectName.Clear(); resultList.Enery.Clear(); if (lstEnergy.Count < 6) { foreach (EnergyRank er in lstEnergy) { resultList.Dept.Add("T"); resultList.ObjectName.Add(er.ObjName); resultList.Enery.Add(er.Energy); } } else { for (int i = 0; i < 5; i++) { resultList.Dept.Add("T"); resultList.ObjectName.Add(lstEnergy[i].ObjName); resultList.Enery.Add(lstEnergy[i].Energy); } resultList.Dept.Add("T"); resultList.ObjectName.Add("其他"); //统计排名第五以后的能耗总和。 resultList.Enery.Add(lstEnergy.GetRange(5, lstEnergy.Count - 5).Sum(p => p.Energy)); } } return resultList; } else { var deviceList = new List<Device>(); if (query.ItemCode == "00000") { deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + query.ObjectNum, " order by deviceid"); } else { string itemCodeAll = query.ItemCode; string tempCode = string.Empty; var itemcodeList = new NTS.WEB.BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by itemcodeid")[0]; var itemcodeListChild = new NTS.WEB.BLL.Itemcode().GetItemcodeList(" and ParentID=" + itemcodeList.ParentID, " order by itemcodeid"); foreach (Model.Itemcode itemcode in itemcodeListChild) tempCode += ",'" + itemcode.ItemCodeNumber + "'"; itemCodeAll = itemCodeAll.Length > 0 ? "'" + itemCodeAll + "'" : itemCodeAll.Substring(1); deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and ItemCodeID in (" + itemCodeAll + ") and areaid=" + query.ObjectNum, " order by deviceid"); } if (deviceList.Count > 0) { decimal eTotal = 0; for (var i = 0; i < deviceList.Count; i++) { var querynew = new BasicQuery { StartTime = query.StartTime, EndTime = query.EndTime, ItemCode = query.ItemCode, ObjectNum = deviceList[i].DeviceID, ObjectType = query.ObjectType, Unit = query.Unit }; if (i < 5) { if (query.ItemCode != "00000") { var item = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID")[0]; resultList.Dept.Add(item.Unit); } else { resultList.Dept.Add("T"); } resultList.ObjectName.Add(deviceList[i].DeviceName); resultList.Enery.Add(new QueryEnery().GetDeviceQueryEneryTotal(querynew).TotalEnergy); } else { eTotal += new QueryEnery().GetDeviceQueryEneryTotal(querynew).TotalEnergy; if (i == deviceList.Count - 1) { if (query.ItemCode != "00000") { var item = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID")[0]; resultList.Dept.Add(item.Unit); } else { resultList.Dept.Add("T"); } resultList.ObjectName.Add("其他"); resultList.Enery.Add(eTotal); } } } return resultList; } } return null; }
public ResultCompare GetAreaCompareChart(QueryOrderObjects queryObject) { #region 定义区 var resultList = new ResultView.ResultCompare { ObjectName = new List <string>(), Enery = new Dictionary <string, List <decimal> >(), Dept = new List <string>() }; #endregion var olist = queryObject.AreaIdLst.Aggregate(string.Empty, (current, q) => current + ("," + q.ToString())); if (olist.Length > 0) { List <Model.BaseLayerObject> objectList; if (queryObject.ObjType == AreaType.Area) { objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList( string.Format(" and layerobjectid in ({0})", olist.Substring(1)), " order by LayerObjectID"); } else { objectList = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList( string.Format(" and layerobjectid in ({0})", olist.Substring(1)), " order by LayerObjectID"); } foreach (var o in objectList) { var basicQuery = new BasicQuery { EndTime = queryObject.EndTime, StartTime = queryObject.StartTime, ItemCode = queryObject.ItemCode, Unit = queryObject.Particle, AreaType = queryObject.ObjType, QueryType = queryObject.QueryType }; basicQuery.ObjectNum = o.LayerObjectID; var result = GetQueryLineChart(basicQuery); //resultList.Dept = result.Dept; resultList.ObjectName = result.ObjectName; if (queryObject.ItemCode != "00000") { var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + queryObject.ItemCode + "'", " order by ItemcodeID")[0]; //resultList.Enery.Add(o.LayerObjectName, result.Enery[itemList.ItemCodeName]); for (int i = 0; i < result.Dept.Count; i++) { resultList.Dept.Add(itemList.Unit); } resultList.Enery.Add(o.LayerObjectName, result.Enery[itemList.ItemCodeName].Select(p => p / decimal.Parse(o.AreaNum.ToString())).ToList()); } else { var tempValue = new decimal[result.Enery[result.Enery.Keys.First <string>()].Count]; foreach (var re in result.Enery) { for (var i = 0; i < re.Value.Count; i++) { tempValue[i] += re.Value[i]; } } for (int i = 0; i < result.Dept.Count; i++) { resultList.Dept.Add("T"); } resultList.Enery.Add(o.LayerObjectName, tempValue.ToList().Select(p => p / decimal.Parse(o.AreaNum.ToString())).ToList()); } } return(resultList); } return(null); }
public ResultView.IndexWindowResult GetItemCodeListByObjectID(QueryIndexWindow query) { Dictionary<string, BaseResult> Res = new Dictionary<string, BaseResult>(); IndexWindowResult Results = new IndexWindowResult(); string[] ItemCodeStr = { "01000", "02000", "03000", "04000" };//daixy 该处需要修改 DateTime[] Dates = { query.StatisticsDate, query.StatisticsDate.AddDays(-1) }; List<Model.BaseLayerObject> queryObjectList = new BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectID={0}", query.BuildingNumber), " order by LayerObjectID"); var queryObject = new Model.BaseLayerObject(); if (queryObjectList.Count > 0) { queryObject = queryObjectList[0]; } else { return null; } BaseQueryModel model1 = new BaseQueryModel(); try { BaseQueryModel model = new BaseQueryModel(); model.IsDevice = 0; model.ObjectList = new List<int>() { query.BuildingNumber }; foreach (var i in ItemCodeStr) { foreach (var d in Dates) { model.ItemCode = i; model.Unit = ChartUnit.unit_day; model.Starttime = d; model.Endtime = d; model1 = new BaseQueryModel(); model1.ItemCode = i; model1.Unit = ChartUnit.unit_day; model1.Starttime = d; model1.Endtime = d; Res.Add(i + "_" + d, reportBll.GetBaseEneryDataList(model)); } } if (Res.Count > 0) { Results.Electricity = Res[ItemCodeStr[0] + "_" + Dates[0]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()].Total; Results.Water = Res[ItemCodeStr[1] + "_" + Dates[0]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()].Total; Results.Gas = Res[ItemCodeStr[2] + "_" + Dates[0]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()].Total; Results.Warm = Res[ItemCodeStr[3] + "_" + Dates[0]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()].Total; if ( Res[ItemCodeStr[0] + "_" + Dates[1]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()] .Total == 0) { Results.ComparedElectricity = "-"; } else { Results.ComparedElectricity = decimal.Round( 100 * (Results.Electricity - Res[ItemCodeStr[0] + "_" + Dates[1]].BaseLayerObjectResults[ queryObject.LayerObjectID.ToString()].Total) / Res[ItemCodeStr[0] + "_" + Dates[1]].BaseLayerObjectResults[ queryObject.LayerObjectID.ToString()].Total, 2).ToString() + "%"; } if (Res[ItemCodeStr[1] + "_" + Dates[1]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()] .Total == 0) { Results.ComparedWater = "-"; } else { Results.ComparedWater = decimal.Round( 100 * (Results.Water - Res[ItemCodeStr[1] + "_" + Dates[1]].BaseLayerObjectResults[ queryObject.LayerObjectID.ToString()].Total) / Res[ItemCodeStr[1] + "_" + Dates[1]].BaseLayerObjectResults[ queryObject.LayerObjectID.ToString()].Total, 2).ToString() + "%"; } if (Res[ItemCodeStr[2] + "_" + Dates[1]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()] .Total == 0) { Results.ComparedGas = "-"; } else { Results.ComparedGas = decimal.Round( 100 * (Results.Gas - Res[ItemCodeStr[2] + "_" + Dates[1]].BaseLayerObjectResults[ queryObject.LayerObjectID.ToString()].Total) / Res[ItemCodeStr[2] + "_" + Dates[1]].BaseLayerObjectResults[ queryObject.LayerObjectID.ToString()].Total, 2).ToString() + "%"; } if (Res[ItemCodeStr[3] + "_" + Dates[1]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()] .Total == 0) { Results.ComparedWarm = "-"; } else { Results.ComparedWarm = decimal.Round( 100 * (Results.Warm - Res[ItemCodeStr[3] + "_" + Dates[1]].BaseLayerObjectResults[ queryObject.LayerObjectID.ToString()].Total) / Res[ItemCodeStr[3] + "_" + Dates[1]].BaseLayerObjectResults[ queryObject.LayerObjectID.ToString()].Total, 2).ToString() + "%"; } return Results; } } catch (Exception ex) { return null; } return null; }