public string ShowCompareLineChart() { var inputValue = _ntsPage.Request.Form["Inputs"]; var tabId = int.Parse(_ntsPage.Request.Form["TabId"]); var query = Newtonsoft.Json.JsonConvert.DeserializeObject <QueryCompare>(inputValue); var result = new ResultCompare(); switch (tabId) { case 0: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IChart>("Chart") .GetCompareChart(query); break; case 1: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IChart>("Chart") .GetAreaCompareChart(query);; break; } return(JsonForHightCharts.ShowColorColumnChart("对比柱状图", result.ObjectName.ToArray(), result.Dept.ToArray(), result.Enery)); }
private List <decimal> GetYuceData(BasicQuery basicQuery, QueryLoadForecast queryLoad) { List <ResultCompare> compReult = new List <ResultCompare>(); DateTime deBegin = new DateTime(); DateTime deEnd = new DateTime(); TimeSpan ts = queryLoad.EndTime - queryLoad.StartTime; int Days = ts.Days; #region 获取35%数据 if (Days == 0) { deBegin = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")).AddDays(-10); deEnd = queryLoad.StartTime; // 循环前10天 for (DateTime begTime = deBegin; begTime < DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")); begTime = begTime.AddDays(1)) { BasicQuery baseQueryItem = basicQuery; baseQueryItem.StartTime = begTime; baseQueryItem.EndTime = begTime; ResultCompare reultCom = GetDateTongJiData(baseQueryItem); compReult.Add(reultCom); } } else { if (queryLoad.StartTime.CompareTo(DateTime.Now) > 0) { BasicQuery baseQueryItem = basicQuery; baseQueryItem.StartTime = DateTime.Now.AddDays(-(Days + 1));; baseQueryItem.EndTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")).AddDays(-1); ResultCompare reultCom = GetDateTongJiData(baseQueryItem); compReult.Add(reultCom); } else { BasicQuery baseQueryItem = basicQuery; baseQueryItem.StartTime = queryLoad.StartTime.AddDays(-(Days + 1));; baseQueryItem.EndTime = queryLoad.StartTime.AddDays(-1); ResultCompare reultCom = GetDateTongJiData(baseQueryItem); compReult.Add(reultCom); } } #endregion #region 获取65%数据。 //获取去年当天的预测值 BasicQuery baseQuery2 = basicQuery; baseQuery2.StartTime = queryLoad.StartTime.AddYears(-1); baseQuery2.EndTime = queryLoad.EndTime.AddYears(-1); var resultList2 = GetDateTongJiData(baseQuery2); List <decimal> lstAvg2 = new List <decimal>(); List <decimal> lstAvgMonth = GetAvgYuce(compReult, queryLoad); if (Days == 0) { foreach (var d in resultList2.Enery) { List <decimal> lstDec = d.Value; for (int i = 0; i < d.Value.Count; i++) { if (d.Value[i] > 0) { lstAvg2.Add(Math.Round((d.Value[i]), 2)); } } } // 最终值。 List <decimal> lstAvgEnd = new List <decimal>(); for (int i = 0; i < lstAvgMonth.Count; i++) { if (lstAvg2.Count == 0) { lstAvgEnd.Add(lstAvgMonth[i]); } else { lstAvgEnd.Add(lstAvgMonth[i] * 35 / 100 + lstAvg2[i] * 65 / 100); } } return(lstAvgEnd); } else { foreach (var d in resultList2.Enery) { List <decimal> lstDec = d.Value; for (int i = 0; i < d.Value.Count; i++) { lstAvg2.Add(Math.Round((d.Value[i]), 2)); } } // 最终值。 List <decimal> lstAvgEnd = new List <decimal>(); for (int i = 0; i < lstAvgMonth.Count; i++) { if (lstAvgMonth.Count == Days + 1) { if (lstAvg2.Count == 0) { decimal avgDec = lstAvgMonth[i]; lstAvgEnd.Add(Math.Round(avgDec, 2)); } else { decimal avgDec = lstAvgMonth[i] * 35 / 100 + lstAvg2[i] * 65 / 100; lstAvgEnd.Add(Math.Round(avgDec, 2)); } } else { throw new Exception("没有历史数据,无法进行预测"); } } return(lstAvgEnd); } #endregion }
public string ExportQueryPeriod() { var inputValue = _ntsPage.Request["inputs"];; var query = Newtonsoft.Json.JsonConvert.DeserializeObject <QueryContrastPeriods>(inputValue); var result = new ResultCompare(); switch (query.QueryType) { case QueryOrderType.Default: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetPeriodsCompareChart(query); break; case QueryOrderType.UnitArea: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetPeriodsCompareChart(query); break; case QueryOrderType.UnitPerson: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetPersonNumPeriodsCompareChart(query);; break; default: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetPeriodsCompareChart(query); break; } string strAreaName = ""; var listObject = dal.GetBaseLayerObjectList(" and layerobjectid = " + query.AreaId, ""); if (listObject.Count > 0) { strAreaName = listObject[0].LayerObjectName; } string strDepName = ""; if (result.Dept.Count > 0) { strDepName = result.Dept[0].ToString(); } else { throw new Exception("没有数据信息"); } switch (query.QueryType) { case QueryOrderType.CarbanOut: strDepName = "T"; break; case QueryOrderType.ConvCoal: strDepName = "T"; break; case QueryOrderType.Renminbi: strDepName = "元"; break; } ResultContrast resultCon = JsonForHightChartsNew.IndexPeriodsContrastObjsChart(query, strAreaName, result.ObjectName.ToArray(), strDepName, result.Enery); try { if (resultCon.ContrastLst.Count > 0) { DataTable dt = TableView.CreateContrastDataTable(); for (var r = 0; r < resultCon.ContrastLst.Count; r++) { DataRow dr = dt.NewRow(); dr[1] = resultCon.ContrastLst[r].Tm.ToString(); dr[2] = resultCon.ContrastLst[r].Obj; dr[3] = resultCon.ContrastLst[r].EneType; dr[4] = resultCon.ContrastLst[r].Val; 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"; TemplateParam param = new TemplateParam("能耗对比表", new CellParam(0, 0), "", new CellParam(3, 0), false, new CellParam(4, 0)); //TemplateParam param = new TemplateParam("itemCodeName", new CellParam(1, 1),"",null, false, new CellParam(5, 0)); param.DataColumn = new[] { 0, 1, 2, 3, 4 }; param.ItemUnit = "(单位:" + result.Dept[0].ToString() + ")"; param.ItemUnitCell = new CellParam(3, 4); 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 ResultObjLst IndexContrastPeriodssLst() { try { var inputValue = _ntsPage.Request["inputs"];; var query = Newtonsoft.Json.JsonConvert.DeserializeObject <QueryContrastPeriods>(inputValue); var result = new ResultCompare(); string strDepName = ""; switch (query.QueryType) { case QueryOrderType.Default: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetPeriodsCompareChart(query); strDepName = result.Dept[0].ToString(); break; case QueryOrderType.UnitArea: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetPeriodsCompareChart(query); strDepName = result.Dept[0].ToString(); break; case QueryOrderType.UnitPerson: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetPersonNumPeriodsCompareChart(query); strDepName = result.Dept[0].ToString();; break; default: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetPeriodsCompareChart(query); strDepName = result.Dept[0].ToString();; break; } switch (query.QueryType) { case QueryOrderType.CarbanOut: strDepName = "T"; break; case QueryOrderType.ConvCoal: strDepName = "T"; break; case QueryOrderType.Renminbi: strDepName = "元"; break; } return(JsonForHightChartsNew.IndexContrastObjsLst(query, result.ObjectName.ToArray(), strDepName, result.Enery)); } catch (Exception ex) { ResultObjLst lst = new ResultObjLst(); ExecuteProcess process = new ExecuteProcess(); process.ExceptionMsg = ex.Message; process.Success = false; lst.ActionInfo = process; return(lst); } }
public ResultContrast IndexContrastPeriodsChart() { try { var inputValue = _ntsPage.Request["inputs"];; var query = Newtonsoft.Json.JsonConvert.DeserializeObject <QueryContrastPeriods>(inputValue); var result = new ResultCompare(); switch (query.QueryType) { case QueryOrderType.Default: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetPeriodsCompareChart(query); break; case QueryOrderType.UnitArea: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetAreaPeriodsCompareChart(query); break; case QueryOrderType.UnitPerson: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetPersonNumPeriodsCompareChart(query);; break; default: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetPeriodsCompareChart(query); break; } string strAreaName = ""; var listObject = dal.GetBaseLayerObjectList(" and layerobjectid = " + query.AreaId, ""); if (listObject.Count > 0) { strAreaName = listObject[0].LayerObjectName; } string strDepName = ""; if (result.Dept.Count > 0) { strDepName = result.Dept[0].ToString(); } else { throw new Exception("没有数据信息"); } switch (query.QueryType) { case QueryOrderType.CarbanOut: strDepName = "T"; break; case QueryOrderType.ConvCoal: strDepName = "T"; break; case QueryOrderType.Renminbi: strDepName = "元"; break; } return(JsonForHightChartsNew.IndexPeriodsContrastObjsChart(query, strAreaName, result.ObjectName.ToArray(), strDepName, result.Enery)); } catch (Exception ex) { ResultContrast con = new ResultContrast(); ExecuteProcess process = new ExecuteProcess(); process.ExceptionMsg = ex.Message; process.Success = false; con.ActionInfo = process; return(con); } }
public ResultObjLst IndexContrastObjsLst() { try { var inputValue = _ntsPage.Request["inputs"];; var oderObject = Newtonsoft.Json.JsonConvert.DeserializeObject <QueryOrderObjects>(inputValue); QueryCompare query = new QueryCompare(); query.StartTime = oderObject.StartTime; query.EndTime = oderObject.EndTime; query.ObjectNum = oderObject.AreaIdLst; query.ItemCode = oderObject.ItemCode; query.ObjType = oderObject.ObjType; query.Unit = oderObject.Particle; if (oderObject.AreaIdLst.Count <= 1) { throw new Exception("请选择多个对象进行比较!"); } var result = new ResultCompare(); switch (oderObject.QueryType) { case EnergyAnalyseQueryType.Default: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetCompareChart(oderObject); break; case EnergyAnalyseQueryType.UnitArea: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetAreaCompareChart(oderObject); break; case EnergyAnalyseQueryType.UnitPerson: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetPersonNumCompareChart(oderObject);; break; default: result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IEnergyContrastService>("EnergyContrastService") .GetCompareChart(oderObject); break; } string strDepName = ""; if (result.Dept.Count > 0) { strDepName = result.Dept[0].ToString(); } else { throw new Exception("没有数据信息"); } switch (oderObject.QueryType) { case EnergyAnalyseQueryType.Convert2Co2: strDepName = "T"; break; case EnergyAnalyseQueryType.Convert2Coal: strDepName = "T"; break; case EnergyAnalyseQueryType.Convert2Money: strDepName = "元"; break; } return(JsonForHightChartsNew.IndexContrastObjsLst(query, result.ObjectName.ToArray(), strDepName, result.Enery)); } catch (Exception ex) { ResultObjLst lst = new ResultObjLst(); ExecuteProcess process = new ExecuteProcess(); process.ExceptionMsg = ex.Message; process.Success = false; lst.ActionInfo = process; return(lst); } }