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 ResultContrast IndexContrastObjsChart() { 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("请选择多个对象进行比较!"); } EnergyAnalyseQueryType typeItemCode = oderObject.QueryType; 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.IndexContrastObjsChart(query, "对比柱状图", 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); } }