public string GetDeviceListByArea(QueryDevice query) { StringBuilder sbTree = new StringBuilder(); // var result = new ResultDevice(); // result.DeviceUnitList = new List<DeviceUnit>(); List <NTS.WEB.Model.Device> deviceList; if (query.ItemCode == "00000" || string.IsNullOrEmpty(query.ItemCode)) { deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + query.AreaID, " 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.ItemcodeID, " order by itemcodeid"); foreach (NTS.WEB.Model.Itemcode itemcode in itemcodeListChild) { tempCode += ",'" + itemcode.ItemCodeNumber + "'"; } itemCodeAll = tempCode.Length > 0 ? tempCode.Substring(1) : "'" + itemCodeAll + "'"; deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and ItemCodeID in (" + itemCodeAll + ") and areaid=" + query.AreaID, " order by deviceid"); } sbTree.Append("["); for (var device = 0; device < deviceList.Count; device++) { sbTree.Append("{\"text\": \"" + deviceList[device].DeviceName + "\",\"id\": " + deviceList[device].DeviceID + ",\"classes\": \"equip\"}"); sbTree.Append(device == deviceList.Count - 1 ? "" : ","); } sbTree.Append("]"); return(sbTree.ToString()); }
public string GetDeviceListByArea(QueryDevice query) { StringBuilder sbTree = new StringBuilder(); // var result = new ResultDevice(); // result.DeviceUnitList = new List<DeviceUnit>(); List <Device> deviceList; if (query.ItemCode == "00000") { deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + query.AreaID, " order by deviceid"); } else { string itemCodeAll = query.ItemCode; 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"); itemCodeAll = itemcodeListChild.Aggregate(itemCodeAll, (current, itemcode) => current + ("," + itemcode.ItemcodeID)); deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and ItemCodeID in (" + itemCodeAll + ") and areaid=" + query.AreaID, " order by deviceid"); } sbTree.Append("["); for (var device = 0; device < deviceList.Count; device++) { sbTree.Append("{\"text\": \"" + deviceList[device].DeviceName + "\",\"id\": " + deviceList[device].DeviceID + ",\"classes\": \"equip\"}"); sbTree.Append(device == deviceList.Count - 1 ? "" : ","); } sbTree.Append("]"); return(sbTree.ToString()); }
public string GetDeviceListByArea(QueryDevice query) { StringBuilder sbTree = new StringBuilder(); // var result = new ResultDevice(); // result.DeviceUnitList = new List<DeviceUnit>(); List<Device> deviceList; if(query.ItemCode=="00000") { deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + query.AreaID, " order by deviceid"); } else { string itemCodeAll = query.ItemCode; 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"); itemCodeAll = itemcodeListChild.Aggregate(itemCodeAll, (current, itemcode) => current + ("," + itemcode.ItemcodeID)); deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and ItemCodeID in (" + itemCodeAll + ") and areaid=" + query.AreaID, " order by deviceid"); } sbTree.Append("["); for (var device=0; device< deviceList.Count;device++) { sbTree.Append("{\"text\": \"" + deviceList[device].DeviceName + "\",\"id\": " + deviceList[device].DeviceID + ",\"classes\": \"equip\"}"); sbTree.Append(device == deviceList.Count - 1 ? "" : ","); } sbTree.Append("]"); return sbTree.ToString(); }
public Hashtable GetKeyHash() { var res = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList("", "order by deviceid"); var device = 0; device = (res.Count > 0 ? res[0].DeviceID : 0); var h= new Hashtable {{"DeviceNum", device}}; return h; }
public Hashtable GetKeyHash() { var res = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList("", "order by deviceid"); var device = 0; device = (res.Count > 0 ? res[0].DeviceID : 0); var h = new Hashtable { { "DeviceNum", device } }; return(h); }
public LayerObjects() { var listObject = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList("", " order by LayerObjectID"); foreach (var l in listObject) { // tabel.Add(new Tree() { id = l.LayerObjectID, name = l.LayerObjectName, deepth = l.LayerObjectDeepth, pid = l.LayerObjectParentID }); tabel.Add(new Tree() { id = l.LayerObjectID, name = l.LayerObjectName, pid = l.LayerObjectParentID }); } BuildLayers(0, 1); }
public void GetChildBaseLayerObjects(int parentId) { var result= new NTS.WEB.BLL.BaseLayerObject().GetBaseFuncLayerObjectList( string.Format(" and layerobjectparentid={0}", parentId), ""); if (result.Count <= 0) return; foreach (var baseLayerObject in result) { _tempList.Add(baseLayerObject); GetChildBaseLayerObjects(baseLayerObject.LayerObjectID); } }
public void GetChildBaseLayerObjects(int parentId) { var result = new NTS.WEB.BLL.BaseLayerObject().GetBaseFuncLayerObjectList( string.Format(" and layerobjectparentid={0}", parentId), ""); if (result.Count <= 0) { return; } foreach (var baseLayerObject in result) { _tempList.Add(baseLayerObject); GetChildBaseLayerObjects(baseLayerObject.LayerObjectID); } }
public Dictionary<string, decimal> GetSingleItemCodeByObject22(QueryContrastPeriods query2, int isCoal) { QueryContrastPeriods query = new QueryContrastPeriods(); // var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() }; var eneryDataList = new Dictionary<string, decimal>(); var model = new BaseQueryModel(); var objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and layerobjectid={0}", query.ItemCode), " order by LayerObjectID"); model.IsDevice = 0; model.ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>(); model.ItemCode = query.ItemCode; //model.Unit = BaseTool.GetChartUnit(query); //model.Starttime = query.StartTime; //model.Endtime = query.EndTime; foreach (var perTime in query.PeriodLst) { model.Starttime = perTime.StartTime; model.Endtime = perTime.EndTime; var resList = _reportBll.GetBaseEneryDataList(model); //eneryDataList.Add(d.DatePick, isCoal == 0 ? d.DataValue : d.CoalDataValue); } // var resList = _reportBll.GetBaseEneryDataList(model); //foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString(CultureInfo.InvariantCulture)].Datas)) //{ // if (!eneryDataList.ContainsKey(d.DatePick)) // { // eneryDataList.Add(d.DatePick, isCoal == 0 ? d.DataValue : d.CoalDataValue); // } // else // { // eneryDataList[d.DatePick] += isCoal == 0 ? d.DataValue : d.CoalDataValue; // } //} //foreach (var e in eneryDataList) //{ // result.DatePick.Add(e.Key); // result.DatePickEnery.Add(e.Value); //} return eneryDataList; }
public string ExportExcelEnergyAnalyse() { var inputValue = _ntsPage.Request.Form["Inputs"]; var query = Newtonsoft.Json.JsonConvert.DeserializeObject <QueryAnalyse>(inputValue); string icode = query.ItemCode; EnergyAnalyseQueryType tempQueryType = query.QueryType; query.QueryType = EnergyAnalyseQueryType.Default;//总能耗 ResultEnergyAnalyse resultAll = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IChart>("Chart").GetEnergyAnalyseLineChart(query); ResultEnergyAnalyse resultArea = null; ResultEnergyAnalyse resultPerson = null; if (query.IsDevice == 0) { // query.QueryType = EnergyAnalyseQueryType.UnitArea; //单位面积 resultArea = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IChart>("Chart") .GetEnergyAnalyseLineChart(query); query.QueryType = EnergyAnalyseQueryType.UnitPerson;//人均 resultPerson = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IChart>("Chart") .GetEnergyAnalyseLineChart(query); } var dept = string.Empty; List <Model.Itemcode> itList = null; string unit = ""; string itemCodeName = ""; if (query.IsDevice == 1) { var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid"); itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + deviceList[0].ItemCodeID + "'", " order by ItemcodeID"); if (itList.Count > 0) { unit = itList[0].Unit;//单个分类分项单位 itemCodeName = itList[0].ItemCodeName; } if (query.ItemCode == "00000") { //总能耗 unit = "T"; //标准煤单位 itemCodeName = "总能耗"; } } else { itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID"); if (itList.Count > 0) { dept = itList[0].Unit; } unit = icode == "00000" ? "T" : dept; itemCodeName = itList.Count == 0 ? "总能耗" : itList[0].ItemCodeName; } //query.QueryType = tempQueryType; //switch (query.QueryType) //{ // case EnergyAnalyseQueryType.Convert2Co2: // case EnergyAnalyseQueryType.Convert2Coal: // unit = "T";//标准煤单位 // break; // case EnergyAnalyseQueryType.Convert2Money: // unit = "元";//标准煤单位 // break; //} try { if (resultAll.OrderLst.Count > 0) { DataTable dt = TableView.CreateOrderBaseDataTable(); for (var r = 0; r < resultAll.OrderLst.Count; r++) { DataRow dr = dt.NewRow(); dr[1] = resultAll.OrderLst[r].Tm; dr[2] = query.ObjectId; dr[3] = resultAll.OrderLst[r].Obj; dr[4] = resultAll.OrderLst[r].Tm; dr[5] = resultAll.OrderLst[r].Tm; dr[6] = itemCodeName; dr[7] = decimal.Round(decimal.Parse(resultAll.OrderLst[r].Val.ToString()), 2).ToString(); if (query.IsDevice == 0) { dr[8] = resultArea.OrderLst == null ? "0" : decimal.Round(decimal.Parse(resultArea.OrderLst[r].Val.ToString()), 2).ToString(); dr[9] = resultPerson.OrderLst == null ? "0" : decimal.Round(decimal.Parse(resultPerson.OrderLst[r].Val.ToString()), 2).ToString(); } 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"; if (query.IsDevice == 1) { templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\能耗分析表_设备.xls"; } TemplateParam param = new TemplateParam(resultAll.OrderLst[0].Obj + " " + itemCodeName + " ", 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, 8, 9 }; if (query.IsDevice == 1) { param.DataColumn = new[] { 0, 3, 1, 7 }; } 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\":\"导出失败:当前无任何数据\"}"); } } catch (Exception ex) { return("{\"status\":\"error\",\"msg\":\"导出失败:由于当前无数据或其他原因导致" + ex.Message + "\"}"); } }
public ResultRealLine DeviceRealChart(RealQuery query) { var pAction = new ExecuteProcess(); try { var result = new ResultRealLine { series = new List<EneryAnalyseSeries>(), Unit = "kwh" }; //ResultItemCode result = new ResultItemCode(); //result.Dept = new List<string>(); //result.Enery = new Dictionary<string, List<decimal>>(); //result.ObjectName = new List<string>(); // var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() }; var eneryDataList = new Dictionary<string, decimal>(); var model = new BaseQueryModel(); var objectList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid"); model.IsDevice = 1; model.ObjectList = (from p in objectList select p.DeviceID).ToList<int>(); model.ItemCode = objectList[0].ItemCodeID; model.Unit = ChartUnit.unit_hour; if (query.QueryType == EnergyAnalyseQueryType.Default) { model.Starttime = Convert.ToDateTime(System.DateTime.Now.ToString("yyyy-MM-dd")); model.Endtime = Convert.ToDateTime(System.DateTime.Now.ToString("yyyy-MM-dd")); } else if (query.QueryType == EnergyAnalyseQueryType.MonthCompare) { model.Starttime = Convert.ToDateTime(System.DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd")); model.Endtime = Convert.ToDateTime(System.DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd")); } else if (query.QueryType == EnergyAnalyseQueryType.YearCompare) { model.Starttime = Convert.ToDateTime(System.DateTime.Now.AddYears(-1).ToString("yyyy-MM-dd")); model.Endtime = Convert.ToDateTime(System.DateTime.Now.AddYears(-1).ToString("yyyy-MM-dd")); } var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + model.ItemCode + "'", " order by ItemcodeID")[0]; result.Unit = itemList.Unit;//by added wxy var resList = _reportBll.GetBaseEneryDataList(model); foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.DeviceID.ToString(CultureInfo.InvariantCulture)].Datas)) { if (!eneryDataList.ContainsKey(d.DatePick)) { eneryDataList.Add(d.DatePick, d.DataValue); } else { eneryDataList[d.DatePick] += d.DataValue; } } List<decimal> dat = new List<decimal>(); foreach (var e in eneryDataList) { dat.Add(e.Value); } EneryAnalyseSeries eas = new EneryAnalyseSeries(); eas.data = dat; result.series.Add(eas); pAction.Success = true; result.ActionInfo = pAction; return result; } catch (Exception ex) { pAction.Success = false; pAction.ExceptionMsg = ex.Message; return new ResultRealLine() { ActionInfo = pAction }; } }
public ResultIndexLineChart IndexElectricityLineChart(DateTime startTime, DateTime endTime) { var pAction = new ExecuteProcess(); try { var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() }; var eneryDataList = new Dictionary<string, decimal>(); var model = new BaseQueryModel(); var objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectParentID={0}", 0), " order by LayerObjectID"); model.IsDevice = 0; model.ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>(); model.ItemCode = "01000"; model.Unit = ChartUnit.unit_hour; model.Starttime = startTime; model.Endtime = endTime; var resList = _reportBll.GetBaseEneryDataList(model); foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString(CultureInfo.InvariantCulture)].Datas)) { if (!eneryDataList.ContainsKey(d.DatePick)) { eneryDataList.Add(d.DatePick, d.DataValue); } else { eneryDataList[d.DatePick] += d.DataValue; } } foreach (var e in eneryDataList) { result.DatePick.Add(e.Key); result.DatePickEnery.Add(e.Value); } pAction.Success = true; result.ActionInfo = pAction; return result; } catch (Exception ex) { pAction.Success = false; pAction.ExceptionMsg = ex.Message; return new ResultIndexLineChart() { ActionInfo = pAction }; } }
public string ExportExcelEnergyAnalyse() { var inputValue = _ntsPage.Request.Form["Inputs"]; var query = Newtonsoft.Json.JsonConvert.DeserializeObject<QueryAnalyse>(inputValue); string icode = query.ItemCode; EnergyAnalyseQueryType tempQueryType = query.QueryType; query.QueryType = EnergyAnalyseQueryType.Default;//总能耗 ResultEnergyAnalyse resultAll = Framework.Common.BaseWcf.CreateChannel<ServiceInterface.IChart>("Chart").GetEnergyAnalyseLineChart(query); ResultEnergyAnalyse resultArea = null; ResultEnergyAnalyse resultPerson = null; if (query.IsDevice == 0) {// query.QueryType = EnergyAnalyseQueryType.UnitArea;//单位面积 resultArea = Framework.Common.BaseWcf.CreateChannel<ServiceInterface.IChart>("Chart") .GetEnergyAnalyseLineChart(query); query.QueryType = EnergyAnalyseQueryType.UnitPerson;//人均 resultPerson = Framework.Common.BaseWcf.CreateChannel<ServiceInterface.IChart>("Chart") .GetEnergyAnalyseLineChart(query); } var dept = string.Empty; List<Model.Itemcode> itList = null; string unit = ""; string itemCodeName = ""; if (query.IsDevice == 1) { var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid"); itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + deviceList[0].ItemCodeID + "'", " order by ItemcodeID"); if (itList.Count > 0) { unit = itList[0].Unit;//单个分类分项单位 itemCodeName = itList[0].ItemCodeName; } if (query.ItemCode == "00000") {//总能耗 unit = "T";//标准煤单位 itemCodeName = "总能耗"; } } else { itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID"); if (itList.Count > 0) { dept = itList[0].Unit; } unit = icode == "00000" ? "T" : dept; itemCodeName = itList.Count == 0 ? "总能耗" : itList[0].ItemCodeName; } //query.QueryType = tempQueryType; //switch (query.QueryType) //{ // case EnergyAnalyseQueryType.Convert2Co2: // case EnergyAnalyseQueryType.Convert2Coal: // unit = "T";//标准煤单位 // break; // case EnergyAnalyseQueryType.Convert2Money: // unit = "元";//标准煤单位 // break; //} try { if (resultAll.OrderLst.Count > 0) { DataTable dt = TableView.CreateOrderBaseDataTable(); for (var r = 0; r < resultAll.OrderLst.Count; r++) { DataRow dr = dt.NewRow(); dr[1] = resultAll.OrderLst[r].Tm; dr[2] = query.ObjectId; dr[3] = resultAll.OrderLst[r].Obj; dr[4] = resultAll.OrderLst[r].Tm; dr[5] = resultAll.OrderLst[r].Tm; dr[6] = itemCodeName; dr[7] = decimal.Round(decimal.Parse(resultAll.OrderLst[r].Val.ToString()), 2).ToString(); if (query.IsDevice == 0) { dr[8] = resultArea.OrderLst == null ? "0" : decimal.Round(decimal.Parse(resultArea.OrderLst[r].Val.ToString()), 2).ToString(); dr[9] = resultPerson.OrderLst == null ? "0" : decimal.Round(decimal.Parse(resultPerson.OrderLst[r].Val.ToString()), 2).ToString(); } 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"; if (query.IsDevice == 1) { templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\能耗分析表_设备.xls"; } TemplateParam param = new TemplateParam(resultAll.OrderLst[0].Obj + " " + itemCodeName + " ", 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, 8, 9 }; if (query.IsDevice == 1) { param.DataColumn = new[] { 0, 3, 1, 7 }; } 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\":\"导出失败:当前无任何数据\"}"; } } catch (Exception ex) { return "{\"status\":\"error\",\"msg\":\"导出失败:由于当前无数据或其他原因导致" + ex.Message + "\"}"; } }
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; } }
public ResultItemCode RealChart(RealQuery query) { ResultItemCode result = new ResultItemCode(); result.Dept = new List<string>(); result.Enery = new Dictionary<string, List<decimal>>(); result.ObjectName = new List<string>(); // var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() }; var eneryDataList = new Dictionary<string, decimal>(); var model = new BaseQueryModel(); var objectList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid"); model.IsDevice = 1; model.ObjectList = (from p in objectList select p.DeviceID).ToList<int>(); model.ItemCode = objectList[0].ItemCodeID; model.Unit = ChartUnit.unit_hour; model.Starttime = Convert.ToDateTime(System.DateTime.Now.ToString("yyyy-MM-dd")); model.Endtime = Convert.ToDateTime(System.DateTime.Now.ToString("yyyy-MM-dd")); var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + model.ItemCode + "'", " order by ItemcodeID")[0]; var resList = _reportBll.GetBaseEneryDataList(model); foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.DeviceID.ToString(CultureInfo.InvariantCulture)].Datas)) { if (!eneryDataList.ContainsKey(d.DatePick)) { eneryDataList.Add(d.DatePick, d.DataValue); } else { eneryDataList[d.DatePick] += d.DataValue; } } result.Enery.Add(objectList[0].DeviceID.ToString(CultureInfo.InvariantCulture), eneryDataList.Values.ToList()); foreach (var e in eneryDataList) { result.Dept.Add(itemList.Unit); result.ObjectName.Add(e.Key); } return result; }
private void GetDeviceTreeJsonByList(int pId) { var deepth = 0; var objectlist = dal.GetBaseLayerObjectList("", " order by LayerObjectID"); //if (objectlist.Count > 0) //{ // deepth = objectlist[0].LayerObjectDeepth; //} deviceresult.Append(devicesb.ToString()); devicesb.Clear(); if (tabel.Count > 0) { devicesb.Append("["); var rows = (from l in tabel where l.pid.Equals(pId) select l).ToList <Tree>(); if (rows.Count > 0) { foreach (var row in rows) { //devicesb.Append("{\"id\":" + row.id + ",\"text\":\"" + row.name + "\",\"expanded\":false,\"classes\":\"" + GetClass(row.deepth) + "\""); devicesb.Append("{\"id\":" + row.id + ",\"text\":\"" + row.name + "\",\"expanded\":false,\"classes\":\"" + "build" + "\""); var childrows = (from l in tabel where l.pid.Equals(row.id) select l).ToList <Tree>(); if (childrows.Count > 0) { var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid"); if (deviceList.Count > 0 && row.id == deepth) { devicesb.Append(",\"hasChildren\":true"); } else { devicesb.Append(",\"hasChildren\":false"); } devicesb.Append(",\"children\":"); GetDeviceTreeJsonByList(row.id); deviceresult.Append(devicesb.ToString()); devicesb.Clear(); } else { var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid"); if (deviceList.Count > 0 && row.id == deepth) { devicesb.Append(",\"hasChildren\":true"); } else { devicesb.Append(",\"hasChildren\":false"); } devicesb.Append(",\"children\":"); GetDeviceTreeJsonByList(row.id); deviceresult.Append(devicesb.ToString()); devicesb.Clear(); } deviceresult.Append(devicesb.ToString()); devicesb.Clear(); devicesb.Append("},"); } devicesb = devicesb.Remove(devicesb.Length - 1, 1); } devicesb.Append("]"); deviceresult.Append(devicesb.ToString()); devicesb.Clear(); } }
/// <summary> /// 获得人均能耗值 /// </summary> /// <param name="query"></param> /// <param name="itemcode"></param> /// <param name="time"></param> /// <param name="isCoal"></param> /// <returns></returns> public Dictionary <string, decimal> GetPersonNumSingleItemCodeByObject(QueryContrastPeriods query, string itemcode, TimePeriod time, int isCoal) { // var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() }; var eneryDataList = new Dictionary <string, decimal>(); var model = new BaseQueryModel(); List <Model.BaseLayerObject> objectList = new List <Model.BaseLayerObject>(); if (query.ObjType == AreaType.Area) { objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and layerobjectid={0}", query.AreaId), " order by LayerObjectID"); } else { objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseFuncLayerObjectList(string.Format(" and layerobjectid={0}", query.AreaId), " order by LayerObjectID"); } model.IsDevice = 0; model.ObjectList = (from p in objectList select p.LayerObjectID).ToList <int>(); model.ItemCode = itemcode; model.Unit = BaseTool.GetChartUnit(query.particle); model.Starttime = time.StartTime; model.Endtime = time.EndTime; model.areaType = query.ObjType; var resList = _energCon.GetBaseEneryDataListNew(model); for (int iCount = 0; iCount < query.PeriodLst.Count; iCount++) { TimePeriod tpTime = query.PeriodLst[iCount]; } foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString(CultureInfo.InvariantCulture)].Datas)) { if (!eneryDataList.ContainsKey(d.DatePick)) { switch (query.QueryType) { case QueryOrderType.CarbanOut: eneryDataList.Add(d.DatePick, d.Co2DataValue); break; case QueryOrderType.ConvCoal: eneryDataList.Add(d.DatePick, d.CoalDataValue); break; case QueryOrderType.Renminbi: eneryDataList.Add(d.DatePick, d.MoneyDataValue); break; default: eneryDataList.Add(d.DatePick, d.DataValue); break; } } else { eneryDataList[d.DatePick] += isCoal == 0 ? d.DataValue : d.CoalDataValue; switch (query.QueryType) { case QueryOrderType.CarbanOut: eneryDataList[d.DatePick] += d.Co2DataValue; break; case QueryOrderType.ConvCoal: eneryDataList[d.DatePick] += d.CoalDataValue; break; case QueryOrderType.Renminbi: eneryDataList[d.DatePick] += d.MoneyDataValue; break; default: eneryDataList[d.DatePick] += d.DataValue; break; } } } //foreach (var e in eneryDataList) //{ // result.DatePick.Add(e.Key); // result.DatePickEnery.Add(e.Value); //} return(eneryDataList); }
public IndexShopOrder GetIndexShopOrder(DateTime startTime, DateTime endTime) { var shopOrder = new IndexShopOrder { TotalEneryOrderList = new List<EneryOrder>(), AreaEneryOrderList = new List<EneryOrder>() }; var shopOrderLast = new IndexShopOrder { TotalEneryOrderList = new List<EneryOrder>(), AreaEneryOrderList = new List<EneryOrder>() }; Dictionary<int, string> cacheLayer = NTS.WEB.Common.CacheHelper.GetCache("object-Layer") as Dictionary<int, string>; if (cacheLayer == null) { var res = new LayerObjects().GetObjectLayers(); NTS.WEB.Common.CacheHelper.SetCache("object-Layer", res); cacheLayer = res; } var deepth = cacheLayer.ContainsKey(int.Parse(ConfigurationManager.AppSettings["ShopLevel"])) ? int.Parse(ConfigurationManager.AppSettings["ShopLevel"]) : cacheLayer.Count; shopOrderLast.ShopLevel = GetShopLevel(deepth); //层级对象数据 var listObject = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList (string.Format(" and layerobjectid in ({0})", cacheLayer[deepth]), " order by LayerObjectID"); //拼接表名 string tbName = "TS_COUNT_AREA_MONTH_" + startTime.Year.ToString(); var monthDataList = new NTS.WEB.BLL.MonthDataObject().GetMonthDataObjectList(tbName, startTime.ToShortDateString()); //分类分项 var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID"); //总能耗 //List<EneryOrder> lstTotal = (from o in listObject // join b in monthDataList // on o.LayerObjectID equals int.Parse(b.CNAME) // select new EneryOrder // { // BuildingName = o.LayerObjectName, // EneryValue = b.COUNTVALUE * ItemList.Find(p => p.ItemCodeNumber == b.ITEMCODE).ItemCoal // }).ToList(); List<EneryOrder> lstTotal = (from o in listObject join b in monthDataList on o.LayerObjectID equals int.Parse(b.CNAME) select new EneryOrder { BuildingName = o.LayerObjectName, // EneryValue=0 EneryValue = b.COUNTVALUE * Convert.ToDouble(ItemList.Find(p => p.ItemCodeNumber.Substring(0, 2) == b.ITEMCODE.Substring(0, 2)).ItemCoal.ToString()) }).ToList(); ////单位面积能耗 List<EneryOrder> lstArea = (from o in listObject join b in monthDataList on o.LayerObjectID equals int.Parse(b.CNAME) select new EneryOrder { BuildingName = o.LayerObjectName, //EneryValue=0 EneryValue = (b.COUNTVALUE * Convert.ToDouble(ItemList.Find(p => p.ItemCodeNumber.Substring(0, 2) == b.ITEMCODE.Substring(0, 2)).ItemCoal.ToString())) / o.AreaNum }).ToList(); List<EneryOrder> lstTtl = new List<EneryOrder>(); List<EneryOrder> lstAr = new List<EneryOrder>(); //按对象名称分组 var lstGpTtl = from item in lstTotal group item by item.BuildingName; string nm = string.Empty; double sum = 0; foreach (var group in lstGpTtl) { nm = string.Empty; sum = 0; foreach (var v in group) { nm = v.BuildingName; sum += v.EneryValue; } lstTtl.Add(new EneryOrder { BuildingName = nm, EneryValue = sum }); } var lstGpAr = from item in lstArea group item by item.BuildingName; foreach (var group in lstGpAr) { nm = string.Empty; sum = 0; foreach (var v in group) { nm = v.BuildingName; sum += v.EneryValue; } lstAr.Add(new EneryOrder { BuildingName = nm, EneryValue = sum }); } // var objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectDeepth={0}", deepth), " order by LayerObjectID"); //List<string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList<string>(); //var model = new BaseQueryModel(); //model.IsDevice = 0; //model.ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>(); //Dictionary<string, decimal> tempConvert = new Dictionary<string, decimal>(); //Dictionary<string, decimal> tempAreaConvert = new Dictionary<string, decimal>(); //decimal[] tempConvert = new decimal[objectList.Count]; //decimal[] tempAreaConvert = new decimal[objectList.Count]; //foreach (var item in ItemCodeStr) //{ // model.ItemCode = item; // model.Unit = ChartUnit.unit_month; // model.Starttime = startTime; // model.Endtime = endTime; // var resList = reportBll.GetBaseEneryDataList(model); // const int order = 1; // foreach ( var r in resList.BaseLayerObjectResults) // { // if(tempConvert.ContainsKey(r.Value.baseLayerObject.LayerObjectName)) // { // tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()); // tempAreaConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()) / // decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString()); // } // else // { // tempConvert.Add(r.Value.baseLayerObject.LayerObjectName, decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString())); // tempAreaConvert.Add(r.Value.baseLayerObject.LayerObjectName, decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()) / // decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString())); // } // shopOrder.TotalEneryOrderList.Add(new EneryOrder() // { // BuildingName = r.Value.baseLayerObject.LayerObjectName, //EneryValue = double.Parse(tempConvert[r.Value.baseLayerObject.LayerObjectName].ToString("f2")), // OrderNum = order // }); // shopOrder.AreaEneryOrderList.Add(new EneryOrder() // { // BuildingName = r.Value.baseLayerObject.LayerObjectName, // EneryValue = double.Parse(tempAreaConvert[r.Value.baseLayerObject.LayerObjectName].ToString("f2")), // OrderNum = order // }); // } //} //var res1 = from p in shopOrder.TotalEneryOrderList group p by p.BuildingName into g select new { g.Key, BuildingName = g.Max(p => p.BuildingName), OrderNum = g.Max(p => p.OrderNum), EneryValue = g.Max(p => p.EneryValue) }; //var res2 = from p in shopOrder.AreaEneryOrderList group p by p.BuildingName into g select new { g.Key, BuildingName = g.Max(p => p.BuildingName), OrderNum = g.Max(p => p.OrderNum), EneryValue = g.Max(p => p.EneryValue) }; foreach (var c in lstTtl) { shopOrderLast.TotalEneryOrderList.Add(new EneryOrder { BuildingName = c.BuildingName, EneryValue = double.Parse(c.EneryValue.ToString("f2")), OrderNum = c.OrderNum }); } foreach (var c in lstAr) { shopOrderLast.AreaEneryOrderList.Add(new EneryOrder { BuildingName = c.BuildingName, EneryValue = double.Parse(c.EneryValue.ToString("f2")), OrderNum = c.OrderNum }); } return shopOrderLast; }
public string GetDeviceListByArea(QueryDevice query) { StringBuilder sbTree = new StringBuilder(); // var result = new ResultDevice(); // result.DeviceUnitList = new List<DeviceUnit>(); List<Device> deviceList; if (query.ItemCode == "00000" || string.IsNullOrEmpty(query.ItemCode)) { deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + query.AreaID, " 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.ItemcodeID, " order by itemcodeid"); foreach (Model.Itemcode itemcode in itemcodeListChild) tempCode += ",'" + itemcode.ItemCodeNumber + "'"; itemCodeAll = tempCode.Length > 0 ? tempCode.Substring(1) : "'" + itemCodeAll + "'"; deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and ItemCodeID in (" + itemCodeAll + ") and areaid=" + query.AreaID, " order by deviceid"); } sbTree.Append("["); for (var device = 0; device < deviceList.Count; device++) { sbTree.Append("{\"text\": \"" + deviceList[device].DeviceName + "\",\"id\": " + deviceList[device].DeviceID + ",\"classes\": \"equip\"}"); sbTree.Append(device == deviceList.Count - 1 ? "" : ","); } sbTree.Append("]"); return sbTree.ToString(); }
public IndexLimit GetIndexLimit(DateTime startTime, DateTime endTime) { var eneryDataList = new Dictionary<string, decimal>(); var indexLimit = new IndexLimit() { ElectricityHigh = 0, ElectricityHighTime = "-", ElectricityLow = 0, ElectricityLowTime = "-" }; var model = new BaseQueryModel(); var objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectParentID={0}", 0), " order by LayerObjectID"); model.IsDevice = 0; model.ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>(); model.ItemCode = "01000"; model.Unit = ChartUnit.unit_hour; model.Starttime = startTime; model.Endtime = endTime; var resList = reportBll.GetBaseEneryDataList(model); foreach (var o in objectList) { decimal countValue = 0; foreach (var d in resList.BaseLayerObjectResults[o.LayerObjectID.ToString()].Datas) { // countValue += d.DataValue; if (!eneryDataList.ContainsKey(d.DatePick)) { eneryDataList.Add(d.DatePick, d.DataValue); } else { eneryDataList[d.DatePick] += d.DataValue; } } } var limitTemp = eneryDataList.Select(e => new TempList() { DatePick = e.Key, DataValue = e.Value }).ToList(); limitTemp = (from l in limitTemp orderby l.DataValue select l).ToList(); if (limitTemp.Count > 0) { indexLimit.ElectricityLow = limitTemp[0].DataValue; indexLimit.ElectricityLowTime = Convert.ToDateTime(limitTemp[0].DatePick).ToString("HH:mm"); indexLimit.ElectricityHigh = limitTemp[limitTemp.Count - 1].DataValue; indexLimit.ElectricityHighTime = Convert.ToDateTime(limitTemp[limitTemp.Count - 1].DatePick).ToString("HH:mm"); } return indexLimit; }
public ResultReal GetRealTime(NTS.WEB.DataContact.RealQuery query) { ResultReal result = new ResultReal(); var objectList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid"); var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + objectList[0].ItemCodeID + "'", " order by ItemcodeID")[0]; result.Info = new DeviceInfo(); result.Data = new RealData(); result.Info.Affiliations = objectList[0].Organization; result.Info.DevType = objectList[0].DeviceType.ToString(CultureInfo.InvariantCulture); result.Info.Category = (itemList.ItemCodeNumber == "01000" || itemList.ItemCodeNumber == "01A00" || itemList.ItemCodeNumber == "01B00" || itemList.ItemCodeNumber == "01C00" || itemList.ItemCodeNumber == "01D00") ? "电表" : itemList.ItemCodeName + "表"; result.Info.Nature = objectList[0].DEVMODE; result.Info.Number = objectList[0].DeviceNumber; result.Info.Status = objectList[0].Status; result.Info.Location = objectList[0].Location; result.Info.Rating = objectList[0].Rating.ToString(); if (query.IsDetail == 1) { for (int i = 1; i < 4; i++) { BaseListModel model = new BaseListModel(); model.Page = 1; model.PageSize = 10000; model.ObjectId = objectList[0].DeviceID; model.CategoryId = i; DataTable dt = new Real().GetRealTimeData(model); if (dt.Rows.Count > 0) { if (i == 1) { result.Data.Pulse = new List <dataUnit>(); for (int j = 0; j < dt.Rows.Count; j++) { result.Data.Pulse.Add(new dataUnit() { Id = j + 1, DataName = dt.Rows[j]["DataPoint_Name"].ToString(), Unit = itemList.Unit, Value = decimal.Parse(dt.Rows[j]["Result"].ToString()) }); } } else if (i == 2) { result.Data.Analog = new List <dataUnit>(); for (int j = 0; j < dt.Rows.Count; j++) { result.Data.Analog.Add(new dataUnit() { Id = j + 1, DataName = dt.Rows[j]["DataPoint_Name"].ToString(), Unit = itemList.Unit, Value = decimal.Parse(dt.Rows[j]["Result"].ToString()) }); } } else { result.Data.Switch = new List <dataUnit>(); for (int j = 0; j < dt.Rows.Count; j++) { result.Data.Switch.Add(new dataUnit() { Id = j + 1, DataName = dt.Rows[j]["DataPoint_Name"].ToString(), Unit = itemList.Unit, Value = decimal.Parse(dt.Rows[j]["Result"].ToString()) }); } } } } } //result.Data.Analog = new List<dataUnit>(); //result.Data.Analog.Add(new dataUnit() { Id = 1, DataName = "29189H92-00", Unit = "kwh", Value = 900.88m }); //result.Data.Pulse = new List<dataUnit>(); //result.Data.Pulse.Add(new dataUnit() { Id = 1, DataName = "29189H92-10", Unit = "kwh", Value = 400.88m }); //result.Data.Switch = new List<dataUnit>(); //result.Data.Switch.Add(new dataUnit() { Id = 1, DataName = "29189H92-20", Unit = "kwh", Value = 200.88m }); return(result); }
public ResultReal GetRealTime(NTS.WEB.DataContact.RealQuery query) { ResultReal result = new ResultReal(); var objectList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid"); var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + objectList[0].ItemCodeID + "'", " order by ItemcodeID")[0]; result.Info = new DeviceInfo(); result.Data = new RealData(); result.Info.Affiliations = objectList[0].Organization; result.Info.DevType = objectList[0].DeviceType.ToString(CultureInfo.InvariantCulture); result.Info.Category = (itemList.ItemCodeNumber == "01000" || itemList.ItemCodeNumber == "01A00" || itemList.ItemCodeNumber == "01B00" || itemList.ItemCodeNumber == "01C00" || itemList.ItemCodeNumber == "01D00") ? "电表" : itemList.ItemCodeName + "表"; result.Info.Nature = objectList[0].DEVMODE; result.Info.Number = objectList[0].DeviceNumber; result.Info.Status = objectList[0].Status; result.Info.Location = objectList[0].Location; result.Info.Rating = objectList[0].Rating.ToString(); if (query.IsDetail == 1) { for (int i = 1; i < 4; i++) { BaseListModel model = new BaseListModel(); model.Page = 1; model.PageSize = 10000; model.ObjectId = objectList[0].DeviceID; model.CategoryId = i; DataTable dt = new Real().GetRealTimeData(model); if (dt.Rows.Count > 0) { if (i == 1) { result.Data.Pulse = new List<dataUnit>(); for (int j = 0; j < dt.Rows.Count; j++) { result.Data.Pulse.Add(new dataUnit() { Id = j + 1, DataName = dt.Rows[j]["DataPoint_Name"].ToString(), Unit = itemList.Unit, Value = decimal.Parse(dt.Rows[j]["Result"].ToString()) }); } } else if (i == 2) { result.Data.Analog = new List<dataUnit>(); for (int j = 0; j < dt.Rows.Count; j++) { result.Data.Analog.Add(new dataUnit() { Id = j + 1, DataName = dt.Rows[j]["DataPoint_Name"].ToString(), Unit = itemList.Unit, Value = decimal.Parse(dt.Rows[j]["Result"].ToString()) }); } } else { result.Data.Switch = new List<dataUnit>(); for (int j = 0; j < dt.Rows.Count; j++) { result.Data.Switch.Add(new dataUnit() { Id = j + 1, DataName = dt.Rows[j]["DataPoint_Name"].ToString(), Unit = itemList.Unit, Value = decimal.Parse(dt.Rows[j]["Result"].ToString()) }); } } } } } //result.Data.Analog = new List<dataUnit>(); //result.Data.Analog.Add(new dataUnit() { Id = 1, DataName = "29189H92-00", Unit = "kwh", Value = 900.88m }); //result.Data.Pulse = new List<dataUnit>(); //result.Data.Pulse.Add(new dataUnit() { Id = 1, DataName = "29189H92-10", Unit = "kwh", Value = 400.88m }); //result.Data.Switch = new List<dataUnit>(); //result.Data.Switch.Add(new dataUnit() { Id = 1, DataName = "29189H92-20", Unit = "kwh", Value = 200.88m }); return result; }
public ResultDevice GetDeviceList(QueryDevice2 query) { var pAction = new ExecuteProcess(); try { StringBuilder sbTree = new StringBuilder(); List<Device> deviceList; if (query.ItemCode == "00000") { if (query.ObjType == AreaType.Area) { deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + query.ObjectId, " order by deviceid"); } else { deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid2=" + query.ObjectId, " order by deviceid"); } } else { string itemCodeAll = query.ItemCode; Itemcode objItem = new Itemcode(); var itemcodeList = objItem.GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by itemcodeid")[0]; var itemcodeListChild = objItem.GetItemcodeList(" and ParentID=" + itemcodeList.ItemcodeID, " order by itemcodeid"); itemCodeAll = itemcodeListChild.Aggregate("'" + itemCodeAll + "'", (current, itemcode) => current + ("," + "'" + itemcode.ItemCodeNumber + "'")); if (query.ObjType == AreaType.Area) { deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and ItemCodeID in (" + itemCodeAll + ") and areaid=" + query.ObjectId, " order by deviceid"); } else { deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and ItemCodeID in (" + itemCodeAll + ") and areaid2=" + query.ObjectId, " order by deviceid"); } } //sbTree.Append("["); //for (var device = 0; device < deviceList.Count; device++) //{ // sbTree.Append("{\"text\": \"" + deviceList[device].DeviceName + "\",\"id\": " + deviceList[device].DeviceID + ",\"classes\": \"equip\"}"); // sbTree.Append(device == deviceList.Count - 1 ? "" : ","); //} //sbTree.Append("]"); List<DeviceUnit> lstDvc = new List<DeviceUnit>(); foreach (var device in deviceList) { DeviceUnit du = new DeviceUnit(); du.DeviceID = device.DeviceID; du.DeviceName = device.DeviceName; lstDvc.Add(du); } ResultDevice result = new ResultDevice(); result.DeviceUnitList = lstDvc; pAction.Success = true; result.ActionInfo = pAction; return result; } catch (Exception ex) { pAction.Success = false; pAction.ExceptionMsg = ex.Message; return new ResultDevice() { ActionInfo = pAction }; } }
private void GetDeviceTreeJsonByList(int pId) { var deepth = 0; var objectlist = dal.GetBaseLayerObjectList("", " order by LayerObjectID"); //if (objectlist.Count > 0) //{ // deepth = objectlist[0].LayerObjectDeepth; //} deviceresult.Append(devicesb.ToString()); devicesb.Clear(); if (tabel.Count > 0) { devicesb.Append("["); var rows = (from l in tabel where l.pid.Equals(pId) select l).ToList<Tree>(); if (rows.Count > 0) { foreach (var row in rows) { //devicesb.Append("{\"id\":" + row.id + ",\"text\":\"" + row.name + "\",\"expanded\":false,\"classes\":\"" + GetClass(row.deepth) + "\""); devicesb.Append("{\"id\":" + row.id + ",\"text\":\"" + row.name + "\",\"expanded\":false,\"classes\":\"" + "build" + "\""); var childrows = (from l in tabel where l.pid.Equals(row.id) select l).ToList<Tree>(); if (childrows.Count > 0) { var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid"); if (deviceList.Count > 0 && row.id == deepth) { devicesb.Append(",\"hasChildren\":true"); } else { devicesb.Append(",\"hasChildren\":false"); } devicesb.Append(",\"children\":"); GetDeviceTreeJsonByList(row.id); deviceresult.Append(devicesb.ToString()); devicesb.Clear(); }else { var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid"); if (deviceList.Count > 0 && row.id == deepth) { devicesb.Append(",\"hasChildren\":true"); } else { devicesb.Append(",\"hasChildren\":false"); } devicesb.Append(",\"children\":"); GetDeviceTreeJsonByList(row.id); deviceresult.Append(devicesb.ToString()); devicesb.Clear(); } deviceresult.Append(devicesb.ToString()); devicesb.Clear(); devicesb.Append("},"); } devicesb = devicesb.Remove(devicesb.Length - 1, 1); } devicesb.Append("]"); deviceresult.Append(devicesb.ToString()); devicesb.Clear(); } }
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 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; } }
public Dictionary <string, decimal> GetSingleItemCodeByObject(BasicQuery query, string itemcode) { // var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() }; var eneryDataList = new Dictionary <string, decimal>(); var model = new BaseQueryModel(); List <Model.BaseLayerObject> objectList = new List <Model.BaseLayerObject>(); if (query.AreaType == AreaType.Area) { objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and layerobjectid={0}", query.ObjectNum), " order by LayerObjectID"); } else { objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseFuncLayerObjectList(string.Format(" and layerobjectid={0}", query.ObjectNum), " order by LayerObjectID"); } model.IsDevice = 0; model.ObjectList = (from p in objectList select p.LayerObjectID).ToList <int>(); model.ItemCode = itemcode; model.Unit = BaseTool.GetChartUnit(query.Unit); model.Starttime = query.StartTime; model.Endtime = query.EndTime; model.areaType = query.AreaType; var resList = _energCon.GetBaseEneryDataListNew(model); foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString(CultureInfo.InvariantCulture)].Datas)) { if (!eneryDataList.ContainsKey(d.DatePick)) { switch (query.QueryType) { case EnergyAnalyseQueryType.Convert2Co2: eneryDataList.Add(d.DatePick, d.Co2DataValue); break; case EnergyAnalyseQueryType.Convert2Coal: eneryDataList.Add(d.DatePick, d.CoalDataValue); break; case EnergyAnalyseQueryType.Convert2Money: eneryDataList.Add(d.DatePick, d.MoneyDataValue); break; default: eneryDataList.Add(d.DatePick, d.DataValue); break; } } else { switch (query.QueryType) { case EnergyAnalyseQueryType.Convert2Co2: eneryDataList[d.DatePick] += d.Co2DataValue; break; case EnergyAnalyseQueryType.Convert2Coal: eneryDataList[d.DatePick] += d.CoalDataValue; break; case EnergyAnalyseQueryType.Convert2Money: eneryDataList[d.DatePick] += d.MoneyDataValue; break; default: eneryDataList[d.DatePick] += d.DataValue; break; } } } //foreach (var e in eneryDataList) //{ // result.DatePick.Add(e.Key); // result.DatePickEnery.Add(e.Value); //} return(eneryDataList); }
public Dictionary<string, decimal> GetSingleItemCodeByObject(BasicQuery query, string itemcode) { // var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() }; var eneryDataList = new Dictionary<string, decimal>(); var model = new BaseQueryModel(); List<Model.BaseLayerObject> objectList = new List<Model.BaseLayerObject>(); if (query.AreaType == AreaType.Area) { objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and layerobjectid={0}", query.ObjectNum), " order by LayerObjectID"); } else { objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseFuncLayerObjectList(string.Format(" and layerobjectid={0}", query.ObjectNum), " order by LayerObjectID"); } model.IsDevice = 0; model.ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>(); model.ItemCode = itemcode; model.Unit = BaseTool.GetChartUnit(query.Unit); model.Starttime = query.StartTime; model.Endtime = query.EndTime; model.areaType = query.AreaType; var resList = _energCon.GetBaseEneryDataListNew(model); foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString(CultureInfo.InvariantCulture)].Datas)) { if (!eneryDataList.ContainsKey(d.DatePick)) { switch (query.QueryType) { case EnergyAnalyseQueryType.Convert2Co2: eneryDataList.Add(d.DatePick, d.Co2DataValue); break; case EnergyAnalyseQueryType.Convert2Coal: eneryDataList.Add(d.DatePick, d.CoalDataValue); break; case EnergyAnalyseQueryType.Convert2Money: eneryDataList.Add(d.DatePick, d.MoneyDataValue); break; default: eneryDataList.Add(d.DatePick, d.DataValue); break; } } else { switch (query.QueryType) { case EnergyAnalyseQueryType.Convert2Co2: eneryDataList[d.DatePick] += d.Co2DataValue; break; case EnergyAnalyseQueryType.Convert2Coal: eneryDataList[d.DatePick] += d.CoalDataValue; break; case EnergyAnalyseQueryType.Convert2Money: eneryDataList[d.DatePick] += d.MoneyDataValue; break; default: eneryDataList[d.DatePick] += d.DataValue; break; } } } //foreach (var e in eneryDataList) //{ // result.DatePick.Add(e.Key); // result.DatePickEnery.Add(e.Value); //} return eneryDataList; }
//objectList[0] public Dictionary<string, decimal> GetSingleItemCodeByObjectNew(QueryContrastPeriods query, string itemcode, TimePeriod time, int isCoal) { // var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() }; var eneryDataList = new Dictionary<string, decimal>(); var model = new BaseQueryModel(); List<Model.BaseLayerObject> objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and layerobjectid={0}", query.AreaId), " order by LayerObjectID"); model.IsDevice = 0; if (query.ObjType == AreaType.Area) { objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and layerobjectid={0}", query.AreaId), " order by LayerObjectID"); } else { objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseFuncLayerObjectList(string.Format(" and layerobjectid={0}", query.AreaId), " order by LayerObjectID"); } model.ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>(); model.ItemCode = itemcode; model.Unit = BaseTool.GetChartUnit(query.particle); model.Starttime = time.StartTime; model.Endtime = time.EndTime; model.areaType = query.ObjType; var resList = contsDal.GetBaseEneryDataListNew(model); for (int iCount = 0; iCount < query.PeriodLst.Count; iCount++) { TimePeriod tpTime = query.PeriodLst[iCount]; //if (!eneryDataList.ContainsKey(d.DatePick)) //{ // eneryDataList.Add(d.DatePick, isCoal == 0 ? d.DataValue : d.CoalDataValue); //} //else //{ // eneryDataList[d.DatePick] += isCoal == 0 ? d.DataValue : d.CoalDataValue; //} } foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString(CultureInfo.InvariantCulture)].Datas)) { if (!eneryDataList.ContainsKey(d.DatePick)) { switch (query.QueryType) { case QueryOrderType.CarbanOut: eneryDataList.Add(d.DatePick, d.Co2DataValue); break; case QueryOrderType.ConvCoal: eneryDataList.Add(d.DatePick, d.CoalDataValue); break; case QueryOrderType.Renminbi: eneryDataList.Add(d.DatePick, d.MoneyDataValue); break; default: eneryDataList.Add(d.DatePick, d.DataValue); break; } } else { eneryDataList[d.DatePick] += isCoal == 0 ? d.DataValue : d.CoalDataValue; switch (query.QueryType) { case QueryOrderType.CarbanOut: eneryDataList[d.DatePick] += d.Co2DataValue; break; case QueryOrderType.ConvCoal: eneryDataList[d.DatePick] += d.CoalDataValue; break; case QueryOrderType.Renminbi: eneryDataList[d.DatePick] += d.MoneyDataValue; break; default: eneryDataList[d.DatePick] += d.DataValue; break; } } } //foreach (var e in eneryDataList) //{ // result.DatePick.Add(e.Key); // result.DatePickEnery.Add(e.Value); //} return eneryDataList; }
private void GetDeviceTreeJsonByListNew(int pId, int level) { var deepth = 0; // var objectlist = dal.GetBaseLayerObjectList("", " order by LayerObjectDeepth desc,LayerObjectID"); var objectlist = dal.GetBaseLayerObjectList("", " order by LayerObjectID"); if (objectlist.Count > 0) { //deepth = objectlist[0].LayerObjectDeepth; deepth = level; } Dictionary <int, string> cacheLayer = NTS.WEB.Common.CacheHelper.GetCache("object-Layer") as Dictionary <int, string>; if (cacheLayer == null) { var res = new NTS.WEB.BLL.LayerObjects().GetObjectLayers(); NTS.WEB.Common.CacheHelper.SetCache("object-Layer", res); cacheLayer = res; } deviceresult.Append(devicesb.ToString()); devicesb.Clear(); if (tabel.Count > 0) { devicesb.Append("["); var rows = (from l in tabel where l.pid.Equals(pId) select l).ToList <NTS.WEB.Model.Tree>(); if (rows.Count > 0) { foreach (var row in rows) { devicesb.Append("{\"id\":" + row.id + ",\"text\":\"" + row.name + "\",\"state\":\"open\",\"iconCls\":\"\""); var childrows = (from l in tabel where l.pid.Equals(row.id) select l).ToList <NTS.WEB.Model.Tree>(); if (childrows.Count > 0) { var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid"); // if (deviceList.Count > 0 && 4 == level) //&& row.deepth==4 //if (deviceList.Count > 0 && cacheLayer.Count == level) //{ // devicesb.Append(",\"hasChildren\":true"); //} //else //{ // devicesb.Append(",\"hasChildren\":false"); //} devicesb.Append(",\"children\":"); GetDeviceTreeJsonByListNew(row.id, level + 1); deviceresult.Append(devicesb.ToString()); devicesb.Clear(); } else { var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid"); //if (deviceList.Count > 0 && 4 == level) //if (deviceList.Count > 0 && cacheLayer.Count == level) //{ // devicesb.Append(",\"hasChildren\":true"); //} //else //{ // devicesb.Append(",\"hasChildren\":false"); //} devicesb.Append(",\"children\":"); GetDeviceTreeJsonByList(row.id, level + 1); deviceresult.Append(devicesb.ToString()); devicesb.Clear(); } deviceresult.Append(devicesb.ToString()); devicesb.Clear(); devicesb.Append("},"); } devicesb = devicesb.Remove(devicesb.Length - 1, 1); } devicesb.Append("]"); deviceresult.Append(devicesb.ToString()); devicesb.Clear(); } }
private void GetDeviceTreeJsonByListNew(int pId, int level) { var deepth = 0; // var objectlist = dal.GetBaseLayerObjectList("", " order by LayerObjectDeepth desc,LayerObjectID"); var objectlist = dal.GetBaseLayerObjectList("", " order by LayerObjectID"); if (objectlist.Count > 0) { //deepth = objectlist[0].LayerObjectDeepth; deepth = level; } Dictionary<int, string> cacheLayer = NTS.WEB.Common.CacheHelper.GetCache("object-Layer") as Dictionary<int, string>; if (cacheLayer == null) { var res = new NTS.WEB.BLL.LayerObjects().GetObjectLayers(); NTS.WEB.Common.CacheHelper.SetCache("object-Layer", res); cacheLayer = res; } deviceresult.Append(devicesb.ToString()); devicesb.Clear(); if (tabel.Count > 0) { devicesb.Append("["); var rows = (from l in tabel where l.pid.Equals(pId) select l).ToList<Tree>(); if (rows.Count > 0) { foreach (var row in rows) { devicesb.Append("{\"id\":" + row.id + ",\"text\":\"" + row.name + "\",\"state\":\"open\",\"iconCls\":\"\""); var childrows = (from l in tabel where l.pid.Equals(row.id) select l).ToList<Tree>(); if (childrows.Count > 0) { var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid"); // if (deviceList.Count > 0 && 4 == level) //&& row.deepth==4 //if (deviceList.Count > 0 && cacheLayer.Count == level) //{ // devicesb.Append(",\"hasChildren\":true"); //} //else //{ // devicesb.Append(",\"hasChildren\":false"); //} devicesb.Append(",\"children\":"); GetDeviceTreeJsonByListNew(row.id, level + 1); deviceresult.Append(devicesb.ToString()); devicesb.Clear(); } else { var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid"); //if (deviceList.Count > 0 && 4 == level) //if (deviceList.Count > 0 && cacheLayer.Count == level) //{ // devicesb.Append(",\"hasChildren\":true"); //} //else //{ // devicesb.Append(",\"hasChildren\":false"); //} devicesb.Append(",\"children\":"); GetDeviceTreeJsonByList(row.id, level + 1); deviceresult.Append(devicesb.ToString()); devicesb.Clear(); } deviceresult.Append(devicesb.ToString()); devicesb.Clear(); devicesb.Append("},"); } devicesb = devicesb.Remove(devicesb.Length - 1, 1); } devicesb.Append("]"); deviceresult.Append(devicesb.ToString()); devicesb.Clear(); } }
public ResultRealLine IndexElectricityRealLine(DateTime startTime, DateTime endTime) { var pAction = new ExecuteProcess(); try { var result = new ResultRealLine { series = new List<EneryAnalyseSeries>(), Unit = "kwh" }; var eneryDataList = new Dictionary<string, decimal>(); var model = new BaseQueryModel(); var objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseFuncLayerObjectList(string.Format(" and LayerObjectParentID={0}", 0), " order by LayerObjectID"); model.IsDevice = 0; model.ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>(); model.ItemCode = "01000"; model.Unit = ChartUnit.unit_hour; model.Starttime = startTime; model.Endtime = endTime; var resList = _reportBll.GetBaseEneryDataList(model,true); foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString(CultureInfo.InvariantCulture)].Datas)) { if (!eneryDataList.ContainsKey(d.DatePick)) { eneryDataList.Add(d.DatePick, d.DataValue); } else { eneryDataList[d.DatePick] += d.DataValue; } } List<decimal> dat = new List<decimal>(24);//modified by wxy for (int i = 0; i < 24; i++) dat.Add(0); foreach (var e in eneryDataList) { DateTime dt = DateTime.Parse(e.Key);//dat.Add(e.Value); dat[dt.Hour] = e.Value; } List<decimal> dat1 = new List<decimal>(); EneryAnalyseSeries eas = new EneryAnalyseSeries(); decimal rightValue = 0;//modified by wxy decimal leftValue = 0; for (int i = 0; i <= DateTime.Now.Hour; i++) { if (dat[i].CompareTo(-1) == 0) { int tempIndex = i; while (--i >= 0) { if (dat[i].CompareTo(-1) >= 0) { rightValue = dat[i]; break; } } i = tempIndex; while (++i < 24) { if (dat[i].CompareTo(-1) >= 0) { leftValue = dat[i]; break; } } i = tempIndex; decimal meanValue = (rightValue + leftValue)/2; dat1.Add( Math.Round(meanValue, 2) ); } else dat1.Add(dat[i]); } eas.data = dat1; result.series.Add(eas); pAction.Success = true; result.ActionInfo = pAction; return result; } catch (Exception ex) { pAction.Success = false; pAction.ExceptionMsg = ex.Message; return new ResultRealLine() { ActionInfo = pAction }; } }