コード例 #1
0
ファイル: IndexEnery.cs プロジェクト: NickQi/TianheDemo
        public decimal[] GetIndexCompareEnery(DateTime startTime, DateTime endTime)
        {
            decimal[] MonthResult = new decimal[2];
            //            string userid = "";
            //            try
            //            {
            //                userid = Utils.GetCookie("userid");
            //            }
            //            catch
            //            {
            //                userid = "";
            //            }
            //            var ObjectList = new List<Model.BaseLayerObject>();
            //            string where = "";
            //            if (string.IsNullOrEmpty(userid))
            //            {
            //                where = string.Format(@"and LayerObjectParentID={0} ", 0);
            //            }
            //            else
            //            {
            //                where = string.Format(@"and LayerObjectParentID={0} AND layerobjectid in( SELECT  AREAID from TB_USERGROUPAREARIGHT
            //WHERE USERGROUPID =(SELECT GROUPS FROM TB_USER WHERE ID={1} ))", 0, userid);
            //            }

            //            ObjectList = new DAL.BaseLayerObject().GetBaseLayerObjectList(where, string.Format(" order by LayerObjectID"));

            var ObjectList = new BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectParentID={0}", 0), " order by LayerObjectID");
            var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID");
            List<string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList<string>();
            BaseQueryModel model = new BaseQueryModel();
            model.IsDevice = 0;
            model.ObjectList = (from p in ObjectList select p.LayerObjectID).ToList<int>();
            decimal tempConvert = 0;
            foreach (var item in ItemCodeStr)
            {
                decimal tempCount = 0;
                decimal tempCountConvert = 0;
                model.ItemCode = item;
                model.Unit = ChartUnit.unit_month;
                model.Starttime = startTime;
                model.Endtime = endTime;
                var ResList = reportBll.GetBaseEneryDataList(model);
                foreach (var r in ResList.BaseLayerObjectResults)
                {
                    tempCount += r.Value.Total;
                    tempCountConvert += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());
                }
                if (item == "01000")
                {
                    MonthResult[0] = tempCount;
                }
                tempConvert += tempCountConvert;
            }
            MonthResult[1] = tempConvert;
            return MonthResult;
        }
コード例 #2
0
ファイル: LoadForecast.cs プロジェクト: NickQi/TianheDemo
        /// <summary>
        /// 根据查询条件获取数据。
        /// </summary>
        /// <param name="basicQuery"></param>
        /// <returns></returns>
        public ResultCompare GetDateTongJiData(BasicQuery basicQuery)
        {
            var resultList = new ResultView.ResultCompare
            {
                ObjectName = new List <string>(),
                Enery      = new Dictionary <string, List <decimal> >(),
                Dept       = new List <string>()
            };

            List <Model.BaseLayerObject> objectList;

            if (basicQuery.AreaType == AreaType.Area)
            {
                objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList(
                    string.Format(" and layerobjectid = {0}", basicQuery.ObjectNum), "");
            }
            else
            {
                objectList = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList(
                    string.Format(" and layerobjectid = {0}", basicQuery.ObjectNum), "");
            }

            EnergyContrast contst = new EnergyContrast();
            var            result = contst.GetQueryLineChart(basicQuery);

            resultList.ObjectName = result.ObjectName;
            if (basicQuery.ItemCode != "00000")
            {
                var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + basicQuery.ItemCode + "'", " order by ItemcodeID")[0];
                resultList.Enery.Add(objectList[0].LayerObjectName, result.Enery[itemList.ItemCodeName]);
                for (int i = 0; i < result.Dept.Count; i++)
                {
                    resultList.Dept.Add(itemList.Unit);
                }
            }
            else
            {
                var tempValue = new decimal[result.Enery[result.Enery.Keys.First <string>()].Count];
                foreach (var re in result.Enery)
                {
                    for (var i = 0; i < re.Value.Count; i++)
                    {
                        tempValue[i] += re.Value[i];
                    }
                }
                for (int i = 0; i < result.Dept.Count; i++)
                {
                    resultList.Dept.Add("T");
                }
                resultList.Enery.Add(objectList[0].LayerObjectName, tempValue.ToList());
            }

            return(resultList);
        }
コード例 #3
0
ファイル: LoadForecast.cs プロジェクト: NickQi/TianheDemo
        /// <summary>
        /// 根据查询条件获取数据。
        /// </summary>
        /// <param name="basicQuery"></param>
        /// <returns></returns>
        public ResultCompare GetDateTongJiData(BasicQuery basicQuery)
        {
            var resultList = new ResultView.ResultCompare
            {
                ObjectName = new List<string>(),
                Enery = new Dictionary<string, List<decimal>>(),
                Dept = new List<string>()
            };

            List<Model.BaseLayerObject> objectList;
            if (basicQuery.AreaType == AreaType.Area)
            {
                objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList(
                       string.Format(" and layerobjectid = {0}", basicQuery.ObjectNum), "");
            }
            else
            {
                objectList = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList(
                string.Format(" and layerobjectid = {0}", basicQuery.ObjectNum), "");
            }

            EnergyContrast contst = new EnergyContrast();
            var result = contst.GetQueryLineChart(basicQuery);
            resultList.ObjectName = result.ObjectName;
            if (basicQuery.ItemCode != "00000")
            {
                var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + basicQuery.ItemCode + "'", " order by ItemcodeID")[0];
                resultList.Enery.Add(objectList[0].LayerObjectName, result.Enery[itemList.ItemCodeName]);
                for (int i = 0; i < result.Dept.Count; i++)
                {
                    resultList.Dept.Add(itemList.Unit);
                }
            }
            else
            {
                var tempValue = new decimal[result.Enery[result.Enery.Keys.First<string>()].Count];
                foreach (var re in result.Enery)
                {
                    for (var i = 0; i < re.Value.Count; i++)
                    {
                        tempValue[i] += re.Value[i];
                    }
                }
                for (int i = 0; i < result.Dept.Count; i++)
                {
                    resultList.Dept.Add("T");
                }
                resultList.Enery.Add(objectList[0].LayerObjectName, tempValue.ToList());
            }

            return resultList;
        }
コード例 #4
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
        public BaseResult GetDeviceQuerySingleItemCodeEneryTotal(NTS.WEB.DataContact.BasicQuery query)
        {
            var            ObjectList  = new BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectNum), " order by deviceid");
            var            ItemList    = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID");
            List <string>  ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList <string>();
            BaseQueryModel model       = new BaseQueryModel();

            model.IsDevice   = 1;
            model.ObjectList = (from p in ObjectList select p.DeviceID).ToList <int>();
            model.ItemCode   = query.ItemCode;
            model.Unit       = BaseTool.GetChartUnit(query.Unit);
            model.Starttime  = query.StartTime;
            model.Endtime    = query.EndTime;
            var ResList = reportBll.GetBaseEneryDataList(model);

            return(ResList);
        }
コード例 #5
0
ファイル: AjaxChart.cs プロジェクト: NickQi/TianheDemo
        public string ExportQueryLineChart()
        {
            var inputValue = _ntsPage.Request.Form["Inputs"];

            var query = Newtonsoft.Json.JsonConvert.DeserializeObject<BasicQuery>(inputValue);

            var result = Framework.Common.BaseWcf.CreateChannel<ServiceInterface.IChart>("Chart")
                                  .GetQueryLineChart(query);

            try
            {
                string name = new BLL.BaseLayerObject().GetBaseLayerObjectList(
                    string.Format(" and layerobjectid={0}", query.ObjectNum), " order by LayerObjectID")[0].LayerObjectName;
                string itemUnit = result.Dept[0];
                var dept = string.Empty;
                var itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
                if (itList.Count > 0)
                {
                    dept = itList[0].Unit;
                }

                string itemName = query.ItemCode == "00000" ? "总能耗" : dept;

                var ItemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
                string ItemName = query.ItemCode == "00000" ? "总能耗" : ItemList[0].ItemCodeName;
                DataTable dt = TableView.CreateBaseDataTable();
                if (query.ItemCode != "00000")
                {
                    for (var r = 0; r < result.Enery[itList[0].ItemCodeName].Count; r++)
                    {

                        DataRow dr = dt.NewRow();
                        dr[1] = result.ObjectName[r];
                        dr[2] = query.ObjectNum;
                        dr[3] = name;
                        dr[4] = result.ObjectName[r];
                        dr[5] = result.ObjectName[r];
                        dr[6] = itemName;
                        dr[7] = decimal.Round(decimal.Parse(result.Enery[itList[0].ItemCodeName][r].ToString()), 2).ToString();

                        dt.Rows.Add(dr);
                    }
                }
                else
                {
                    foreach (var i in result.Enery)
                    {
                        DataRow drs = dt.NewRow();
                        drs[1] = i.Key;
                        drs[2] = "-";
                        drs[3] = "-";
                        drs[4] = "-";
                        drs[5] = "-";
                        drs[6] = "-";
                        drs[7] = "-";
                        dt.Rows.Add(drs);
                        for (var r = 0; r < result.Enery[i.Key].Count; r++)
                        {

                            DataRow dr = dt.NewRow();
                            dr[1] = result.ObjectName[r];
                            dr[2] = query.ObjectNum;
                            dr[3] = name;
                            dr[4] = result.ObjectName[r];
                            dr[5] = result.ObjectName[r];
                            dr[6] = itemName;
                            dr[7] = decimal.Round(decimal.Parse(result.Enery[i.Key][r].ToString()), 2);

                            dt.Rows.Add(dr);
                        }
                    }
                }

                if (dt != null)
                {
                    string temp_path = AppDomain.CurrentDomain.BaseDirectory + "temp_file\\";
                    if (!Directory.Exists(temp_path))
                    {
                        Directory.CreateDirectory(temp_path);
                        string[] files = Directory.GetFiles(temp_path);
                        foreach (string fn in files)
                        {
                            File.Delete(temp_path + fn);
                        }
                    }
                    string save_path = DateTime.Now.Ticks + ".xls";

                    string templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\能耗查询.xls";

                    TemplateParam param = new TemplateParam(name + " " + ItemName + " ", new CellParam(0, 0), query.StartTime.ToString("yyyy-MM-dd") + "~" + query.EndTime.ToString("yyyy-MM-dd"), new CellParam(3, 0), false, new CellParam(4, 0));
                    param.DataColumn = new[] { 0, 3, 1, 7 };
                    param.ItemUnit = "(单位:" + itemUnit + ")";
                    param.ItemUnitCell = new CellParam(3, 4);
                    dt.TableName = "能耗查询统计";

                    ExportHelper.ExportExcel(dt, temp_path + save_path, templatePath, param);

                    return "{\"status\":\"success\",\"msg\":\"" + "/temp_file/" + save_path + "\"}";
                }
                else
                {
                    return "{\"status\":\"error\",\"msg\":\"导出失败:当前无任何数据\"}";
                }

            }
            catch (Exception ex)
            {
                return "{\"status\":\"error\",\"msg\":\"导出失败:由于当前无数据或其他原因导致" + ex.Message + "\"}";
            }
        }
コード例 #6
0
ファイル: AjaxChart.cs プロジェクト: NickQi/TianheDemo
        public string ExportExcelCostQuery()
        {
            var inputValue = _ntsPage.Request.Form["Inputs"];
            var query = Newtonsoft.Json.JsonConvert.DeserializeObject<QueryCost>(inputValue);
            var result = Framework.Common.BaseWcf.CreateChannel<ServiceInterface.ICostQueryService>("CostQueryService").GetCostQuery(query);
            string objectName = "";
            switch(query.ObjType)
            {
                case AreaType.Area:
                    objectName = new BLL.BaseLayerObject().GetBaseLayerObjectList(
                    string.Format(" and layerobjectid={0}", query.ObjectId), " order by LayerObjectID")[0].LayerObjectName;
                    break;
                case AreaType.Liquid:
                    objectName = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList(
                    string.Format(" and layerobjectid={0}", query.ObjectId), " order by LayerObjectID")[0].LayerObjectName;
                    break;
            }

            var dept = string.Empty;
            List<Model.Itemcode> itList = null;
            string unit = "";
            string itemCodeName = "";

                itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
                if (itList.Count > 0)
                {
                    dept = itList[0].Unit;
                }

                unit = query.ItemCode == "00000" ? "T" : dept;
                itemCodeName = itList.Count == 0 ? "总能耗" : itList[0].ItemCodeName;

            try
            {
                if (result.FeeTbl != null)
                {

                    if (result.FeeTbl.FeeList.Count > 0)
                    {
                        DataTable dt = TableView.CreateCostQueryDataTable(result);
                        for (var r = 0; r < result.FeeTbl.FeeList.Count; r++)
                        {
                            DataRow dr = dt.NewRow();
                            for (int j = 1; j <= dt.Columns.Count - 1; j++)
                            {
                                dr[j] = result.FeeTbl.FeeList[r][j - 1];
                            }

                            dt.Rows.Add(dr);

                        }
                        string temp_path = AppDomain.CurrentDomain.BaseDirectory + "temp_file\\";
                        if (!Directory.Exists(temp_path))
                        {
                            Directory.CreateDirectory(temp_path);
                            string[] files = Directory.GetFiles(temp_path);
                            foreach (string fn in files)
                            {
                                File.Delete(temp_path + fn);
                            }
                        }
                        string save_path = DateTime.Now.Ticks + ".xls";

                        string templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\费用查询.xls";
                        string time = "";
                        switch (query.Particle)
                        {
                            case Particle.Month:
                                time = query.StartTime.Year + "-" + query.StartTime.Month + "月";
                                break;
                            case Particle.Year:
                                time = query.StartTime.Year + "年";
                                break;

                        }
                        TemplateParam param = new TemplateParam(objectName + " 费用查询---" + itemCodeName + "能耗",
                                                                new CellParam(0, 0), time, new CellParam(3, 0), true,
                                                                new CellParam(4, 0));

                        List<int> columnIndex = new List<int>();
                        for (int i = 0; i <= dt.Columns.Count - 1; i++)
                        {
                            columnIndex.Add(i);

                        }
                        param.DataColumn = columnIndex.ToArray();
                        param.ItemUnit = "(单位:" + unit + ")";
                        param.ItemUnitCell = new CellParam(3, 5);

                        param.SortColumn = 0;
                        dt.TableName = "费用查询";

                        ExportHelper.ExportExcel(dt, temp_path + save_path, templatePath, param);

                        return "{\"status\":\"success\",\"msg\":\"" + "/temp_file/" + save_path + "\"}";
                    }
                    else
                    {
                        return "{\"status\":\"error\",\"msg\":\"导出失败:当前无任何数据\"}";
                    }
                }
                else
                {
                    return "{\"status\":\"error\",\"msg\":\"导出失败:当前无任何数据\"}";
                }

            }
            catch (Exception ex)
            {
                return "{\"status\":\"error\",\"msg\":\"导出失败:由于当前无数据或其他原因导致" + ex.Message + "\"}";
            }
        }
コード例 #7
0
ファイル: EnergyContrast.cs プロジェクト: NickQi/TianheDemo
        public ResultItemCode GetPersonNumPeriodsQueryLineChart(QueryContrastPeriods query, TimePeriod time)
        {
            #region 定义区

            var resultList = new ResultView.ResultItemCode
            {
                ObjectName = new List<string>(),
                Enery = new Dictionary<string, List<decimal>>(),
                Dept = new List<string>()
            };

            #endregion

            var dept = string.Empty;
            var objectList =
                new BLL.BaseLayerObject().GetBaseLayerObjectList(
                    string.Format(" and layerobjectid={0}", query.AreaId), " order by LayerObjectID");
            var itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
            if (itList.Count > 0)
            {
                dept = itList[0].Unit;
            }

            dept = query.ItemCode == "00000" ? "T" : dept;
            if (query.ItemCode == "00000")
            {
                // resultList.Dept = new List<string>() { "T" };
                var itemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID");
                var eneryDataListTotal = new Dictionary<string, Dictionary<string, decimal>>();
                var maxcode = "01000";
                var count = 0;
                foreach (var itemcode in itemList)
                {
                    var lineChart = GetPersonNumSingleItemCodeByObject(query, itemcode.ItemCodeNumber, time, 1);

                    if (count < lineChart.Count)
                    {
                        count = lineChart.Count;
                        maxcode = itemcode.ItemCodeNumber;
                    }
                    eneryDataListTotal.Add(itemcode.ItemCodeNumber, lineChart);

                    //  resultList.Enery.Add(itemcode.ItemCodeName, lineChart.DatePickEnery);
                }

                // 重新赋值
                foreach (var itemcode in itemList)
                {
                    var itemcode1 = itemcode;
                    foreach (var max in eneryDataListTotal[maxcode].Where(max => !eneryDataListTotal[itemcode1.ItemCodeNumber].ContainsKey(max.Key)))
                    {
                        eneryDataListTotal[itemcode.ItemCodeNumber].Add(max.Key, 0);
                    }
                    var temp = eneryDataListTotal[itemcode.ItemCodeNumber].OrderBy(p => Convert.ToDateTime(p.Key));
                    var tempOrder = temp.ToDictionary(keyValuePair => keyValuePair.Key, keyValuePair => keyValuePair.Value);
                    eneryDataListTotal[itemcode.ItemCodeNumber] = tempOrder;
                    resultList.Enery.Add(itemcode.ItemCodeName, eneryDataListTotal[itemcode.ItemCodeNumber].Values.ToList());
                }
                resultList.ObjectName = eneryDataListTotal[maxcode].Select(p => p.Key.ToString(CultureInfo.InvariantCulture)).ToList();
            }
            else
            {
                var item = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID")[0];
                var lineChart = GetSingleItemCodeByObjectNew(query, query.ItemCode, time, 0);
                // resultList.Dept = new List<string>() {item.Unit};
                resultList.ObjectName = lineChart.Select(p => p.Key.ToString()).ToList();
                resultList.Enery.Add(item.ItemCodeName, lineChart.Select(p => decimal.Parse(p.Value.ToString())).ToList());
            }
            foreach (var baseLayerObject in resultList.ObjectName)
            {
                resultList.Dept.Add(dept);
            }
            return resultList;
        }
コード例 #8
0
ファイル: EnergyContrast.cs プロジェクト: NickQi/TianheDemo
        /// <summary>
        /// add by: jy
        /// add at: 2014-3-24
        /// note  : 人均能耗对比
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public ResultCompare GetPersonNumCompareChart(QueryOrderObjects queryObject)
        {
            #region 定义区

            var resultList = new ResultView.ResultCompare
            {
                ObjectName = new List<string>(),
                Enery = new Dictionary<string, List<decimal>>(),
                Dept = new List<string>()
            };

            #endregion

            var olist = queryObject.AreaIdLst.Aggregate(string.Empty, (current, q) => current + ("," + q.ToString()));

            if (olist.Length > 0)
            {
                List<Model.BaseLayerObject> objectList;
                if (queryObject.ObjType == AreaType.Area)
                {
                    objectList =
                      new BLL.BaseLayerObject().GetBaseLayerObjectList(
                           string.Format(" and layerobjectid in ({0})", olist.Substring(1)), " order by LayerObjectID");
                }
                else
                {
                    objectList =
              new BLL.BaseLayerObject().GetBaseFuncLayerObjectList(
               string.Format(" and layerobjectid in ({0})", olist.Substring(1)), " order by LayerObjectID");
                }

                foreach (var o in objectList)
                {
                    var basicQuery = new BasicQuery
                    {
                        EndTime = queryObject.EndTime,
                        StartTime = queryObject.StartTime,
                        ItemCode = queryObject.ItemCode,
                        Unit = queryObject.Particle,
                        AreaType = queryObject.ObjType,
                        QueryType = queryObject.QueryType
                    };
                    basicQuery.ObjectNum = o.LayerObjectID;
                    var result = GetQueryLineChart(basicQuery);
                    //resultList.Dept = result.Dept;
                    resultList.ObjectName = result.ObjectName;
                    if (queryObject.ItemCode != "00000")
                    {
                        var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + queryObject.ItemCode + "'", " order by ItemcodeID")[0];
                        //resultList.Enery.Add(o.LayerObjectName, result.Enery[itemList.ItemCodeName]);
                        for (int i = 0; i < result.Dept.Count; i++)
                        {
                            resultList.Dept.Add(itemList.Unit);
                        }

                        resultList.Enery.Add(o.LayerObjectName, result.Enery[itemList.ItemCodeName].Select(p => p / decimal.Parse(o.PersonNum.ToString())).ToList());
                    }
                    else
                    {
                        var tempValue = new decimal[result.Enery[result.Enery.Keys.First<string>()].Count];
                        foreach (var re in result.Enery)
                        {
                            for (var i = 0; i < re.Value.Count; i++)
                            {
                                tempValue[i] += re.Value[i];
                            }
                        }
                        for (int i = 0; i < result.Dept.Count; i++)
                        {
                            resultList.Dept.Add("T");
                        }
                        resultList.Enery.Add(o.LayerObjectName, tempValue.ToList().Select(p => p / decimal.Parse(o.PersonNum.ToString())).ToList());
                    }
                }
                return resultList;
            }
            return null;
        }
コード例 #9
0
ファイル: IndexEnery.cs プロジェクト: NickQi/TianheDemo
        public MainInfo GetIndexCompareEneryNew(DateTime startTime, DateTime endTime)
        {
            MainInfo mainInfo = new MainInfo();
            mainInfo.IsOnlyElec = false;
            mainInfo.ItemValues = new List<EneryStatistic>();
            mainInfo.PeriodValues = new List<EnerySum>();
            var ObjectList = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList(string.Format(" and LayerObjectParentID={0}", 0), " order by LayerObjectID");
            var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID");
            //var ItemList = new BLL.Itemcode().GetItemcodeList("", " order by ItemcodeID");

            EneryStatistic eneryStatistic4Elec = new EneryStatistic();
            if (ItemList.Count == 1)
            {//只有电
                mainInfo.IsOnlyElec = true;//只有电
                eneryStatistic4Elec.CName = ItemList[0].ItemCodeName;
                eneryStatistic4Elec.ItemCode = ItemList[0].ItemCodeNumber;
                eneryStatistic4Elec.Unit = ItemList[0].Unit;
                ItemList = new BLL.Itemcode().GetItemcodeList(string.Format(" and ParentID={0}", ItemList[0].ItemcodeID), " order by ItemcodeID");
            }
            BaseQueryModel model = new BaseQueryModel();
            model.IsDevice = 0;
            model.ObjectList = (from p in ObjectList select p.LayerObjectID).ToList<int>();

            foreach (var item in ItemList)
            {
                EneryStatistic eneryStatistic = new EneryStatistic();
                eneryStatistic.CName = item.ItemCodeName;
                eneryStatistic.ItemCode = item.ItemCodeNumber;
                eneryStatistic.Unit = item.Unit;

                model.ItemCode = item.ItemCodeNumber;
                decimal tempItemCoalEneryValue = 0;
                decimal tempLastMonthItemCoalEneryValue = 0;
                BaseResult ResList = new BaseResult();
                if ((endTime - startTime).Days > 0)
                {
                    model.Unit = ChartUnit.unit_day;
                    model.Starttime = startTime;
                    model.Endtime = DateTime.Parse(endTime.AddDays(-1).ToString("yyyy-MM-dd 00:00:00"));
                    ResList = reportBll.GetBaseEneryDataList(model, true);
                    if (ResList == null)
                    {
                        continue;
                    }
                    foreach (var r in ResList.BaseLayerObjectResults)
                    {
                        eneryStatistic.EneryValue += r.Value.Total;
                        eneryStatistic.EnergyValue2Coal += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());
                        tempItemCoalEneryValue += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());
                    }
                }
                if (endTime.Hour > 0)
                {
                    model.Unit = ChartUnit.unit_hour;
                    model.Starttime = DateTime.Parse(endTime.ToString("yyyy-MM-dd 00:00:00"));
                    model.Endtime = DateTime.Parse(endTime.ToString("yyyy-MM-dd HH:00:00"));
                    ResList = reportBll.GetBaseEneryDataList(model, true);
                    if (ResList == null)
                    {
                        continue;
                    }
                    foreach (var r in ResList.BaseLayerObjectResults)
                    {
                        eneryStatistic.EneryValue += r.Value.Total;
                        eneryStatistic.EnergyValue2Coal += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());
                        tempItemCoalEneryValue += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());
                    }
                }

                eneryStatistic.EneryValue = decimal.Round(eneryStatistic.EneryValue, 2);
                eneryStatistic.EnergyValue2Coal = decimal.Round(eneryStatistic.EnergyValue2Coal, 2);
                tempItemCoalEneryValue = decimal.Round(tempItemCoalEneryValue, 2);

                model.Starttime = startTime.AddMonths(-1);
                model.Endtime = endTime.AddMonths(-1);

                if ((endTime - startTime).Days > 0)
                {
                    model.Unit = ChartUnit.unit_day;
                    model.Endtime = DateTime.Parse(model.Endtime.AddDays(-1).ToString("yyyy-MM-dd 00:00:00"));
                    ResList = reportBll.GetBaseEneryDataList(model, true);
                    if (ResList == null)
                    {
                        continue;
                    }
                    foreach (var r in ResList.BaseLayerObjectResults)
                    {
                        eneryStatistic.EnergyLastMonth += decimal.Round(r.Value.Total, 2);
                        tempLastMonthItemCoalEneryValue += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());
                    }
                }
                if (endTime.Hour > 0)
                {
                    model.Unit = ChartUnit.unit_hour;
                    model.Starttime = DateTime.Parse(endTime.AddMonths(-1).ToString("yyyy-MM-dd 00:00:00"));
                    model.Endtime = DateTime.Parse(endTime.AddMonths(-1).ToString("yyyy-MM-dd HH:00:00"));
                    ResList = reportBll.GetBaseEneryDataList(model, true);
                    if (ResList == null)
                    {
                        continue;
                    }
                    foreach (var r in ResList.BaseLayerObjectResults)
                    {
                        eneryStatistic.EnergyLastMonth += decimal.Round(r.Value.Total, 2);
                        tempLastMonthItemCoalEneryValue += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());
                    }
                }

                eneryStatistic.EnergyLastMonth = decimal.Round(eneryStatistic.EnergyLastMonth, 2);
                tempLastMonthItemCoalEneryValue = decimal.Round(tempLastMonthItemCoalEneryValue, 2);
                if (eneryStatistic.EnergyLastMonth > 0)
                {
                    eneryStatistic.MonthCompare = decimal.Round(100 * (eneryStatistic.EneryValue - eneryStatistic.EnergyLastMonth) / eneryStatistic.EnergyLastMonth, 2)
                                 .ToString(CultureInfo.InvariantCulture) + "%";
                }

                mainInfo.Total += Math.Round(tempItemCoalEneryValue, 2);
                mainInfo.TotalLastMon += Math.Round(tempLastMonthItemCoalEneryValue, 2);

                if (mainInfo.IsOnlyElec)
                {
                    eneryStatistic4Elec.EneryValue += eneryStatistic.EneryValue;
                    eneryStatistic4Elec.EnergyValue2Coal += eneryStatistic.EneryValue;
                    eneryStatistic4Elec.EnergyLastMonth += eneryStatistic.EnergyLastMonth;
                }
                mainInfo.ItemValues.Add(eneryStatistic);

                if (item.ItemCodeNumber == "01000")
                {

                    GeneratePeriodValues(model, mainInfo);
                }

            }

            if (mainInfo.TotalLastMon > 0)
            {
                mainInfo.TotalCompare = decimal.Round(100 * (mainInfo.Total - mainInfo.TotalLastMon) / mainInfo.TotalLastMon, 2)
                             .ToString(CultureInfo.InvariantCulture) + "%";
            }
            if (mainInfo.IsOnlyElec)
            {
                eneryStatistic4Elec.MonthCompare = mainInfo.TotalCompare;
                mainInfo.ItemValues.Insert(0, eneryStatistic4Elec);
                model.ItemCode = "01000";
                GeneratePeriodValues(model, mainInfo);
            }
            return mainInfo;
        }
コード例 #10
0
ファイル: IndexEnery.cs プロジェクト: NickQi/TianheDemo
 public ResultView.IndexMonthEnery GetMonthItemCodeList(DateTime startTime, DateTime endTime)
 {
     IndexMonthEnery MonthResult = new IndexMonthEnery();
     var ObjectList = new BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectParentID='{0}'", 0), " order by LayerObjectID");
     string[] ItemCodeStr = { "01000", "02000", "03000", "04000" };
     Dictionary<string, decimal> SumMonth = new Dictionary<string, decimal>();
     BaseQueryModel model = new BaseQueryModel();
     model.IsDevice = 0;
     model.ObjectList = (from p in ObjectList select p.LayerObjectID).ToList<int>();
     foreach (var item in ItemCodeStr)
     {
         decimal tempCount = 0;
         model.ItemCode = item;
         model.Unit = ChartUnit.unit_month;
         model.Starttime = startTime;
         model.Endtime = endTime;
         var ResList = reportBll.GetBaseEneryDataList(model);
         foreach (var r in ResList.BaseLayerObjectResults)
         {
             tempCount += r.Value.Total;
         }
         SumMonth.Add(item, tempCount);
     }
     if (SumMonth.Count > 0)
     {
         MonthResult.MonthElectricity = SumMonth[ItemCodeStr[0]];
         MonthResult.MonthWater = SumMonth[ItemCodeStr[1]];
         MonthResult.MonthGas = SumMonth[ItemCodeStr[2]];
         MonthResult.MonthWarm = SumMonth[ItemCodeStr[3]];
         return MonthResult;
     }
     return null;
 }
コード例 #11
0
        public ResultItemCode GetPersonNumPeriodsQueryLineChart(QueryContrastPeriods query, TimePeriod time)
        {
            #region 定义区

            var resultList = new ResultView.ResultItemCode
            {
                ObjectName = new List <string>(),
                Enery      = new Dictionary <string, List <decimal> >(),
                Dept       = new List <string>()
            };

            #endregion

            var dept       = string.Empty;
            var objectList =
                new BLL.BaseLayerObject().GetBaseLayerObjectList(
                    string.Format(" and layerobjectid={0}", query.AreaId), " order by LayerObjectID");
            var itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
            if (itList.Count > 0)
            {
                dept = itList[0].Unit;
            }

            dept = query.ItemCode == "00000" ? "T" : dept;
            if (query.ItemCode == "00000")
            {
                // resultList.Dept = new List<string>() { "T" };
                var itemList           = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID");
                var eneryDataListTotal = new Dictionary <string, Dictionary <string, decimal> >();
                var maxcode            = "01000";
                var count = 0;
                foreach (var itemcode in itemList)
                {
                    var lineChart = GetPersonNumSingleItemCodeByObject(query, itemcode.ItemCodeNumber, time, 1);

                    if (count < lineChart.Count)
                    {
                        count   = lineChart.Count;
                        maxcode = itemcode.ItemCodeNumber;
                    }
                    eneryDataListTotal.Add(itemcode.ItemCodeNumber, lineChart);

                    //  resultList.Enery.Add(itemcode.ItemCodeName, lineChart.DatePickEnery);
                }

                // 重新赋值
                foreach (var itemcode in itemList)
                {
                    var itemcode1 = itemcode;
                    foreach (var max in eneryDataListTotal[maxcode].Where(max => !eneryDataListTotal[itemcode1.ItemCodeNumber].ContainsKey(max.Key)))
                    {
                        eneryDataListTotal[itemcode.ItemCodeNumber].Add(max.Key, 0);
                    }
                    var temp      = eneryDataListTotal[itemcode.ItemCodeNumber].OrderBy(p => Convert.ToDateTime(p.Key));
                    var tempOrder = temp.ToDictionary(keyValuePair => keyValuePair.Key, keyValuePair => keyValuePair.Value);
                    eneryDataListTotal[itemcode.ItemCodeNumber] = tempOrder;
                    resultList.Enery.Add(itemcode.ItemCodeName, eneryDataListTotal[itemcode.ItemCodeNumber].Values.ToList());
                }
                resultList.ObjectName = eneryDataListTotal[maxcode].Select(p => p.Key.ToString(CultureInfo.InvariantCulture)).ToList();
            }
            else
            {
                var item      = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID")[0];
                var lineChart = GetSingleItemCodeByObjectNew(query, query.ItemCode, time, 0);
                // resultList.Dept = new List<string>() {item.Unit};
                resultList.ObjectName = lineChart.Select(p => p.Key.ToString()).ToList();
                resultList.Enery.Add(item.ItemCodeName, lineChart.Select(p => decimal.Parse(p.Value.ToString())).ToList());
            }
            foreach (var baseLayerObject in resultList.ObjectName)
            {
                resultList.Dept.Add(dept);
            }
            return(resultList);
        }
コード例 #12
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
        public QueryEneryTotal GetDeviceQueryEneryTotal(NTS.WEB.DataContact.BasicQuery query)
        {
            BaseResult baseResult = new BaseResult();

            baseResult.BaseLayerObjectResults = new Dictionary <string, BaseData>();
            var Object = new BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectNum), " order by deviceid")[0];

            baseResult.BaseLayerObjectResults = new Dictionary <string, BaseData>();
            baseResult.BaseLayerObjectResults.Add(Object.DeviceID.ToString(), new BaseData());
            baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList = new System.Collections.Hashtable();
            baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Datas = new List <DataItems>();
            baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList.Add("ITEMCOAL", 0);
            baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList.Add("ITEMCO2", 0);


            if (query.ItemCode != "00000")
            {
                query.ItemCode = Object.ItemCodeID;
                var resList = GetQueryDeviceSingleItemCodeEneryTotal(query);
                return(resList != null ? new QueryEneryTotal {
                    TotalEnergy = resList.BaseLayerObjectResults[Object.DeviceID.ToString()].Total
                } : null);
            }
            else
            {
                query.ItemCode = Object.ItemCodeID;
                query.ItemCode = Object.ItemCodeID;
                var resList = GetQueryDeviceSingleItemCodeEneryTotal(query);
                return(resList != null ? new QueryEneryTotal {
                    TotalEnergy = decimal.Parse(resList.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString())
                } : null);
                //var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID");
                //List<string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList<string>();

                //Dictionary<string, decimal> DataValue = new Dictionary<string, decimal>();
                //Dictionary<string, decimal> CoalDataValue = new Dictionary<string, decimal>();
                //Dictionary<string, decimal> Co2DataValue = new Dictionary<string, decimal>();
                //for (var item = 0; item < ItemCodeStr.Count; item++)
                //{

                //    query.ItemCode = ItemCodeStr[item];
                //    var ResList = GetQueryDeviceSingleItemCodeEneryTotal(query);
                //    if (ResList != null)
                //    {

                //        baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Total += ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].Total;
                //        baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString());
                //        baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCO2"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCO2"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCO2"].ToString());
                //        foreach (var li in ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].Datas)
                //        {
                //            #region 累加赋值
                //            if (DataValue.ContainsKey(li.DatePick))
                //            {
                //                DataValue[li.DatePick] += li.DataValue;
                //            }
                //            else
                //            {
                //                DataValue.Add(li.DatePick, li.DataValue);
                //            }
                //            if (CoalDataValue.ContainsKey(li.DatePick))
                //            {
                //                CoalDataValue[li.DatePick] += li.CoalDataValue;
                //            }
                //            else
                //            {
                //                CoalDataValue.Add(li.DatePick, li.CoalDataValue);
                //            }
                //            if (Co2DataValue.ContainsKey(li.DatePick))
                //            {
                //                Co2DataValue[li.DatePick] += li.Co2DataValue;
                //            }
                //            else
                //            {
                //                Co2DataValue.Add(li.DatePick, li.Co2DataValue);
                //            }
                //            #endregion

                //            if (item == ItemCodeStr.Count - 1)
                //            {
                //                li.DataValue = DataValue[li.DatePick];
                //                li.CoalDataValue = CoalDataValue[li.DatePick];
                //                li.Co2DataValue = Co2DataValue[li.DatePick];
                //                baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Datas.Add(li);
                //            }
                //        }

                //    }
                //}
                // if (baseResult != null) { return new QueryEneryTotal { TotalEnergy = baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Total }; }
                //return null;
            }
        }
コード例 #13
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
        public QueryEneryTotal GetQueryEneryTotal(NTS.WEB.DataContact.BasicQuery query)
        {
            BaseResult baseResult = new BaseResult();

            baseResult.BaseLayerObjectResults = new Dictionary <string, BaseData>();
            var Object = new BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectID={0}", query.ObjectNum), " order by LayerObjectID")[0];

            baseResult.BaseLayerObjectResults = new Dictionary <string, BaseData>();
            baseResult.BaseLayerObjectResults.Add(Object.LayerObjectID.ToString(), new BaseData());
            baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList = new System.Collections.Hashtable();
            baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Datas = new List <DataItems>();
            baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList.Add("ITEMCOAL", 0);
            baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList.Add("ITEMCO2", 0);
            if (query.ItemCode != "00000")
            {
                var ResList = GetQuerySingleItemCodeEneryTotal(query);
                if (ResList != null)
                {
                    return(new QueryEneryTotal {
                        TotalEnergy = decimal.Parse(ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString())
                    });
                }                                                                                                                                                                                                //TotalEnergy = ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Total
                return(null);
            }
            else
            {
                var           ItemList    = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID");
                List <string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList <string>();

                Dictionary <string, decimal> DataValue     = new Dictionary <string, decimal>();
                Dictionary <string, decimal> CoalDataValue = new Dictionary <string, decimal>();
                Dictionary <string, decimal> Co2DataValue  = new Dictionary <string, decimal>();
                for (var item = 0; item < ItemCodeStr.Count; item++)
                {
                    query.ItemCode = ItemCodeStr[item];
                    var ResList = GetQuerySingleItemCodeEneryTotal(query);
                    if (ResList != null)
                    {
                        baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Total += ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Total;
                        baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString());
                        baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCO2"]  = decimal.Parse(baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCO2"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCO2"].ToString());
                        foreach (var li in ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Datas)
                        {
                            #region 累加赋值
                            if (DataValue.ContainsKey(li.DatePick))
                            {
                                DataValue[li.DatePick] += li.DataValue;
                            }
                            else
                            {
                                DataValue.Add(li.DatePick, li.DataValue);
                            }
                            if (CoalDataValue.ContainsKey(li.DatePick))
                            {
                                CoalDataValue[li.DatePick] += li.CoalDataValue;
                            }
                            else
                            {
                                CoalDataValue.Add(li.DatePick, li.CoalDataValue);
                            }
                            if (Co2DataValue.ContainsKey(li.DatePick))
                            {
                                Co2DataValue[li.DatePick] += li.Co2DataValue;
                            }
                            else
                            {
                                Co2DataValue.Add(li.DatePick, li.Co2DataValue);
                            }
                            #endregion

                            if (item == ItemCodeStr.Count - 1)
                            {
                                li.DataValue     = DataValue[li.DatePick];
                                li.CoalDataValue = CoalDataValue[li.DatePick];
                                li.Co2DataValue  = Co2DataValue[li.DatePick];
                                baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Datas.Add(li);
                            }
                        }
                    }
                }
                if (baseResult != null)
                {
                    return(new QueryEneryTotal {
                        TotalEnergy = decimal.Parse(baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString())
                    });
                }
                return(null);
            }
        }
コード例 #14
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
        public QueryEneryTotal GetDeviceQueryEneryTotal(NTS.WEB.DataContact.BasicQuery query)
        {
            BaseResult baseResult = new BaseResult();
            baseResult.BaseLayerObjectResults = new Dictionary<string, BaseData>();
            var Object = new BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectNum), " order by deviceid")[0];
            baseResult.BaseLayerObjectResults = new Dictionary<string, BaseData>();
            baseResult.BaseLayerObjectResults.Add(Object.DeviceID.ToString(), new BaseData());
            baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList = new System.Collections.Hashtable();
            baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Datas = new List<DataItems>();
            baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList.Add("ITEMCOAL", 0);
            baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList.Add("ITEMCO2", 0);

            if (query.ItemCode != "00000")
            {
                query.ItemCode = Object.ItemCodeID;
                var resList = GetQueryDeviceSingleItemCodeEneryTotal(query);
                return resList != null ? new QueryEneryTotal { TotalEnergy = resList.BaseLayerObjectResults[Object.DeviceID.ToString()].Total } : null;
            }
            else
            {
                query.ItemCode = Object.ItemCodeID;
                query.ItemCode = Object.ItemCodeID;
                var resList = GetQueryDeviceSingleItemCodeEneryTotal(query);
                return resList != null ? new QueryEneryTotal { TotalEnergy = decimal.Parse(resList.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) } : null;
                //var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID");
                //List<string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList<string>();

                //Dictionary<string, decimal> DataValue = new Dictionary<string, decimal>();
                //Dictionary<string, decimal> CoalDataValue = new Dictionary<string, decimal>();
                //Dictionary<string, decimal> Co2DataValue = new Dictionary<string, decimal>();
                //for (var item = 0; item < ItemCodeStr.Count; item++)
                //{

                //    query.ItemCode = ItemCodeStr[item];
                //    var ResList = GetQueryDeviceSingleItemCodeEneryTotal(query);
                //    if (ResList != null)
                //    {

                //        baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Total += ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].Total;
                //        baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString());
                //        baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCO2"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCO2"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList["ITEMCO2"].ToString());
                //        foreach (var li in ResList.BaseLayerObjectResults[Object.DeviceID.ToString()].Datas)
                //        {
                //            #region 累加赋值
                //            if (DataValue.ContainsKey(li.DatePick))
                //            {
                //                DataValue[li.DatePick] += li.DataValue;
                //            }
                //            else
                //            {
                //                DataValue.Add(li.DatePick, li.DataValue);
                //            }
                //            if (CoalDataValue.ContainsKey(li.DatePick))
                //            {
                //                CoalDataValue[li.DatePick] += li.CoalDataValue;
                //            }
                //            else
                //            {
                //                CoalDataValue.Add(li.DatePick, li.CoalDataValue);
                //            }
                //            if (Co2DataValue.ContainsKey(li.DatePick))
                //            {
                //                Co2DataValue[li.DatePick] += li.Co2DataValue;
                //            }
                //            else
                //            {
                //                Co2DataValue.Add(li.DatePick, li.Co2DataValue);
                //            }
                //            #endregion

                //            if (item == ItemCodeStr.Count - 1)
                //            {
                //                li.DataValue = DataValue[li.DatePick];
                //                li.CoalDataValue = CoalDataValue[li.DatePick];
                //                li.Co2DataValue = Co2DataValue[li.DatePick];
                //                baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Datas.Add(li);
                //            }
                //        }

                //    }
                //}
                // if (baseResult != null) { return new QueryEneryTotal { TotalEnergy = baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Total }; }
                //return null;
            }
        }
コード例 #15
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
 public BaseResult GetQuerySingleItemCodeEneryTotal(NTS.WEB.DataContact.BasicQuery query)
 {
     var ObjectList = new BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectID={0}", query.ObjectNum), " order by LayerObjectID");
     // var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=-1", " order by ItemcodeID");
     //List<string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList<string>();
     BaseQueryModel model = new BaseQueryModel();
     model.IsDevice = 0;
     model.ObjectList = (from p in ObjectList select p.LayerObjectID).ToList<int>();
     model.ItemCode = query.ItemCode;
     model.Unit = BaseTool.GetChartUnit(query.Unit);
     model.Starttime = query.StartTime;
     model.Endtime = query.EndTime;
     var ResList = reportBll.GetBaseEneryDataList(model);
     return ResList;
 }
コード例 #16
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
        public QueryEneryTotal GetQueryEneryTotal(NTS.WEB.DataContact.BasicQuery query)
        {
            BaseResult baseResult = new BaseResult();
            baseResult.BaseLayerObjectResults = new Dictionary<string, BaseData>();
            var Object = new BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectID={0}", query.ObjectNum), " order by LayerObjectID")[0];
            baseResult.BaseLayerObjectResults = new Dictionary<string, BaseData>();
            baseResult.BaseLayerObjectResults.Add(Object.LayerObjectID.ToString(), new BaseData());
            baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList = new System.Collections.Hashtable();
            baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Datas = new List<DataItems>();
            baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList.Add("ITEMCOAL", 0);
            baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList.Add("ITEMCO2", 0);
            if (query.ItemCode != "00000")
            {
                var ResList = GetQuerySingleItemCodeEneryTotal(query);
                if (ResList != null) { return new QueryEneryTotal { TotalEnergy = decimal.Parse(ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) }; }//TotalEnergy = ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Total
                return null;
            }
            else
            {
                var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID");
                List<string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList<string>();

                Dictionary<string, decimal> DataValue = new Dictionary<string, decimal>();
                Dictionary<string, decimal> CoalDataValue = new Dictionary<string, decimal>();
                Dictionary<string, decimal> Co2DataValue = new Dictionary<string, decimal>();
                for (var item = 0; item < ItemCodeStr.Count; item++)
                {

                    query.ItemCode = ItemCodeStr[item];
                    var ResList = GetQuerySingleItemCodeEneryTotal(query);
                    if (ResList != null)
                    {

                        baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Total += ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Total;
                        baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString());
                        baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCO2"] = decimal.Parse(baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCO2"].ToString()) + decimal.Parse(ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCO2"].ToString());
                        foreach (var li in ResList.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Datas)
                        {
                            #region 累加赋值
                            if (DataValue.ContainsKey(li.DatePick))
                            {
                                DataValue[li.DatePick] += li.DataValue;
                            }
                            else
                            {
                                DataValue.Add(li.DatePick, li.DataValue);
                            }
                            if (CoalDataValue.ContainsKey(li.DatePick))
                            {
                                CoalDataValue[li.DatePick] += li.CoalDataValue;
                            }
                            else
                            {
                                CoalDataValue.Add(li.DatePick, li.CoalDataValue);
                            }
                            if (Co2DataValue.ContainsKey(li.DatePick))
                            {
                                Co2DataValue[li.DatePick] += li.Co2DataValue;
                            }
                            else
                            {
                                Co2DataValue.Add(li.DatePick, li.Co2DataValue);
                            }
                            #endregion

                            if (item == ItemCodeStr.Count - 1)
                            {
                                li.DataValue = DataValue[li.DatePick];
                                li.CoalDataValue = CoalDataValue[li.DatePick];
                                li.Co2DataValue = Co2DataValue[li.DatePick];
                                baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].Datas.Add(li);
                            }
                        }

                    }
                }
                if (baseResult != null) { return new QueryEneryTotal { TotalEnergy = decimal.Parse(baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) }; }
                return null;
            }
        }
コード例 #17
0
ファイル: AjaxChart.cs プロジェクト: NickQi/TianheDemo
        public string ExportQueryLineChart()
        {
            var inputValue = _ntsPage.Request.Form["Inputs"];

            var query = Newtonsoft.Json.JsonConvert.DeserializeObject <BasicQuery>(inputValue);

            var result = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IChart>("Chart")
                         .GetQueryLineChart(query);

            try
            {
                string name = new BLL.BaseLayerObject().GetBaseLayerObjectList(
                    string.Format(" and layerobjectid={0}", query.ObjectNum), " order by LayerObjectID")[0].LayerObjectName;
                string itemUnit = result.Dept[0];
                var    dept     = string.Empty;
                var    itList   = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
                if (itList.Count > 0)
                {
                    dept = itList[0].Unit;
                }

                string itemName = query.ItemCode == "00000" ? "总能耗" : dept;

                var       ItemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
                string    ItemName = query.ItemCode == "00000" ? "总能耗" : ItemList[0].ItemCodeName;
                DataTable dt       = TableView.CreateBaseDataTable();
                if (query.ItemCode != "00000")
                {
                    for (var r = 0; r < result.Enery[itList[0].ItemCodeName].Count; r++)
                    {
                        DataRow dr = dt.NewRow();
                        dr[1] = result.ObjectName[r];
                        dr[2] = query.ObjectNum;
                        dr[3] = name;
                        dr[4] = result.ObjectName[r];
                        dr[5] = result.ObjectName[r];
                        dr[6] = itemName;
                        dr[7] = decimal.Round(decimal.Parse(result.Enery[itList[0].ItemCodeName][r].ToString()), 2).ToString();

                        dt.Rows.Add(dr);
                    }
                }
                else
                {
                    foreach (var i in result.Enery)
                    {
                        DataRow drs = dt.NewRow();
                        drs[1] = i.Key;
                        drs[2] = "-";
                        drs[3] = "-";
                        drs[4] = "-";
                        drs[5] = "-";
                        drs[6] = "-";
                        drs[7] = "-";
                        dt.Rows.Add(drs);
                        for (var r = 0; r < result.Enery[i.Key].Count; r++)
                        {
                            DataRow dr = dt.NewRow();
                            dr[1] = result.ObjectName[r];
                            dr[2] = query.ObjectNum;
                            dr[3] = name;
                            dr[4] = result.ObjectName[r];
                            dr[5] = result.ObjectName[r];
                            dr[6] = itemName;
                            dr[7] = decimal.Round(decimal.Parse(result.Enery[i.Key][r].ToString()), 2);

                            dt.Rows.Add(dr);
                        }
                    }
                }

                if (dt != null)
                {
                    string temp_path = AppDomain.CurrentDomain.BaseDirectory + "temp_file\\";
                    if (!Directory.Exists(temp_path))
                    {
                        Directory.CreateDirectory(temp_path);
                        string[] files = Directory.GetFiles(temp_path);
                        foreach (string fn in files)
                        {
                            File.Delete(temp_path + fn);
                        }
                    }
                    string save_path = DateTime.Now.Ticks + ".xls";

                    string templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\能耗查询.xls";

                    TemplateParam param = new TemplateParam(name + " " + ItemName + " ", new CellParam(0, 0), query.StartTime.ToString("yyyy-MM-dd") + "~" + query.EndTime.ToString("yyyy-MM-dd"), new CellParam(3, 0), false, new CellParam(4, 0));
                    param.DataColumn   = new[] { 0, 3, 1, 7 };
                    param.ItemUnit     = "(单位:" + itemUnit + ")";
                    param.ItemUnitCell = new CellParam(3, 4);
                    dt.TableName       = "能耗查询统计";

                    ExportHelper.ExportExcel(dt, temp_path + save_path, templatePath, param);

                    return("{\"status\":\"success\",\"msg\":\"" + "/temp_file/" + save_path + "\"}");
                }
                else
                {
                    return("{\"status\":\"error\",\"msg\":\"导出失败:当前无任何数据\"}");
                }
            }
            catch (Exception ex)
            {
                return("{\"status\":\"error\",\"msg\":\"导出失败:由于当前无数据或其他原因导致" + ex.Message + "\"}");
            }
        }
コード例 #18
0
ファイル: Charts.cs プロジェクト: NickQi/TianheDemo
 /// <summary>
 /// 返回首页的电分类占比图
 /// </summary>
 /// <returns></returns>
 public List<decimal> GetIndexPieChart()
 {
     var objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and layerobjectparentid={0}", 0), " order by LayerObjectID");
     var itemList = new NTS.WEB.BLL.Itemcode().GetItemcodeList(string.Format(" and ParentID=(select itemcodeid from Becm_ItemCode where ItemCodeNumber='{0}')", "01000"), " order by ItemcodeID");
     var list = (from item in itemList
                 select new BaseQueryModel
                     {
                         IsDevice = 0,
                         ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>(),
                         ItemCode = item.ItemCodeNumber,
                         Unit = ChartUnit.unit_month,
                         Starttime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-1")),
                         Endtime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-1"))
                     }
                     into model
                     select _reportBll.GetBaseEneryDataList(model)
                         into resList
                         select objectList.Sum(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString()].Total)).ToList();
     return list;
 }
コード例 #19
0
ファイル: AjaxChart.cs プロジェクト: NickQi/TianheDemo
        public string ExportExcelCostQuery()
        {
            var    inputValue = _ntsPage.Request.Form["Inputs"];
            var    query      = Newtonsoft.Json.JsonConvert.DeserializeObject <QueryCost>(inputValue);
            var    result     = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.ICostQueryService>("CostQueryService").GetCostQuery(query);
            string objectName = "";

            switch (query.ObjType)
            {
            case AreaType.Area:
                objectName = new BLL.BaseLayerObject().GetBaseLayerObjectList(
                    string.Format(" and layerobjectid={0}", query.ObjectId), " order by LayerObjectID")[0].LayerObjectName;
                break;

            case AreaType.Liquid:
                objectName = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList(
                    string.Format(" and layerobjectid={0}", query.ObjectId), " order by LayerObjectID")[0].LayerObjectName;
                break;
            }

            var dept = string.Empty;
            List <Model.Itemcode> itList = null;
            string unit         = "";
            string itemCodeName = "";



            itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
            if (itList.Count > 0)
            {
                dept = itList[0].Unit;
            }

            unit         = query.ItemCode == "00000" ? "T" : dept;
            itemCodeName = itList.Count == 0 ? "总能耗" : itList[0].ItemCodeName;


            try
            {
                if (result.FeeTbl != null)
                {
                    if (result.FeeTbl.FeeList.Count > 0)
                    {
                        DataTable dt = TableView.CreateCostQueryDataTable(result);
                        for (var r = 0; r < result.FeeTbl.FeeList.Count; r++)
                        {
                            DataRow dr = dt.NewRow();
                            for (int j = 1; j <= dt.Columns.Count - 1; j++)
                            {
                                dr[j] = result.FeeTbl.FeeList[r][j - 1];
                            }

                            dt.Rows.Add(dr);
                        }
                        string temp_path = AppDomain.CurrentDomain.BaseDirectory + "temp_file\\";
                        if (!Directory.Exists(temp_path))
                        {
                            Directory.CreateDirectory(temp_path);
                            string[] files = Directory.GetFiles(temp_path);
                            foreach (string fn in files)
                            {
                                File.Delete(temp_path + fn);
                            }
                        }
                        string save_path = DateTime.Now.Ticks + ".xls";

                        string templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\费用查询.xls";
                        string time         = "";
                        switch (query.Particle)
                        {
                        case Particle.Month:
                            time = query.StartTime.Year + "-" + query.StartTime.Month + "月";
                            break;

                        case Particle.Year:
                            time = query.StartTime.Year + "年";
                            break;
                        }
                        TemplateParam param = new TemplateParam(objectName + " 费用查询---" + itemCodeName + "能耗",
                                                                new CellParam(0, 0), time, new CellParam(3, 0), true,
                                                                new CellParam(4, 0));


                        List <int> columnIndex = new List <int>();
                        for (int i = 0; i <= dt.Columns.Count - 1; i++)
                        {
                            columnIndex.Add(i);
                        }
                        param.DataColumn   = columnIndex.ToArray();
                        param.ItemUnit     = "(单位:" + unit + ")";
                        param.ItemUnitCell = new CellParam(3, 5);

                        param.SortColumn = 0;
                        dt.TableName     = "费用查询";

                        ExportHelper.ExportExcel(dt, temp_path + save_path, templatePath, param);

                        return("{\"status\":\"success\",\"msg\":\"" + "/temp_file/" + save_path + "\"}");
                    }
                    else
                    {
                        return("{\"status\":\"error\",\"msg\":\"导出失败:当前无任何数据\"}");
                    }
                }
                else
                {
                    return("{\"status\":\"error\",\"msg\":\"导出失败:当前无任何数据\"}");
                }
            }
            catch (Exception ex)
            {
                return("{\"status\":\"error\",\"msg\":\"导出失败:由于当前无数据或其他原因导致" + ex.Message + "\"}");
            }
        }
コード例 #20
0
ファイル: Charts.cs プロジェクト: NickQi/TianheDemo
        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;
        }
コード例 #21
0
        public ResultCompare GetAreaCompareChart(QueryOrderObjects queryObject)
        {
            #region 定义区


            var resultList = new ResultView.ResultCompare
            {
                ObjectName = new List <string>(),
                Enery      = new Dictionary <string, List <decimal> >(),
                Dept       = new List <string>()
            };

            #endregion


            var olist = queryObject.AreaIdLst.Aggregate(string.Empty, (current, q) => current + ("," + q.ToString()));

            if (olist.Length > 0)
            {
                List <Model.BaseLayerObject> objectList;
                if (queryObject.ObjType == AreaType.Area)
                {
                    objectList =
                        new BLL.BaseLayerObject().GetBaseLayerObjectList(
                            string.Format(" and layerobjectid in ({0})", olist.Substring(1)), " order by LayerObjectID");
                }
                else
                {
                    objectList =
                        new BLL.BaseLayerObject().GetBaseFuncLayerObjectList(
                            string.Format(" and layerobjectid in ({0})", olist.Substring(1)), " order by LayerObjectID");
                }



                foreach (var o in objectList)
                {
                    var basicQuery = new BasicQuery
                    {
                        EndTime   = queryObject.EndTime,
                        StartTime = queryObject.StartTime,
                        ItemCode  = queryObject.ItemCode,
                        Unit      = queryObject.Particle,
                        AreaType  = queryObject.ObjType,
                        QueryType = queryObject.QueryType
                    };
                    basicQuery.ObjectNum = o.LayerObjectID;
                    var result = GetQueryLineChart(basicQuery);
                    //resultList.Dept = result.Dept;
                    resultList.ObjectName = result.ObjectName;
                    if (queryObject.ItemCode != "00000")
                    {
                        var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + queryObject.ItemCode + "'", " order by ItemcodeID")[0];
                        //resultList.Enery.Add(o.LayerObjectName, result.Enery[itemList.ItemCodeName]);
                        for (int i = 0; i < result.Dept.Count; i++)
                        {
                            resultList.Dept.Add(itemList.Unit);
                        }

                        resultList.Enery.Add(o.LayerObjectName, result.Enery[itemList.ItemCodeName].Select(p => p / decimal.Parse(o.AreaNum.ToString())).ToList());
                    }
                    else
                    {
                        var tempValue = new decimal[result.Enery[result.Enery.Keys.First <string>()].Count];
                        foreach (var re in result.Enery)
                        {
                            for (var i = 0; i < re.Value.Count; i++)
                            {
                                tempValue[i] += re.Value[i];
                            }
                        }
                        for (int i = 0; i < result.Dept.Count; i++)
                        {
                            resultList.Dept.Add("T");
                        }
                        resultList.Enery.Add(o.LayerObjectName, tempValue.ToList().Select(p => p / decimal.Parse(o.AreaNum.ToString())).ToList());
                    }
                }
                return(resultList);
            }
            return(null);
        }
コード例 #22
0
ファイル: IndexEnery.cs プロジェクト: NickQi/TianheDemo
        public ResultView.IndexWindowResult GetItemCodeListByObjectID(QueryIndexWindow query)
        {
            Dictionary<string, BaseResult> Res = new Dictionary<string, BaseResult>();
            IndexWindowResult Results = new IndexWindowResult();
            string[] ItemCodeStr = { "01000", "02000", "03000", "04000" };//daixy 该处需要修改
            DateTime[] Dates = { query.StatisticsDate, query.StatisticsDate.AddDays(-1) };
            List<Model.BaseLayerObject> queryObjectList = new BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectID={0}", query.BuildingNumber), " order by LayerObjectID");
            var queryObject = new Model.BaseLayerObject();
            if (queryObjectList.Count > 0)
            {
                queryObject = queryObjectList[0];
            }
            else
            {
                return null;
            }
            BaseQueryModel model1 = new BaseQueryModel();
            try
            {
                BaseQueryModel model = new BaseQueryModel();
                model.IsDevice = 0;
                model.ObjectList = new List<int>() { query.BuildingNumber };
                foreach (var i in ItemCodeStr)
                {
                    foreach (var d in Dates)
                    {
                        model.ItemCode = i;
                        model.Unit = ChartUnit.unit_day;
                        model.Starttime = d;
                        model.Endtime = d;
                        model1 = new BaseQueryModel();
                        model1.ItemCode = i;
                        model1.Unit = ChartUnit.unit_day;
                        model1.Starttime = d;
                        model1.Endtime = d;
                        Res.Add(i + "_" + d, reportBll.GetBaseEneryDataList(model));
                    }
                }
                if (Res.Count > 0)
                {
                    Results.Electricity = Res[ItemCodeStr[0] + "_" + Dates[0]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()].Total;
                    Results.Water = Res[ItemCodeStr[1] + "_" + Dates[0]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()].Total;
                    Results.Gas = Res[ItemCodeStr[2] + "_" + Dates[0]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()].Total;
                    Results.Warm = Res[ItemCodeStr[3] + "_" + Dates[0]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()].Total;
                    if (
                        Res[ItemCodeStr[0] + "_" + Dates[1]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()]
                            .Total == 0)
                    {
                        Results.ComparedElectricity = "-";
                    }
                    else
                    {
                        Results.ComparedElectricity =
                            decimal.Round(
                                100 * (Results.Electricity -
                                 Res[ItemCodeStr[0] + "_" + Dates[1]].BaseLayerObjectResults[
                                     queryObject.LayerObjectID.ToString()].Total) /
                                Res[ItemCodeStr[0] + "_" + Dates[1]].BaseLayerObjectResults[
                                    queryObject.LayerObjectID.ToString()].Total, 2).ToString() + "%";
                    }
                    if (Res[ItemCodeStr[1] + "_" + Dates[1]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()]
                            .Total == 0)
                    {
                        Results.ComparedWater = "-";
                    }
                    else
                    {
                        Results.ComparedWater =
                            decimal.Round(
                                100 * (Results.Water -
                                 Res[ItemCodeStr[1] + "_" + Dates[1]].BaseLayerObjectResults[
                                     queryObject.LayerObjectID.ToString()].Total) /
                                Res[ItemCodeStr[1] + "_" + Dates[1]].BaseLayerObjectResults[
                                    queryObject.LayerObjectID.ToString()].Total, 2).ToString() + "%";
                    }
                    if (Res[ItemCodeStr[2] + "_" + Dates[1]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()]
                            .Total == 0)
                    {
                        Results.ComparedGas = "-";
                    }
                    else
                    {
                        Results.ComparedGas =
                            decimal.Round(
                                100 * (Results.Gas -
                                 Res[ItemCodeStr[2] + "_" + Dates[1]].BaseLayerObjectResults[
                                     queryObject.LayerObjectID.ToString()].Total) /
                                Res[ItemCodeStr[2] + "_" + Dates[1]].BaseLayerObjectResults[
                                    queryObject.LayerObjectID.ToString()].Total, 2).ToString() + "%";
                    }
                    if (Res[ItemCodeStr[3] + "_" + Dates[1]].BaseLayerObjectResults[queryObject.LayerObjectID.ToString()]
                            .Total == 0)
                    {
                        Results.ComparedWarm = "-";
                    }
                    else
                    {
                        Results.ComparedWarm =
                            decimal.Round(
                                100 * (Results.Warm -
                                 Res[ItemCodeStr[3] + "_" + Dates[1]].BaseLayerObjectResults[
                                     queryObject.LayerObjectID.ToString()].Total) /
                                Res[ItemCodeStr[3] + "_" + Dates[1]].BaseLayerObjectResults[
                                    queryObject.LayerObjectID.ToString()].Total, 2).ToString() + "%";
                    }
                    return Results;
                }
            }
            catch (Exception ex)
            {
                return null;
            }

            return null;
        }