Пример #1
0
        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 + "\"}");
            }
        }
Пример #2
0
        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);
            }
        }