コード例 #1
0
        public string GetDeviceListByArea(QueryDevice query)
        {
            StringBuilder sbTree = new StringBuilder();
            //  var result = new ResultDevice();
            //  result.DeviceUnitList = new List<DeviceUnit>();
            List <NTS.WEB.Model.Device> deviceList;

            if (query.ItemCode == "00000" || string.IsNullOrEmpty(query.ItemCode))
            {
                deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + query.AreaID, " order by deviceid");
            }
            else
            {
                string itemCodeAll       = query.ItemCode;
                string tempCode          = string.Empty;
                var    itemcodeList      = new NTS.WEB.BLL.Itemcode().GetItemcodeList("  and ItemCodeNumber='" + query.ItemCode + "'", " order by itemcodeid")[0];
                var    itemcodeListChild = new NTS.WEB.BLL.Itemcode().GetItemcodeList("  and ParentID=" + itemcodeList.ItemcodeID, " order by itemcodeid");
                foreach (NTS.WEB.Model.Itemcode itemcode in itemcodeListChild)
                {
                    tempCode += ",'" + itemcode.ItemCodeNumber + "'";
                }
                itemCodeAll = tempCode.Length > 0 ? tempCode.Substring(1) : "'" + itemCodeAll + "'";
                deviceList  = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and ItemCodeID in (" + itemCodeAll + ") and areaid=" + query.AreaID, " order by deviceid");
            }
            sbTree.Append("[");
            for (var device = 0; device < deviceList.Count; device++)
            {
                sbTree.Append("{\"text\": \"" + deviceList[device].DeviceName + "\",\"id\": " + deviceList[device].DeviceID + ",\"classes\": \"equip\"}");
                sbTree.Append(device == deviceList.Count - 1 ? "" : ",");
            }
            sbTree.Append("]");
            return(sbTree.ToString());
        }
コード例 #2
0
ファイル: BaseTree.cs プロジェクト: NickQi/TianheDemo
        public string GetDeviceListByArea(QueryDevice query)
        {
            StringBuilder sbTree = new StringBuilder();
            //  var result = new ResultDevice();
            //  result.DeviceUnitList = new List<DeviceUnit>();
            List <Device> deviceList;

            if (query.ItemCode == "00000")
            {
                deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + query.AreaID, " order by deviceid");
            }
            else
            {
                string itemCodeAll       = query.ItemCode;
                var    itemcodeList      = new NTS.WEB.BLL.Itemcode().GetItemcodeList("  and ItemCodeNumber='" + query.ItemCode + "'", " order by itemcodeid")[0];
                var    itemcodeListChild = new NTS.WEB.BLL.Itemcode().GetItemcodeList("  and ParentID=" + itemcodeList.ParentID, " order by itemcodeid");
                itemCodeAll = itemcodeListChild.Aggregate(itemCodeAll, (current, itemcode) => current + ("," + itemcode.ItemcodeID));
                deviceList  = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and ItemCodeID in (" + itemCodeAll + ") and areaid=" + query.AreaID, " order by deviceid");
            }
            sbTree.Append("[");
            for (var device = 0; device < deviceList.Count; device++)
            {
                sbTree.Append("{\"text\": \"" + deviceList[device].DeviceName + "\",\"id\": " + deviceList[device].DeviceID + ",\"classes\": \"equip\"}");
                sbTree.Append(device == deviceList.Count - 1 ? "" : ",");
            }
            sbTree.Append("]");
            return(sbTree.ToString());
        }
コード例 #3
0
ファイル: BaseTree.cs プロジェクト: NickQi/TianheDemo
 public string GetDeviceListByArea(QueryDevice query)
 {
     StringBuilder sbTree = new StringBuilder();
      //  var result = new ResultDevice();
      //  result.DeviceUnitList = new List<DeviceUnit>();
        List<Device> deviceList;
        if(query.ItemCode=="00000")
        {
        deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + query.AreaID, " order by deviceid");
        }
        else
        {
        string itemCodeAll = query.ItemCode;
        var itemcodeList = new NTS.WEB.BLL.Itemcode().GetItemcodeList("  and ItemCodeNumber='" + query.ItemCode + "'", " order by itemcodeid")[0];
        var itemcodeListChild = new NTS.WEB.BLL.Itemcode().GetItemcodeList("  and ParentID=" + itemcodeList.ParentID, " order by itemcodeid");
        itemCodeAll = itemcodeListChild.Aggregate(itemCodeAll, (current, itemcode) => current + ("," + itemcode.ItemcodeID));
        deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and ItemCodeID in (" + itemCodeAll + ") and areaid=" + query.AreaID, " order by deviceid");
        }
        sbTree.Append("[");
        for (var device=0; device< deviceList.Count;device++)
        {
        sbTree.Append("{\"text\": \"" + deviceList[device].DeviceName + "\",\"id\": " + deviceList[device].DeviceID + ",\"classes\": \"equip\"}");
        sbTree.Append(device == deviceList.Count - 1 ? "" : ",");
        }
        sbTree.Append("]");
     return sbTree.ToString();
 }
コード例 #4
0
ファイル: Equipment.cs プロジェクト: NickQi/TianheDemo
 public Hashtable GetKeyHash()
 {
     var res = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList("", "order by deviceid");
     var device = 0;
     device = (res.Count > 0 ? res[0].DeviceID : 0);
     var h= new Hashtable {{"DeviceNum", device}};
     return h;
 }
コード例 #5
0
ファイル: Equipment.cs プロジェクト: NickQi/TianheDemo
        public Hashtable GetKeyHash()
        {
            var res    = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList("", "order by deviceid");
            var device = 0;

            device = (res.Count > 0 ? res[0].DeviceID : 0);
            var h = new Hashtable {
                { "DeviceNum", device }
            };

            return(h);
        }
コード例 #6
0
ファイル: LayerObjects.cs プロジェクト: NickQi/TianheDemo
        public LayerObjects()
        {
            var listObject = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList("", " order by LayerObjectID");

            foreach (var l in listObject)
            {
                // tabel.Add(new Tree() { id = l.LayerObjectID, name = l.LayerObjectName, deepth = l.LayerObjectDeepth, pid = l.LayerObjectParentID });
                tabel.Add(new Tree() { id = l.LayerObjectID, name = l.LayerObjectName, pid = l.LayerObjectParentID });

            }
            BuildLayers(0, 1);
        }
コード例 #7
0
ファイル: LayerObjectBll.cs プロジェクト: NickQi/TianheDemo
 public void GetChildBaseLayerObjects(int parentId)
 {
     var result=
         new NTS.WEB.BLL.BaseLayerObject().GetBaseFuncLayerObjectList(
             string.Format(" and layerobjectparentid={0}", parentId), "");
     if (result.Count <= 0) return;
     foreach (var baseLayerObject in result)
     {
         _tempList.Add(baseLayerObject);
         GetChildBaseLayerObjects(baseLayerObject.LayerObjectID);
     }
 }
コード例 #8
0
ファイル: LayerObjects.cs プロジェクト: NickQi/TianheDemo
        public LayerObjects()
        {
            var listObject = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList("", " order by LayerObjectID");

            foreach (var l in listObject)
            {
                // tabel.Add(new Tree() { id = l.LayerObjectID, name = l.LayerObjectName, deepth = l.LayerObjectDeepth, pid = l.LayerObjectParentID });
                tabel.Add(new Tree()
                {
                    id = l.LayerObjectID, name = l.LayerObjectName, pid = l.LayerObjectParentID
                });
            }
            BuildLayers(0, 1);
        }
コード例 #9
0
        public void GetChildBaseLayerObjects(int parentId)
        {
            var result =
                new NTS.WEB.BLL.BaseLayerObject().GetBaseFuncLayerObjectList(
                    string.Format(" and layerobjectparentid={0}", parentId), "");

            if (result.Count <= 0)
            {
                return;
            }
            foreach (var baseLayerObject in result)
            {
                _tempList.Add(baseLayerObject);
                GetChildBaseLayerObjects(baseLayerObject.LayerObjectID);
            }
        }
コード例 #10
0
ファイル: Charts.cs プロジェクト: NickQi/TianheDemo
        public Dictionary<string, decimal> GetSingleItemCodeByObject22(QueryContrastPeriods query2, int isCoal)
        {
            QueryContrastPeriods query = new QueryContrastPeriods();
            // var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() };
            var eneryDataList = new Dictionary<string, decimal>();
            var model = new BaseQueryModel();
            var objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and layerobjectid={0}", query.ItemCode), " order by LayerObjectID");
            model.IsDevice = 0;
            model.ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>();
            model.ItemCode = query.ItemCode;
            //model.Unit = BaseTool.GetChartUnit(query);
            //model.Starttime = query.StartTime;
            //model.Endtime = query.EndTime;
            foreach (var perTime in query.PeriodLst)
            {
                model.Starttime = perTime.StartTime;
                model.Endtime = perTime.EndTime;
                var resList = _reportBll.GetBaseEneryDataList(model);
                //eneryDataList.Add(d.DatePick, isCoal == 0 ? d.DataValue : d.CoalDataValue);
            }

            // var resList = _reportBll.GetBaseEneryDataList(model);
            //foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString(CultureInfo.InvariantCulture)].Datas))
            //{
            //    if (!eneryDataList.ContainsKey(d.DatePick))
            //    {

            //        eneryDataList.Add(d.DatePick, isCoal == 0 ? d.DataValue : d.CoalDataValue);
            //    }
            //    else
            //    {
            //        eneryDataList[d.DatePick] += isCoal == 0 ? d.DataValue : d.CoalDataValue;
            //    }
            //}

            //foreach (var e in eneryDataList)
            //{
            //    result.DatePick.Add(e.Key);
            //    result.DatePickEnery.Add(e.Value);
            //}
            return eneryDataList;
        }
コード例 #11
0
ファイル: AjaxChart.cs プロジェクト: NickQi/TianheDemo
        public string ExportExcelEnergyAnalyse()
        {
            var    inputValue = _ntsPage.Request.Form["Inputs"];
            var    query      = Newtonsoft.Json.JsonConvert.DeserializeObject <QueryAnalyse>(inputValue);
            string icode      = query.ItemCode;
            EnergyAnalyseQueryType tempQueryType = query.QueryType;

            query.QueryType = EnergyAnalyseQueryType.Default;//总能耗
            ResultEnergyAnalyse resultAll =
                Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IChart>("Chart").GetEnergyAnalyseLineChart(query);
            ResultEnergyAnalyse resultArea   = null;
            ResultEnergyAnalyse resultPerson = null;

            if (query.IsDevice == 0)
            {                                                      //
                query.QueryType = EnergyAnalyseQueryType.UnitArea; //单位面积
                resultArea      = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IChart>("Chart")
                                  .GetEnergyAnalyseLineChart(query);
                query.QueryType = EnergyAnalyseQueryType.UnitPerson;//人均
                resultPerson    = Framework.Common.BaseWcf.CreateChannel <ServiceInterface.IChart>("Chart")
                                  .GetEnergyAnalyseLineChart(query);
            }

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

            if (query.IsDevice == 1)
            {
                var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid");
                itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + deviceList[0].ItemCodeID + "'", " order by ItemcodeID");
                if (itList.Count > 0)
                {
                    unit         = itList[0].Unit;//单个分类分项单位
                    itemCodeName = itList[0].ItemCodeName;
                }
                if (query.ItemCode == "00000")
                {                       //总能耗
                    unit         = "T"; //标准煤单位
                    itemCodeName = "总能耗";
                }
            }
            else
            {
                itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
                if (itList.Count > 0)
                {
                    dept = itList[0].Unit;
                }

                unit         = icode == "00000" ? "T" : dept;
                itemCodeName = itList.Count == 0 ? "总能耗" : itList[0].ItemCodeName;
            }
            //query.QueryType = tempQueryType;
            //switch (query.QueryType)
            //{
            //    case EnergyAnalyseQueryType.Convert2Co2:
            //    case EnergyAnalyseQueryType.Convert2Coal:
            //        unit = "T";//标准煤单位
            //        break;
            //    case EnergyAnalyseQueryType.Convert2Money:
            //        unit = "元";//标准煤单位
            //        break;
            //}
            try
            {
                if (resultAll.OrderLst.Count > 0)
                {
                    DataTable dt = TableView.CreateOrderBaseDataTable();
                    for (var r = 0; r < resultAll.OrderLst.Count; r++)
                    {
                        DataRow dr = dt.NewRow();
                        dr[1] = resultAll.OrderLst[r].Tm;
                        dr[2] = query.ObjectId;
                        dr[3] = resultAll.OrderLst[r].Obj;
                        dr[4] = resultAll.OrderLst[r].Tm;
                        dr[5] = resultAll.OrderLst[r].Tm;
                        dr[6] = itemCodeName;
                        dr[7] = decimal.Round(decimal.Parse(resultAll.OrderLst[r].Val.ToString()), 2).ToString();
                        if (query.IsDevice == 0)
                        {
                            dr[8] = resultArea.OrderLst == null ? "0" : decimal.Round(decimal.Parse(resultArea.OrderLst[r].Val.ToString()), 2).ToString();
                            dr[9] = resultPerson.OrderLst == null ? "0" : decimal.Round(decimal.Parse(resultPerson.OrderLst[r].Val.ToString()), 2).ToString();
                        }


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

                    string templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\能耗分析表.xls";
                    if (query.IsDevice == 1)
                    {
                        templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\能耗分析表_设备.xls";
                    }
                    TemplateParam param = new TemplateParam(resultAll.OrderLst[0].Obj + " " + itemCodeName + " ", new CellParam(0, 0), query.StartTime.ToString("yyyy-MM-dd") + "~" + query.EndTime.ToString("yyyy-MM-dd"), new CellParam(3, 0), false, new CellParam(4, 0));

                    param.DataColumn = new[] { 0, 3, 1, 7, 8, 9 };
                    if (query.IsDevice == 1)
                    {
                        param.DataColumn = new[] { 0, 3, 1, 7 };
                    }
                    param.ItemUnit     = "(单位:" + unit + ")";
                    param.ItemUnitCell = new CellParam(3, 5);

                    param.SortColumn = 0;
                    dt.TableName     = "能耗分析表";

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

                    return("{\"status\":\"success\",\"msg\":\"" + "/temp_file/" + save_path + "\"}");
                }
                else
                {
                    return("{\"status\":\"error\",\"msg\":\"导出失败:当前无任何数据\"}");
                }
            }
            catch (Exception ex)
            {
                return("{\"status\":\"error\",\"msg\":\"导出失败:由于当前无数据或其他原因导致" + ex.Message + "\"}");
            }
        }
コード例 #12
0
ファイル: Charts.cs プロジェクト: NickQi/TianheDemo
        public ResultRealLine DeviceRealChart(RealQuery query)
        {
            var pAction = new ExecuteProcess();
            try
            {
                var result = new ResultRealLine { series = new List<EneryAnalyseSeries>(), Unit = "kwh" };
                //ResultItemCode result = new ResultItemCode();
                //result.Dept = new List<string>();
                //result.Enery = new Dictionary<string, List<decimal>>();
                //result.ObjectName = new List<string>();
                // var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() };
                var eneryDataList = new Dictionary<string, decimal>();
                var model = new BaseQueryModel();
                var objectList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid");
                model.IsDevice = 1;
                model.ObjectList = (from p in objectList select p.DeviceID).ToList<int>();
                model.ItemCode = objectList[0].ItemCodeID;
                model.Unit = ChartUnit.unit_hour;
                if (query.QueryType == EnergyAnalyseQueryType.Default)
                {
                    model.Starttime = Convert.ToDateTime(System.DateTime.Now.ToString("yyyy-MM-dd"));
                    model.Endtime = Convert.ToDateTime(System.DateTime.Now.ToString("yyyy-MM-dd"));
                }
                else if (query.QueryType == EnergyAnalyseQueryType.MonthCompare)
                {
                    model.Starttime = Convert.ToDateTime(System.DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd"));
                    model.Endtime = Convert.ToDateTime(System.DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd"));
                }
                else if (query.QueryType == EnergyAnalyseQueryType.YearCompare)
                {
                    model.Starttime = Convert.ToDateTime(System.DateTime.Now.AddYears(-1).ToString("yyyy-MM-dd"));
                    model.Endtime = Convert.ToDateTime(System.DateTime.Now.AddYears(-1).ToString("yyyy-MM-dd"));
                }
                var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + model.ItemCode + "'", " order by ItemcodeID")[0];
                result.Unit = itemList.Unit;//by added wxy
                var resList = _reportBll.GetBaseEneryDataList(model);
                foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.DeviceID.ToString(CultureInfo.InvariantCulture)].Datas))
                {
                    if (!eneryDataList.ContainsKey(d.DatePick))
                    {
                        eneryDataList.Add(d.DatePick, d.DataValue);
                    }
                    else
                    {
                        eneryDataList[d.DatePick] += d.DataValue;
                    }
                }

                List<decimal> dat = new List<decimal>();
                foreach (var e in eneryDataList)
                {
                    dat.Add(e.Value);

                }
                EneryAnalyseSeries eas = new EneryAnalyseSeries();
                eas.data = dat;

                result.series.Add(eas);

                pAction.Success = true;
                result.ActionInfo = pAction;
                return result;

            }
            catch (Exception ex)
            {
                pAction.Success = false;
                pAction.ExceptionMsg = ex.Message;
                return new ResultRealLine() { ActionInfo = pAction };

            }
        }
コード例 #13
0
ファイル: Charts.cs プロジェクト: NickQi/TianheDemo
        public ResultIndexLineChart IndexElectricityLineChart(DateTime startTime, DateTime endTime)
        {
            var pAction = new ExecuteProcess();
            try
            {
                var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() };
                var eneryDataList = new Dictionary<string, decimal>();
                var model = new BaseQueryModel();
                var objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectParentID={0}", 0), " order by LayerObjectID");
                model.IsDevice = 0;
                model.ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>();
                model.ItemCode = "01000";
                model.Unit = ChartUnit.unit_hour;
                model.Starttime = startTime;
                model.Endtime = endTime;
                var resList = _reportBll.GetBaseEneryDataList(model);
                foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString(CultureInfo.InvariantCulture)].Datas))
                {
                    if (!eneryDataList.ContainsKey(d.DatePick))
                    {
                        eneryDataList.Add(d.DatePick, d.DataValue);
                    }
                    else
                    {
                        eneryDataList[d.DatePick] += d.DataValue;
                    }
                }

                foreach (var e in eneryDataList)
                {
                    result.DatePick.Add(e.Key);
                    result.DatePickEnery.Add(e.Value);
                }
                pAction.Success = true;
                result.ActionInfo = pAction;
                return result;
            }
            catch (Exception ex)
            {
                pAction.Success = false;
                pAction.ExceptionMsg = ex.Message;
                return new ResultIndexLineChart() { ActionInfo = pAction };
            }
        }
コード例 #14
0
ファイル: AjaxChart.cs プロジェクト: NickQi/TianheDemo
        public string ExportExcelEnergyAnalyse()
        {
            var inputValue = _ntsPage.Request.Form["Inputs"];
            var query = Newtonsoft.Json.JsonConvert.DeserializeObject<QueryAnalyse>(inputValue);
            string icode = query.ItemCode;
            EnergyAnalyseQueryType tempQueryType = query.QueryType;

            query.QueryType = EnergyAnalyseQueryType.Default;//总能耗
            ResultEnergyAnalyse resultAll =
                Framework.Common.BaseWcf.CreateChannel<ServiceInterface.IChart>("Chart").GetEnergyAnalyseLineChart(query);
            ResultEnergyAnalyse resultArea = null;
            ResultEnergyAnalyse resultPerson = null;
            if (query.IsDevice == 0)
            {//
                query.QueryType = EnergyAnalyseQueryType.UnitArea;//单位面积
                resultArea = Framework.Common.BaseWcf.CreateChannel<ServiceInterface.IChart>("Chart")
                                     .GetEnergyAnalyseLineChart(query);
                query.QueryType = EnergyAnalyseQueryType.UnitPerson;//人均
                resultPerson = Framework.Common.BaseWcf.CreateChannel<ServiceInterface.IChart>("Chart")
                                     .GetEnergyAnalyseLineChart(query);
            }

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

            if (query.IsDevice == 1)
            {
                var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid");
                itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + deviceList[0].ItemCodeID + "'", " order by ItemcodeID");
                if (itList.Count > 0)
                {
                    unit = itList[0].Unit;//单个分类分项单位
                    itemCodeName = itList[0].ItemCodeName;
                }
                if (query.ItemCode == "00000")
                {//总能耗

                    unit = "T";//标准煤单位
                    itemCodeName = "总能耗";
                }
            }
            else
            {
                itList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
                if (itList.Count > 0)
                {
                    dept = itList[0].Unit;
                }

                unit = icode == "00000" ? "T" : dept;
                itemCodeName = itList.Count == 0 ? "总能耗" : itList[0].ItemCodeName;
            }
            //query.QueryType = tempQueryType;
            //switch (query.QueryType)
            //{
            //    case EnergyAnalyseQueryType.Convert2Co2:
            //    case EnergyAnalyseQueryType.Convert2Coal:
            //        unit = "T";//标准煤单位
            //        break;
            //    case EnergyAnalyseQueryType.Convert2Money:
            //        unit = "元";//标准煤单位
            //        break;
            //}
            try
            {
                if (resultAll.OrderLst.Count > 0)
                {
                    DataTable dt = TableView.CreateOrderBaseDataTable();
                    for (var r = 0; r < resultAll.OrderLst.Count; r++)
                    {

                        DataRow dr = dt.NewRow();
                        dr[1] = resultAll.OrderLst[r].Tm;
                        dr[2] = query.ObjectId;
                        dr[3] = resultAll.OrderLst[r].Obj;
                        dr[4] = resultAll.OrderLst[r].Tm;
                        dr[5] = resultAll.OrderLst[r].Tm;
                        dr[6] = itemCodeName;
                        dr[7] = decimal.Round(decimal.Parse(resultAll.OrderLst[r].Val.ToString()), 2).ToString();
                        if (query.IsDevice == 0)
                        {
                            dr[8] = resultArea.OrderLst == null ? "0" : decimal.Round(decimal.Parse(resultArea.OrderLst[r].Val.ToString()), 2).ToString();
                            dr[9] = resultPerson.OrderLst == null ? "0" : decimal.Round(decimal.Parse(resultPerson.OrderLst[r].Val.ToString()), 2).ToString();
                        }

                        dt.Rows.Add(dr);

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

                    string templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\能耗分析表.xls";
                    if (query.IsDevice == 1)
                    {
                        templatePath = AppDomain.CurrentDomain.BaseDirectory + "template\\能耗分析表_设备.xls";
                    }
                    TemplateParam param = new TemplateParam(resultAll.OrderLst[0].Obj + " " + itemCodeName + " ", new CellParam(0, 0), query.StartTime.ToString("yyyy-MM-dd") + "~" + query.EndTime.ToString("yyyy-MM-dd"), new CellParam(3, 0), false, new CellParam(4, 0));

                    param.DataColumn = new[] { 0, 3, 1, 7, 8, 9 };
                    if (query.IsDevice == 1)
                    {
                        param.DataColumn = new[] { 0, 3, 1, 7 };
                    }
                    param.ItemUnit = "(单位:" + unit + ")";
                    param.ItemUnitCell = new CellParam(3, 5);

                    param.SortColumn = 0;
                    dt.TableName = "能耗分析表";

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

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

            }
            catch (Exception ex)
            {
                return "{\"status\":\"error\",\"msg\":\"导出失败:由于当前无数据或其他原因导致" + ex.Message + "\"}";
            }
        }
コード例 #15
0
ファイル: Charts.cs プロジェクト: NickQi/TianheDemo
        public ResultEnergyAnalyse GetEnergyAnalyseLineChart_OLD(QueryAnalyse query)
        {
            try
            {

                VerifyPersonOrAreaExist(query);
                #region 返回对象定义
                ResultEnergyAnalyse result = new ResultEnergyAnalyse()
                {
                    OrderLst = new List<EnergyOrder>(),
                    series = new List<EneryAnalyseSeries>()

                };
                result.series.Add(new EneryAnalyseSeries() { data = new List<decimal>() });
                #endregion

                List<Model.Itemcode> itemCodeList = new List<Model.Itemcode>();
                if (query.IsDevice == 0)
                {
                    if (query.ItemCode == "00000")
                    {//总能耗
                        itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0 ", " order by ItemcodeID");
                        result.Unit = "T";//标准煤单位
                        result.series[0].name = "总能耗";
                    }
                    else
                    {
                        itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
                        if (itemCodeList.Count > 0)
                        {
                            result.Unit = itemCodeList[0].Unit;//单个分类分项单位
                            result.series[0].name = itemCodeList[0].ItemCodeName;

                            //var itemchildCodeList = new BLL.Itemcode().GetItemcodeList(string.Format(" and ParentID={0} ", itemCodeList[0].ItemcodeID), " order by ItemcodeID");

                            //if (itemchildCodeList.Count > 0)
                            //{
                            //    itemCodeList = itemchildCodeList;
                            //}
                        }

                    }
                }
                else
                {
                    var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid");
                    itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + deviceList[0].ItemCodeID + "'", " order by ItemcodeID");
                    if (itemCodeList.Count > 0)
                    {
                        result.Unit = itemCodeList[0].Unit;//单个分类分项单位
                        result.series[0].name = itemCodeList[0].ItemCodeName;
                    }
                    if (query.ItemCode == "00000")
                    {//总能耗

                        result.Unit = "T";//标准煤单位
                        result.series[0].name = "总能耗";
                    }

                }

                switch (query.QueryType)
                {
                    case EnergyAnalyseQueryType.Convert2Co2:
                    case EnergyAnalyseQueryType.Convert2Coal:
                        result.Unit = "T";//标准煤单位
                        break;
                    case EnergyAnalyseQueryType.Convert2Money:
                        result.Unit = "元";//标准煤单位
                        break;
                }

                DateTime tempStartTime = query.StartTime;
                DateTime tempEndTime = query.EndTime;
                switch (query.QueryType)
                {
                    case EnergyAnalyseQueryType.YearCompare://同比值
                        tempStartTime = tempStartTime.AddYears(-1);
                        tempEndTime = tempEndTime.AddYears(-1);
                        break;
                    case EnergyAnalyseQueryType.MonthCompare://环比值
                        tempStartTime = tempStartTime.AddMonths(-1);
                        tempEndTime = tempEndTime.AddMonths(-1);

                        break;
                }
                Dictionary<string, decimal> tempConvert = new Dictionary<string, decimal>();
                Dictionary<string, decimal> tempConvertHour = new Dictionary<string, decimal>();
                var model = new BaseQueryModel();
                model.IsDevice = query.IsDevice;
                model.ObjectList = new List<int>();

                model.ObjectList = new List<int>() { query.ObjectId };

                //if (model.IsDevice == 0)
                //{//区域
                //    model.ObjectList = new List<int>() { query.ObjectId };
                //}
                //else
                //{
                //    var device = new BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid");
                //    if (device.Count > 0)
                //    {
                //        model.ObjectList = (from p in device select p.DeviceID).ToList<int>();
                //    }
                //}
                //model.Unit = GetUnit(query.StartTime, query.EndTime);
                model.Unit = BaseTool.GetChartUnit(query.particle);
                if (model.Unit == ChartUnit.unit_month)
                {
                    model.Starttime = Convert.ToDateTime(tempStartTime.ToString("yyyy-MM-1"));
                    model.Endtime = Convert.ToDateTime(tempEndTime.ToString("yyyy-MM-1"));
                }
                else
                {
                    model.Starttime = tempStartTime;
                    model.Endtime = tempEndTime;
                }
                int templastmonthdays = 0;
                switch (model.Unit)
                {
                    case ChartUnit.unit_month:
                        for (DateTime i = model.Starttime; i <= model.Endtime; i = i.AddMonths(1))
                        {
                            tempConvert.Add(i.ToString("yyyy-MM-dd"), 0);
                        }
                        break;
                    case ChartUnit.unit_hour:
                        for (DateTime i = model.Starttime; i < model.Endtime.AddDays(1); i = i.AddHours(1))
                        {
                            tempConvert.Add(i.ToString("yyyy-MM-dd HH:00:00"), 0);
                        }
                        break;
                    case ChartUnit.unit_day:
                        if ((DateTime.Now- model.Endtime).Days>0)
                        {
                            for (DateTime i = model.Starttime; i <= model.Endtime; i = i.AddDays(1))
                            {
                                tempConvert.Add(i.ToString(("yyyy-MM-dd")), 0);
                            }
                        }
                        else
                        {
                            for (DateTime i = model.Starttime; i <= model.Endtime.AddDays(-1); i = i.AddDays(1))
                            {
                                tempConvert.Add(i.ToString(("yyyy-MM-dd")), 0);
                            }
                            for (DateTime i = model.Endtime; i <= DateTime.Now; i = i.AddHours(1))
                            {
                                tempConvertHour.Add(i.ToString("yyyy-MM-dd HH:00:00"), 0);
                            }

                        }

                        templastmonthdays = (model.Endtime - model.Starttime).Days;
                        break;
                }
                string objName = "";
                foreach (var item in itemCodeList)
                {
                    model.ItemCode = item.ItemCodeNumber;

                    BaseResult resList = _reportBll.GetBaseEneryDataList(model, query.ObjType == AreaType.Liquid ? true : false);

                    foreach (var r in resList.BaseLayerObjectResults)
                    {
                        if (model.IsDevice == 0)
                        {
                            objName = r.Value.baseLayerObject.LayerObjectName;//取区域名称
                        }
                        else
                        {
                            objName = r.Value.device.DeviceName;
                        }
                        foreach (var rr in r.Value.Datas)
                        {
                            if (query.ItemCode == "00000")
                            {
                                switch (query.QueryType)
                                {
                                    case EnergyAnalyseQueryType.Default://默认
                                    case EnergyAnalyseQueryType.YearCompare://默认
                                    case EnergyAnalyseQueryType.MonthCompare://默认
                                        tempConvert[rr.DatePick] += rr.CoalDataValue;
                                        break;
                                    case EnergyAnalyseQueryType.UnitArea://单位面积
                                        tempConvert[rr.DatePick] += rr.CoalDataValue / decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString());

                                        break;
                                    case EnergyAnalyseQueryType.UnitPerson://人均
                                        tempConvert[rr.DatePick] += rr.CoalDataValue / decimal.Parse(r.Value.baseLayerObject.PersonNum.ToString());
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Coal://
                                        tempConvert[rr.DatePick] += rr.CoalDataValue;
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Co2://
                                        tempConvert[rr.DatePick] += rr.Co2DataValue;
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Money://
                                        tempConvert[rr.DatePick] += rr.MoneyDataValue;
                                        break;
                                }
                            }
                            else
                            {
                                switch (query.QueryType)
                                {
                                    case EnergyAnalyseQueryType.Default://默认
                                    case EnergyAnalyseQueryType.YearCompare://默认
                                    case EnergyAnalyseQueryType.MonthCompare://默认
                                        tempConvert[rr.DatePick] += rr.DataValue;
                                        break;
                                    case EnergyAnalyseQueryType.UnitArea://单位面积
                                        tempConvert[rr.DatePick] += rr.DataValue / decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString());

                                        break;
                                    case EnergyAnalyseQueryType.UnitPerson://人均
                                        tempConvert[rr.DatePick] += rr.DataValue / decimal.Parse(r.Value.baseLayerObject.PersonNum.ToString());
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Coal://
                                        tempConvert[rr.DatePick] += rr.CoalDataValue;
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Co2://
                                        tempConvert[rr.DatePick] += rr.Co2DataValue;
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Money://
                                        tempConvert[rr.DatePick] += rr.MoneyDataValue;
                                        break;
                                }

                            }
                        }
                    }
                }
                int order = 1;
                foreach (var item in tempConvert)
                {

                    var time = item.Key;
                    if (model.Unit == ChartUnit.unit_month)
                    {
                        time = Convert.ToDateTime(time).ToString("yyyy-MM");
                    }

                    decimal value = decimal.Round(item.Value, 2);
                    result.series[0].data.Add(value);
                    result.OrderLst.Add(new EnergyOrder()
                    {
                        Order = order,
                        Tm = time,
                        Obj = objName,
                        Val = value,
                        EneType = result.series[0].name
                        // EneType =itemCodeList.Count > 1 ? "总能耗" : itemCodeList[0].ItemCodeName

                    });
                    order++;
                }
                if (query.QueryType == EnergyAnalyseQueryType.MonthCompare)
                {
                    int tempcurrentdays = (query.EndTime - query.StartTime).Days;
                    //int index = (28 - query.StartTime.Day) < 0 ? 0 : (28 - query.StartTime.Day);

                    if (model.Unit == ChartUnit.unit_day)
                    {
                        if (tempcurrentdays > templastmonthdays)
                        {//当前时间范围大于上月环比范围
                            int index = System.DateTime.DaysInMonth(query.StartTime.AddMonths(-1).Year, query.StartTime.AddMonths(-1).Month) - query.StartTime.Day;
                            if (index < 0)
                            {
                                index = 0;
                            }
                            for (int i = templastmonthdays; i < tempcurrentdays; i++)
                            {
                                result.series[0].data.Insert(index, result.series[0].data[index]);
                            }

                        }
                        else
                        {
                            if (tempcurrentdays < templastmonthdays)
                            {
                                int index = System.DateTime.DaysInMonth(query.StartTime.AddMonths(-1).Year, query.StartTime.AddMonths(-1).Month) - query.StartTime.Day;
                                for (int i = tempcurrentdays; i < templastmonthdays; i++)
                                {
                                    result.series[0].data.RemoveAt(index);
                                    index--;
                                }
                            }
                        }

                        //for (int i = 0; i < ((query.EndTime - query.StartTime).Days - tempdaycount); i++)
                        //{
                        //    result.series[0].data.Insert(index, result.series[0].data[index]);

                        //}

                    }
                }

                return result;
            }
            catch (Exception ee)
            {
                throw ee;
            }
        }
コード例 #16
0
ファイル: Charts.cs プロジェクト: NickQi/TianheDemo
        public ResultItemCode RealChart(RealQuery query)
        {
            ResultItemCode result = new ResultItemCode();
            result.Dept = new List<string>();
            result.Enery = new Dictionary<string, List<decimal>>();
            result.ObjectName = new List<string>();
            // var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() };
            var eneryDataList = new Dictionary<string, decimal>();
            var model = new BaseQueryModel();
            var objectList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid");
            model.IsDevice = 1;
            model.ObjectList = (from p in objectList select p.DeviceID).ToList<int>();
            model.ItemCode = objectList[0].ItemCodeID;
            model.Unit = ChartUnit.unit_hour;
            model.Starttime = Convert.ToDateTime(System.DateTime.Now.ToString("yyyy-MM-dd"));
            model.Endtime = Convert.ToDateTime(System.DateTime.Now.ToString("yyyy-MM-dd"));
            var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + model.ItemCode + "'", " order by ItemcodeID")[0];

            var resList = _reportBll.GetBaseEneryDataList(model);
            foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.DeviceID.ToString(CultureInfo.InvariantCulture)].Datas))
            {
                if (!eneryDataList.ContainsKey(d.DatePick))
                {
                    eneryDataList.Add(d.DatePick, d.DataValue);
                }
                else
                {
                    eneryDataList[d.DatePick] += d.DataValue;
                }
            }
            result.Enery.Add(objectList[0].DeviceID.ToString(CultureInfo.InvariantCulture), eneryDataList.Values.ToList());
            foreach (var e in eneryDataList)
            {
                result.Dept.Add(itemList.Unit);
                result.ObjectName.Add(e.Key);

            }
            return result;
        }
コード例 #17
0
ファイル: BaseTree.cs プロジェクト: NickQi/TianheDemo
        private void GetDeviceTreeJsonByList(int pId)
        {
            var deepth     = 0;
            var objectlist = dal.GetBaseLayerObjectList("", " order by  LayerObjectID");

            //if (objectlist.Count > 0)
            //{
            //    deepth = objectlist[0].LayerObjectDeepth;
            //}
            deviceresult.Append(devicesb.ToString());
            devicesb.Clear();
            if (tabel.Count > 0)
            {
                devicesb.Append("[");

                var rows = (from l in tabel where l.pid.Equals(pId) select l).ToList <Tree>();
                if (rows.Count > 0)
                {
                    foreach (var row in rows)
                    {
                        //devicesb.Append("{\"id\":" + row.id + ",\"text\":\"" + row.name + "\",\"expanded\":false,\"classes\":\"" + GetClass(row.deepth) + "\"");
                        devicesb.Append("{\"id\":" + row.id + ",\"text\":\"" + row.name + "\",\"expanded\":false,\"classes\":\"" + "build" + "\"");
                        var childrows = (from l in tabel where l.pid.Equals(row.id) select l).ToList <Tree>();
                        if (childrows.Count > 0)
                        {
                            var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid");
                            if (deviceList.Count > 0 && row.id == deepth)
                            {
                                devicesb.Append(",\"hasChildren\":true");
                            }
                            else
                            {
                                devicesb.Append(",\"hasChildren\":false");
                            }
                            devicesb.Append(",\"children\":");
                            GetDeviceTreeJsonByList(row.id);
                            deviceresult.Append(devicesb.ToString());
                            devicesb.Clear();
                        }
                        else
                        {
                            var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid");
                            if (deviceList.Count > 0 && row.id == deepth)
                            {
                                devicesb.Append(",\"hasChildren\":true");
                            }
                            else
                            {
                                devicesb.Append(",\"hasChildren\":false");
                            }
                            devicesb.Append(",\"children\":");
                            GetDeviceTreeJsonByList(row.id);
                            deviceresult.Append(devicesb.ToString());
                            devicesb.Clear();
                        }
                        deviceresult.Append(devicesb.ToString());
                        devicesb.Clear();
                        devicesb.Append("},");
                    }
                    devicesb = devicesb.Remove(devicesb.Length - 1, 1);
                }
                devicesb.Append("]");
                deviceresult.Append(devicesb.ToString());
                devicesb.Clear();
            }
        }
コード例 #18
0
        /// <summary>
        /// 获得人均能耗值
        /// </summary>
        /// <param name="query"></param>
        /// <param name="itemcode"></param>
        /// <param name="time"></param>
        /// <param name="isCoal"></param>
        /// <returns></returns>
        public Dictionary <string, decimal> GetPersonNumSingleItemCodeByObject(QueryContrastPeriods query, string itemcode, TimePeriod time, int isCoal)
        {
            // var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() };
            var eneryDataList = new Dictionary <string, decimal>();
            var model         = new BaseQueryModel();

            List <Model.BaseLayerObject> objectList = new List <Model.BaseLayerObject>();

            if (query.ObjType == AreaType.Area)
            {
                objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and layerobjectid={0}", query.AreaId), " order by LayerObjectID");
            }
            else
            {
                objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseFuncLayerObjectList(string.Format(" and layerobjectid={0}", query.AreaId), " order by LayerObjectID");
            }
            model.IsDevice   = 0;
            model.ObjectList = (from p in objectList select p.LayerObjectID).ToList <int>();
            model.ItemCode   = itemcode;
            model.Unit       = BaseTool.GetChartUnit(query.particle);
            model.Starttime  = time.StartTime;
            model.Endtime    = time.EndTime;
            model.areaType   = query.ObjType;

            var resList = _energCon.GetBaseEneryDataListNew(model);

            for (int iCount = 0; iCount < query.PeriodLst.Count; iCount++)
            {
                TimePeriod tpTime = query.PeriodLst[iCount];
            }
            foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString(CultureInfo.InvariantCulture)].Datas))
            {
                if (!eneryDataList.ContainsKey(d.DatePick))
                {
                    switch (query.QueryType)
                    {
                    case QueryOrderType.CarbanOut:
                        eneryDataList.Add(d.DatePick, d.Co2DataValue);
                        break;

                    case QueryOrderType.ConvCoal:
                        eneryDataList.Add(d.DatePick, d.CoalDataValue);
                        break;

                    case QueryOrderType.Renminbi:
                        eneryDataList.Add(d.DatePick, d.MoneyDataValue);
                        break;

                    default:
                        eneryDataList.Add(d.DatePick, d.DataValue);
                        break;
                    }
                }
                else
                {
                    eneryDataList[d.DatePick] += isCoal == 0 ? d.DataValue : d.CoalDataValue;
                    switch (query.QueryType)
                    {
                    case QueryOrderType.CarbanOut:
                        eneryDataList[d.DatePick] += d.Co2DataValue;
                        break;

                    case QueryOrderType.ConvCoal:
                        eneryDataList[d.DatePick] += d.CoalDataValue;
                        break;

                    case QueryOrderType.Renminbi:
                        eneryDataList[d.DatePick] += d.MoneyDataValue;
                        break;

                    default:
                        eneryDataList[d.DatePick] += d.DataValue;
                        break;
                    }
                }
            }

            //foreach (var e in eneryDataList)
            //{
            //    result.DatePick.Add(e.Key);
            //    result.DatePickEnery.Add(e.Value);
            //}
            return(eneryDataList);
        }
コード例 #19
0
ファイル: IndexEnery.cs プロジェクト: NickQi/TianheDemo
        public IndexShopOrder GetIndexShopOrder(DateTime startTime, DateTime endTime)
        {
            var shopOrder = new IndexShopOrder
                {
                    TotalEneryOrderList = new List<EneryOrder>(),
                    AreaEneryOrderList = new List<EneryOrder>()
                };
            var shopOrderLast = new IndexShopOrder
            {
                TotalEneryOrderList = new List<EneryOrder>(),
                AreaEneryOrderList = new List<EneryOrder>()
            };

            Dictionary<int, string> cacheLayer = NTS.WEB.Common.CacheHelper.GetCache("object-Layer") as Dictionary<int, string>;
            if (cacheLayer == null)
            {
                var res = new LayerObjects().GetObjectLayers();
                NTS.WEB.Common.CacheHelper.SetCache("object-Layer", res);
                cacheLayer = res;
            }

            var deepth = cacheLayer.ContainsKey(int.Parse(ConfigurationManager.AppSettings["ShopLevel"])) ?
                int.Parse(ConfigurationManager.AppSettings["ShopLevel"]) : cacheLayer.Count;
            shopOrderLast.ShopLevel = GetShopLevel(deepth);

            //层级对象数据
            var listObject = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList
                (string.Format(" and layerobjectid in ({0})", cacheLayer[deepth]), " order by LayerObjectID");

            //拼接表名
            string tbName = "TS_COUNT_AREA_MONTH_" + startTime.Year.ToString();
            var monthDataList = new NTS.WEB.BLL.MonthDataObject().GetMonthDataObjectList(tbName, startTime.ToShortDateString());
            //分类分项
            var ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID");
            //总能耗
            //List<EneryOrder> lstTotal = (from o in listObject
            //                             join b in monthDataList
            //                             on o.LayerObjectID equals int.Parse(b.CNAME)
            //                             select new EneryOrder
            //                             {
            //                                 BuildingName = o.LayerObjectName,
            //                                 EneryValue = b.COUNTVALUE * ItemList.Find(p => p.ItemCodeNumber == b.ITEMCODE).ItemCoal

            //                             }).ToList();
            List<EneryOrder> lstTotal = (from o in listObject
                                         join b in monthDataList
                                         on o.LayerObjectID equals int.Parse(b.CNAME)
                                         select new EneryOrder
                                         {
                                             BuildingName = o.LayerObjectName,
                                             // EneryValue=0
                                             EneryValue = b.COUNTVALUE * Convert.ToDouble(ItemList.Find(p => p.ItemCodeNumber.Substring(0, 2) == b.ITEMCODE.Substring(0, 2)).ItemCoal.ToString())

                                         }).ToList();
            ////单位面积能耗
            List<EneryOrder> lstArea = (from o in listObject
                                        join b in monthDataList
                                        on o.LayerObjectID equals int.Parse(b.CNAME)
                                        select new EneryOrder
                                        {
                                            BuildingName = o.LayerObjectName,
                                            //EneryValue=0
                                            EneryValue = (b.COUNTVALUE * Convert.ToDouble(ItemList.Find(p => p.ItemCodeNumber.Substring(0, 2) == b.ITEMCODE.Substring(0, 2)).ItemCoal.ToString())) / o.AreaNum

                                        }).ToList();
            List<EneryOrder> lstTtl = new List<EneryOrder>();
            List<EneryOrder> lstAr = new List<EneryOrder>();

            //按对象名称分组
            var lstGpTtl = from item in lstTotal
                           group item by item.BuildingName;

            string nm = string.Empty;
            double sum = 0;
            foreach (var group in lstGpTtl)
            {
                nm = string.Empty;
                sum = 0;
                foreach (var v in group)
                {

                    nm = v.BuildingName;
                    sum += v.EneryValue;
                }
                lstTtl.Add(new EneryOrder { BuildingName = nm, EneryValue = sum });
            }

            var lstGpAr = from item in lstArea
                          group item by item.BuildingName;

            foreach (var group in lstGpAr)
            {
                nm = string.Empty;
                sum = 0;
                foreach (var v in group)
                {

                    nm = v.BuildingName;
                    sum += v.EneryValue;
                }
                lstAr.Add(new EneryOrder { BuildingName = nm, EneryValue = sum });
            }

            // var objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectDeepth={0}", deepth), " order by LayerObjectID");

            //List<string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList<string>();
            //var model = new BaseQueryModel();
            //model.IsDevice = 0;
            //model.ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>();
            //Dictionary<string, decimal> tempConvert = new Dictionary<string, decimal>();
            //Dictionary<string, decimal> tempAreaConvert = new Dictionary<string, decimal>();
            //decimal[] tempConvert = new decimal[objectList.Count];
            //decimal[] tempAreaConvert = new decimal[objectList.Count];

            //foreach (var item in ItemCodeStr)
            //{
            //    model.ItemCode = item;
            //    model.Unit = ChartUnit.unit_month;
            //    model.Starttime = startTime;
            //    model.Endtime = endTime;
            //    var resList = reportBll.GetBaseEneryDataList(model);
            //    const int order = 1;
            //    foreach ( var r in resList.BaseLayerObjectResults)
            //    {
            //        if(tempConvert.ContainsKey(r.Value.baseLayerObject.LayerObjectName))
            //        {
            //            tempConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());
            //            tempAreaConvert[r.Value.baseLayerObject.LayerObjectName] += decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()) /
            //                              decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString());
            //        }
            //        else
            //        {
            //            tempConvert.Add(r.Value.baseLayerObject.LayerObjectName, decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()));
            //            tempAreaConvert.Add(r.Value.baseLayerObject.LayerObjectName, decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()) /
            //                               decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString()));
            //        }
            //        shopOrder.TotalEneryOrderList.Add(new EneryOrder()
            //            {
            //                BuildingName = r.Value.baseLayerObject.LayerObjectName,
            //EneryValue = double.Parse(tempConvert[r.Value.baseLayerObject.LayerObjectName].ToString("f2")),
            //                OrderNum = order
            //            });

            //        shopOrder.AreaEneryOrderList.Add(new EneryOrder()
            //        {
            //            BuildingName = r.Value.baseLayerObject.LayerObjectName,
            //            EneryValue = double.Parse(tempAreaConvert[r.Value.baseLayerObject.LayerObjectName].ToString("f2")),
            //            OrderNum = order
            //        });
            //    }
            //}

            //var res1 = from p in shopOrder.TotalEneryOrderList group p by p.BuildingName into g select new { g.Key, BuildingName = g.Max(p => p.BuildingName), OrderNum = g.Max(p => p.OrderNum), EneryValue = g.Max(p => p.EneryValue) };
            //var res2 = from p in shopOrder.AreaEneryOrderList group p by p.BuildingName into g select new { g.Key, BuildingName = g.Max(p => p.BuildingName), OrderNum = g.Max(p => p.OrderNum), EneryValue = g.Max(p => p.EneryValue) };

            foreach (var c in lstTtl)
            {
                shopOrderLast.TotalEneryOrderList.Add(new EneryOrder
                {
                    BuildingName = c.BuildingName,
                    EneryValue = double.Parse(c.EneryValue.ToString("f2")),
                    OrderNum = c.OrderNum
                });
            }

            foreach (var c in lstAr)
            {
                shopOrderLast.AreaEneryOrderList.Add(new EneryOrder
                {
                    BuildingName = c.BuildingName,
                    EneryValue = double.Parse(c.EneryValue.ToString("f2")),
                    OrderNum = c.OrderNum
                });
            }
            return shopOrderLast;
        }
コード例 #20
0
ファイル: BaseTree.cs プロジェクト: NickQi/TianheDemo
 public string GetDeviceListByArea(QueryDevice query)
 {
     StringBuilder sbTree = new StringBuilder();
     //  var result = new ResultDevice();
     //  result.DeviceUnitList = new List<DeviceUnit>();
     List<Device> deviceList;
     if (query.ItemCode == "00000" || string.IsNullOrEmpty(query.ItemCode))
     {
         deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + query.AreaID, " order by deviceid");
     }
     else
     {
         string itemCodeAll = query.ItemCode;
         string tempCode = string.Empty;
         var itemcodeList = new NTS.WEB.BLL.Itemcode().GetItemcodeList("  and ItemCodeNumber='" + query.ItemCode + "'", " order by itemcodeid")[0];
         var itemcodeListChild = new NTS.WEB.BLL.Itemcode().GetItemcodeList("  and ParentID=" + itemcodeList.ItemcodeID, " order by itemcodeid");
         foreach (Model.Itemcode itemcode in itemcodeListChild)
             tempCode += ",'" + itemcode.ItemCodeNumber + "'";
         itemCodeAll = tempCode.Length > 0 ? tempCode.Substring(1) : "'" + itemCodeAll + "'";
         deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and ItemCodeID in (" + itemCodeAll + ") and areaid=" + query.AreaID, " order by deviceid");
     }
     sbTree.Append("[");
     for (var device = 0; device < deviceList.Count; device++)
     {
         sbTree.Append("{\"text\": \"" + deviceList[device].DeviceName + "\",\"id\": " + deviceList[device].DeviceID + ",\"classes\": \"equip\"}");
         sbTree.Append(device == deviceList.Count - 1 ? "" : ",");
     }
     sbTree.Append("]");
     return sbTree.ToString();
 }
コード例 #21
0
ファイル: IndexEnery.cs プロジェクト: NickQi/TianheDemo
        public IndexLimit GetIndexLimit(DateTime startTime, DateTime endTime)
        {
            var eneryDataList = new Dictionary<string, decimal>();
            var indexLimit = new IndexLimit()
                {
                    ElectricityHigh = 0,
                    ElectricityHighTime = "-",
                    ElectricityLow = 0,
                    ElectricityLowTime = "-"
                };
            var model = new BaseQueryModel();
            var objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and LayerObjectParentID={0}", 0), " order by LayerObjectID");
            model.IsDevice = 0;
            model.ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>();
            model.ItemCode = "01000";
            model.Unit = ChartUnit.unit_hour;
            model.Starttime = startTime;
            model.Endtime = endTime;
            var resList = reportBll.GetBaseEneryDataList(model);
            foreach (var o in objectList)
            {
                decimal countValue = 0;
                foreach (var d in resList.BaseLayerObjectResults[o.LayerObjectID.ToString()].Datas)
                {
                    // countValue += d.DataValue;
                    if (!eneryDataList.ContainsKey(d.DatePick))
                    {
                        eneryDataList.Add(d.DatePick, d.DataValue);
                    }
                    else
                    {
                        eneryDataList[d.DatePick] += d.DataValue;
                    }
                }
            }

            var limitTemp = eneryDataList.Select(e => new TempList() { DatePick = e.Key, DataValue = e.Value }).ToList();
            limitTemp = (from l in limitTemp orderby l.DataValue select l).ToList();
            if (limitTemp.Count > 0)
            {
                indexLimit.ElectricityLow = limitTemp[0].DataValue;
                indexLimit.ElectricityLowTime = Convert.ToDateTime(limitTemp[0].DatePick).ToString("HH:mm");
                indexLimit.ElectricityHigh = limitTemp[limitTemp.Count - 1].DataValue;
                indexLimit.ElectricityHighTime = Convert.ToDateTime(limitTemp[limitTemp.Count - 1].DatePick).ToString("HH:mm");
            }
            return indexLimit;
        }
コード例 #22
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
        public ResultReal GetRealTime(NTS.WEB.DataContact.RealQuery query)
        {
            ResultReal result = new ResultReal();

            var objectList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid");
            var itemList   = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + objectList[0].ItemCodeID + "'", " order by ItemcodeID")[0];

            result.Info = new DeviceInfo();
            result.Data = new RealData();
            result.Info.Affiliations = objectList[0].Organization;
            result.Info.DevType      = objectList[0].DeviceType.ToString(CultureInfo.InvariantCulture);
            result.Info.Category     = (itemList.ItemCodeNumber == "01000" || itemList.ItemCodeNumber == "01A00" ||
                                        itemList.ItemCodeNumber == "01B00" || itemList.ItemCodeNumber == "01C00" ||
                                        itemList.ItemCodeNumber == "01D00")
                                     ? "电表"
                                     : itemList.ItemCodeName + "表";
            result.Info.Nature   = objectList[0].DEVMODE;
            result.Info.Number   = objectList[0].DeviceNumber;
            result.Info.Status   = objectList[0].Status;
            result.Info.Location = objectList[0].Location;
            result.Info.Rating   = objectList[0].Rating.ToString();
            if (query.IsDetail == 1)
            {
                for (int i = 1; i < 4; i++)
                {
                    BaseListModel model = new BaseListModel();
                    model.Page       = 1;
                    model.PageSize   = 10000;
                    model.ObjectId   = objectList[0].DeviceID;
                    model.CategoryId = i;
                    DataTable dt = new Real().GetRealTimeData(model);
                    if (dt.Rows.Count > 0)
                    {
                        if (i == 1)
                        {
                            result.Data.Pulse = new List <dataUnit>();
                            for (int j = 0; j < dt.Rows.Count; j++)
                            {
                                result.Data.Pulse.Add(new dataUnit()
                                {
                                    Id       = j + 1,
                                    DataName = dt.Rows[j]["DataPoint_Name"].ToString(),
                                    Unit     = itemList.Unit,
                                    Value    = decimal.Parse(dt.Rows[j]["Result"].ToString())
                                });
                            }
                        }
                        else if (i == 2)
                        {
                            result.Data.Analog = new List <dataUnit>();
                            for (int j = 0; j < dt.Rows.Count; j++)
                            {
                                result.Data.Analog.Add(new dataUnit()
                                {
                                    Id       = j + 1,
                                    DataName = dt.Rows[j]["DataPoint_Name"].ToString(),
                                    Unit     = itemList.Unit,
                                    Value    = decimal.Parse(dt.Rows[j]["Result"].ToString())
                                });
                            }
                        }
                        else
                        {
                            result.Data.Switch = new List <dataUnit>();
                            for (int j = 0; j < dt.Rows.Count; j++)
                            {
                                result.Data.Switch.Add(new dataUnit()
                                {
                                    Id       = j + 1,
                                    DataName = dt.Rows[j]["DataPoint_Name"].ToString(),
                                    Unit     = itemList.Unit,
                                    Value    = decimal.Parse(dt.Rows[j]["Result"].ToString())
                                });
                            }
                        }
                    }
                }
            }

            //result.Data.Analog = new List<dataUnit>();
            //result.Data.Analog.Add(new dataUnit() { Id = 1, DataName = "29189H92-00", Unit = "kwh", Value = 900.88m });
            //result.Data.Pulse = new List<dataUnit>();
            //result.Data.Pulse.Add(new dataUnit() { Id = 1, DataName = "29189H92-10", Unit = "kwh", Value = 400.88m });
            //result.Data.Switch = new List<dataUnit>();
            //result.Data.Switch.Add(new dataUnit() { Id = 1, DataName = "29189H92-20", Unit = "kwh", Value = 200.88m });
            return(result);
        }
コード例 #23
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
        public ResultReal GetRealTime(NTS.WEB.DataContact.RealQuery query)
        {
            ResultReal result = new ResultReal();

            var objectList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid");
            var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + objectList[0].ItemCodeID + "'", " order by ItemcodeID")[0];

            result.Info = new DeviceInfo();
            result.Data = new RealData();
            result.Info.Affiliations = objectList[0].Organization;
            result.Info.DevType = objectList[0].DeviceType.ToString(CultureInfo.InvariantCulture);
            result.Info.Category = (itemList.ItemCodeNumber == "01000" || itemList.ItemCodeNumber == "01A00" ||
                                  itemList.ItemCodeNumber == "01B00" || itemList.ItemCodeNumber == "01C00" ||
                                  itemList.ItemCodeNumber == "01D00")
                                     ? "电表"
                                     : itemList.ItemCodeName + "表";
            result.Info.Nature = objectList[0].DEVMODE;
            result.Info.Number = objectList[0].DeviceNumber;
            result.Info.Status = objectList[0].Status;
            result.Info.Location = objectList[0].Location;
            result.Info.Rating = objectList[0].Rating.ToString();
            if (query.IsDetail == 1)
            {
                for (int i = 1; i < 4; i++)
                {
                    BaseListModel model = new BaseListModel();
                    model.Page = 1;
                    model.PageSize = 10000;
                    model.ObjectId = objectList[0].DeviceID;
                    model.CategoryId = i;
                    DataTable dt = new Real().GetRealTimeData(model);
                    if (dt.Rows.Count > 0)
                    {

                        if (i == 1)
                        {
                            result.Data.Pulse = new List<dataUnit>();
                            for (int j = 0; j < dt.Rows.Count; j++)
                            {
                                result.Data.Pulse.Add(new dataUnit()
                                    {
                                        Id = j + 1,
                                        DataName = dt.Rows[j]["DataPoint_Name"].ToString(),
                                        Unit = itemList.Unit,
                                        Value = decimal.Parse(dt.Rows[j]["Result"].ToString())
                                    });
                            }
                        }
                        else if (i == 2)
                        {
                            result.Data.Analog = new List<dataUnit>();
                            for (int j = 0; j < dt.Rows.Count; j++)
                            {

                                result.Data.Analog.Add(new dataUnit()
                                    {
                                        Id = j + 1,
                                        DataName = dt.Rows[j]["DataPoint_Name"].ToString(),
                                        Unit = itemList.Unit,
                                        Value = decimal.Parse(dt.Rows[j]["Result"].ToString())
                                    });
                            }
                        }
                        else
                        {
                            result.Data.Switch = new List<dataUnit>();
                            for (int j = 0; j < dt.Rows.Count; j++)
                            {
                                result.Data.Switch.Add(new dataUnit()
                                    {
                                        Id = j + 1,
                                        DataName = dt.Rows[j]["DataPoint_Name"].ToString(),
                                        Unit = itemList.Unit,
                                        Value = decimal.Parse(dt.Rows[j]["Result"].ToString())
                                    });
                            }
                        }
                    }
                }
            }

            //result.Data.Analog = new List<dataUnit>();
            //result.Data.Analog.Add(new dataUnit() { Id = 1, DataName = "29189H92-00", Unit = "kwh", Value = 900.88m });
            //result.Data.Pulse = new List<dataUnit>();
            //result.Data.Pulse.Add(new dataUnit() { Id = 1, DataName = "29189H92-10", Unit = "kwh", Value = 400.88m });
            //result.Data.Switch = new List<dataUnit>();
            //result.Data.Switch.Add(new dataUnit() { Id = 1, DataName = "29189H92-20", Unit = "kwh", Value = 200.88m });
            return result;
        }
コード例 #24
0
ファイル: Charts.cs プロジェクト: NickQi/TianheDemo
        public ResultDevice GetDeviceList(QueryDevice2 query)
        {
            var pAction = new ExecuteProcess();
            try
            {
                StringBuilder sbTree = new StringBuilder();

                List<Device> deviceList;
                if (query.ItemCode == "00000")
                {
                    if (query.ObjType == AreaType.Area)
                    {
                        deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + query.ObjectId, " order by deviceid");
                    }
                    else
                    {
                        deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid2=" + query.ObjectId, " order by deviceid");

                    }
                }
                else
                {
                    string itemCodeAll = query.ItemCode;
                    Itemcode objItem = new Itemcode();
                    var itemcodeList = objItem.GetItemcodeList("  and ItemCodeNumber='" + query.ItemCode + "'", " order by itemcodeid")[0];
                    var itemcodeListChild = objItem.GetItemcodeList("  and ParentID=" + itemcodeList.ItemcodeID, " order by itemcodeid");
                    itemCodeAll = itemcodeListChild.Aggregate("'" + itemCodeAll + "'", (current, itemcode) => current + ("," + "'" + itemcode.ItemCodeNumber + "'"));
                    if (query.ObjType == AreaType.Area)
                    {
                        deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and ItemCodeID in (" + itemCodeAll + ") and areaid=" + query.ObjectId, " order by deviceid");
                    }
                    else
                    {
                        deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and ItemCodeID in (" + itemCodeAll + ") and areaid2=" + query.ObjectId, " order by deviceid");

                    }
                }
                //sbTree.Append("[");
                //for (var device = 0; device < deviceList.Count; device++)
                //{
                //    sbTree.Append("{\"text\": \"" + deviceList[device].DeviceName + "\",\"id\": " + deviceList[device].DeviceID + ",\"classes\": \"equip\"}");
                //    sbTree.Append(device == deviceList.Count - 1 ? "" : ",");
                //}
                //sbTree.Append("]");

                List<DeviceUnit> lstDvc = new List<DeviceUnit>();

                foreach (var device in deviceList)
                {
                    DeviceUnit du = new DeviceUnit();
                    du.DeviceID = device.DeviceID;
                    du.DeviceName = device.DeviceName;
                    lstDvc.Add(du);
                }

                ResultDevice result = new ResultDevice();
                result.DeviceUnitList = lstDvc;
                pAction.Success = true;
                result.ActionInfo = pAction;
                return result;
            }
            catch (Exception ex)
            {
                pAction.Success = false;
                pAction.ExceptionMsg = ex.Message;
                return new ResultDevice() { ActionInfo = pAction };
            }
        }
コード例 #25
0
ファイル: BaseTree.cs プロジェクト: NickQi/TianheDemo
        private void GetDeviceTreeJsonByList(int pId)
        {
            var deepth = 0;
            var objectlist = dal.GetBaseLayerObjectList("", " order by  LayerObjectID");
            //if (objectlist.Count > 0)
            //{
            //    deepth = objectlist[0].LayerObjectDeepth;
            //}
            deviceresult.Append(devicesb.ToString());
            devicesb.Clear();
            if (tabel.Count > 0)
            {
                devicesb.Append("[");

                var rows = (from l in tabel where l.pid.Equals(pId) select l).ToList<Tree>();
                if (rows.Count > 0)
                {
                    foreach (var row in rows)
                    {
                        //devicesb.Append("{\"id\":" + row.id + ",\"text\":\"" + row.name + "\",\"expanded\":false,\"classes\":\"" + GetClass(row.deepth) + "\"");
                        devicesb.Append("{\"id\":" + row.id + ",\"text\":\"" + row.name + "\",\"expanded\":false,\"classes\":\"" + "build" + "\"");
                        var childrows = (from l in tabel where l.pid.Equals(row.id) select l).ToList<Tree>();
                        if (childrows.Count > 0)
                        {
                            var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid");
                            if (deviceList.Count > 0 && row.id == deepth)
                            {
                                devicesb.Append(",\"hasChildren\":true");
                            }
                            else
                            {
                                devicesb.Append(",\"hasChildren\":false");
                            }
                            devicesb.Append(",\"children\":");
                            GetDeviceTreeJsonByList(row.id);
                            deviceresult.Append(devicesb.ToString());
                            devicesb.Clear();
                        }else
                        {
                            var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid");
                            if (deviceList.Count > 0 && row.id == deepth)
                            {
                                devicesb.Append(",\"hasChildren\":true");
                            }
                            else
                            {
                                devicesb.Append(",\"hasChildren\":false");
                            }
                            devicesb.Append(",\"children\":");
                            GetDeviceTreeJsonByList(row.id);
                            deviceresult.Append(devicesb.ToString());
                            devicesb.Clear();
                        }
                        deviceresult.Append(devicesb.ToString());
                        devicesb.Clear();
                        devicesb.Append("},");
                    }
                    devicesb = devicesb.Remove(devicesb.Length - 1, 1);
                }
                devicesb.Append("]");
                deviceresult.Append(devicesb.ToString());
                devicesb.Clear();
            }
        }
コード例 #26
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;
        }
コード例 #27
0
ファイル: Charts.cs プロジェクト: NickQi/TianheDemo
        public ResultEnergyAnalyse GetEnergyAnalyseLineChart(QueryAnalyse query)
        {
            try
            {
                VerifyPersonOrAreaExist(query);
                #region 返回对象定义
                ResultEnergyAnalyse result = new ResultEnergyAnalyse()
                {
                    OrderLst = new List<EnergyOrder>(),
                    series = new List<EneryAnalyseSeries>()

                };
                result.series.Add(new EneryAnalyseSeries() { data = new List<decimal>() });
                #endregion

                List<Model.Itemcode> itemCodeList = new List<Model.Itemcode>();
                if (query.IsDevice == 0)
                {
                    if (query.ItemCode == "00000")
                    {//总能耗
                        itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0 ", " order by ItemcodeID");
                        result.Unit = "T";//标准煤单位
                        result.series[0].name = "总能耗";
                    }
                    else
                    {
                        itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
                        if (itemCodeList.Count > 0)
                        {
                            result.Unit = itemCodeList[0].Unit;//单个分类分项单位
                            result.series[0].name = itemCodeList[0].ItemCodeName;
                        }

                    }
                }
                else
                {
                    var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectId), " order by deviceid");
                    itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + deviceList[0].ItemCodeID + "'", " order by ItemcodeID");
                    if (itemCodeList.Count > 0)
                    {
                        result.Unit = itemCodeList[0].Unit;//单个分类分项单位
                        result.series[0].name = itemCodeList[0].ItemCodeName;
                    }
                    if (query.ItemCode == "00000")
                    {//总能耗

                        result.Unit = "T";//标准煤单位
                        result.series[0].name = "总能耗";
                    }

                }

                switch (query.QueryType)
                {
                    case EnergyAnalyseQueryType.Convert2Co2:
                    case EnergyAnalyseQueryType.Convert2Coal:
                        result.Unit = "T";//标准煤单位
                        break;
                    case EnergyAnalyseQueryType.Convert2Money:
                        result.Unit = "元";//标准煤单位
                        break;
                }

                DateTime tempStartTime = query.StartTime;
                DateTime tempEndTime = query.EndTime;
                if ((DateTime.Now - tempEndTime).Days == 0)
                {
                    tempEndTime = DateTime.Now;
                }
                switch (query.QueryType)
                {
                    case EnergyAnalyseQueryType.YearCompare://同比值
                        tempStartTime = tempStartTime.AddYears(-1);
                        tempEndTime = tempEndTime.AddYears(-1);
                        break;
                    case EnergyAnalyseQueryType.MonthCompare://环比值

                        tempStartTime = tempStartTime.AddMonths(-1);
                        tempEndTime = tempEndTime.AddMonths(-1);

                        break;
                }
                Dictionary<string, decimal> tempConvert = new Dictionary<string, decimal>();
                Dictionary<string, decimal> tempConvertHour = new Dictionary<string, decimal>();
                var model = new BaseQueryModel();
                model.IsDevice = query.IsDevice;
                model.ObjectList = new List<int>();

                model.ObjectList = new List<int>() { query.ObjectId };

                model.Unit = BaseTool.GetChartUnit(query.particle);
                if (model.Unit == ChartUnit.unit_month)
                {
                    model.Starttime = Convert.ToDateTime(tempStartTime.ToString("yyyy-MM-1"));
                    model.Endtime = Convert.ToDateTime(tempEndTime.ToString("yyyy-MM-1"));
                }
                else
                {
                    model.Starttime = tempStartTime;
                    model.Endtime = tempEndTime;
                }
                int templastmonthdays = 0;
                switch (model.Unit)
                {
                    case ChartUnit.unit_month:
                        for (DateTime i = model.Starttime; i <= model.Endtime; i = i.AddMonths(1))
                        {
                            tempConvert.Add(i.ToString("yyyy-MM-dd"), 0);
                        }
                        break;
                    case ChartUnit.unit_hour:
                        for (DateTime i = model.Starttime; i < model.Endtime.AddDays(1); i = i.AddHours(1))
                        {
                            tempConvert.Add(i.ToString("yyyy-MM-dd HH:00:00"), 0);
                        }
                        break;
                    case ChartUnit.unit_day:
                        templastmonthdays = (model.Endtime - model.Starttime).Days;
                        if (model.Endtime.Hour== 0)
                        {
                            for (DateTime i = model.Starttime; i <= model.Endtime; i = i.AddDays(1))
                            {
                                tempConvert.Add(i.ToString(("yyyy-MM-dd")), 0);
                            }
                        }
                        else
                        {

                            for (DateTime i = model.Starttime; i <= model.Endtime.AddDays(-1); i = i.AddDays(1))
                            {
                                tempConvert.Add(i.ToString(("yyyy-MM-dd")), 0);
                            }

                            for (DateTime i = DateTime.Parse(model.Endtime.ToString("yyyy-MM-dd 00:00:00")); i <= model.Endtime; i = i.AddHours(1))
                            {
                                tempConvertHour.Add(i.ToString("yyyy-MM-dd HH:00:00"), 0);
                            }
                            model.Endtime = DateTime.Parse(tempEndTime.AddDays(-1).ToString("yyyy-MM-dd"));
                        }

                        break;
                }
                string objName = "";

                decimal temphourValue = 0;
                foreach (var item in itemCodeList)
                {
                    model.ItemCode = item.ItemCodeNumber;
                    GenerateEnergyDicValue(model, query, tempConvert,ref objName);
                    if (tempConvertHour.Count>0)
                    {
                        model.Unit = ChartUnit.unit_hour;
                        model.Starttime = DateTime.Parse(tempEndTime.ToString("yyyy-MM-dd 00:00:00"));
                        model.Endtime = DateTime.Parse(tempEndTime.ToString("yyyy-MM-dd HH:00:00"));
                        GenerateEnergyDicValue(model, query, tempConvertHour, ref objName);
                        temphourValue = tempConvertHour.Sum(i => i.Value);

                        model.Starttime = tempStartTime;
                        model.Endtime = DateTime.Parse(tempEndTime.AddDays(-1).ToString("yyyy-MM-dd"));
                        model.Unit = ChartUnit.unit_day;
                    }

                }
                if (tempConvertHour.Count > 0)
                {
                    tempConvert.Add(DateTime.Now.ToString("yyyy-MM-dd"), temphourValue);
                }
                int order = 1;
                foreach (var item in tempConvert)
                {

                    var time = item.Key;
                    if (model.Unit == ChartUnit.unit_month)
                    {
                        time = Convert.ToDateTime(time).ToString("yyyy-MM");
                    }

                    decimal value = decimal.Round(item.Value, 2);
                    result.series[0].data.Add(value);
                    result.OrderLst.Add(new EnergyOrder()
                    {
                        Order = order,
                        Tm = time,
                        Obj = objName,
                        Val = value,
                        EneType = result.series[0].name
                        // EneType =itemCodeList.Count > 1 ? "总能耗" : itemCodeList[0].ItemCodeName

                    });
                    order++;
                }
                if (query.QueryType == EnergyAnalyseQueryType.MonthCompare)
                {
                    int tempcurrentdays = (query.EndTime - query.StartTime).Days;
                    //int index = (28 - query.StartTime.Day) < 0 ? 0 : (28 - query.StartTime.Day);

                    if (model.Unit == ChartUnit.unit_day)
                    {
                        if (tempcurrentdays > templastmonthdays)
                        {//当前时间范围大于上月环比范围
                            int index = System.DateTime.DaysInMonth(query.StartTime.AddMonths(-1).Year, query.StartTime.AddMonths(-1).Month) - query.StartTime.Day;
                            if (index < 0)
                            {
                                index = 0;
                            }
                            for (int i = templastmonthdays; i < tempcurrentdays; i++)
                            {
                                result.series[0].data.Insert(index, result.series[0].data[index]);
                            }

                        }
                        else
                        {
                            if (tempcurrentdays < templastmonthdays)
                            {
                                int index = System.DateTime.DaysInMonth(query.StartTime.AddMonths(-1).Year, query.StartTime.AddMonths(-1).Month) - query.StartTime.Day;
                                for (int i = tempcurrentdays; i < templastmonthdays; i++)
                                {
                                    result.series[0].data.RemoveAt(index);
                                    index--;
                                }
                            }
                        }

                        //for (int i = 0; i < ((query.EndTime - query.StartTime).Days - tempdaycount); i++)
                        //{
                        //    result.series[0].data.Insert(index, result.series[0].data[index]);

                        //}

                    }
                }

                return result;
            }
            catch (Exception ee)
            {
                throw ee;
            }
        }
コード例 #28
0
        public Dictionary <string, decimal> GetSingleItemCodeByObject(BasicQuery query, string itemcode)
        {
            // var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() };
            var eneryDataList = new Dictionary <string, decimal>();
            var model         = new BaseQueryModel();

            List <Model.BaseLayerObject> objectList = new List <Model.BaseLayerObject>();

            if (query.AreaType == AreaType.Area)
            {
                objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and layerobjectid={0}", query.ObjectNum), " order by LayerObjectID");
            }
            else
            {
                objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseFuncLayerObjectList(string.Format(" and layerobjectid={0}", query.ObjectNum), " order by LayerObjectID");
            }


            model.IsDevice   = 0;
            model.ObjectList = (from p in objectList select p.LayerObjectID).ToList <int>();
            model.ItemCode   = itemcode;
            model.Unit       = BaseTool.GetChartUnit(query.Unit);
            model.Starttime  = query.StartTime;
            model.Endtime    = query.EndTime;
            model.areaType   = query.AreaType;

            var resList = _energCon.GetBaseEneryDataListNew(model);

            foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString(CultureInfo.InvariantCulture)].Datas))
            {
                if (!eneryDataList.ContainsKey(d.DatePick))
                {
                    switch (query.QueryType)
                    {
                    case EnergyAnalyseQueryType.Convert2Co2:
                        eneryDataList.Add(d.DatePick, d.Co2DataValue);
                        break;

                    case EnergyAnalyseQueryType.Convert2Coal:
                        eneryDataList.Add(d.DatePick, d.CoalDataValue);
                        break;

                    case EnergyAnalyseQueryType.Convert2Money:
                        eneryDataList.Add(d.DatePick, d.MoneyDataValue);
                        break;

                    default:
                        eneryDataList.Add(d.DatePick, d.DataValue);
                        break;
                    }
                }
                else
                {
                    switch (query.QueryType)
                    {
                    case EnergyAnalyseQueryType.Convert2Co2:
                        eneryDataList[d.DatePick] += d.Co2DataValue;
                        break;

                    case EnergyAnalyseQueryType.Convert2Coal:
                        eneryDataList[d.DatePick] += d.CoalDataValue;
                        break;

                    case EnergyAnalyseQueryType.Convert2Money:
                        eneryDataList[d.DatePick] += d.MoneyDataValue;
                        break;

                    default:
                        eneryDataList[d.DatePick] += d.DataValue;
                        break;
                    }
                }
            }

            //foreach (var e in eneryDataList)
            //{
            //    result.DatePick.Add(e.Key);
            //    result.DatePickEnery.Add(e.Value);
            //}
            return(eneryDataList);
        }
コード例 #29
0
ファイル: EnergyContrast.cs プロジェクト: NickQi/TianheDemo
        public Dictionary<string, decimal> GetSingleItemCodeByObject(BasicQuery query, string itemcode)
        {
            // var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() };
            var eneryDataList = new Dictionary<string, decimal>();
            var model = new BaseQueryModel();

            List<Model.BaseLayerObject> objectList = new List<Model.BaseLayerObject>();
            if (query.AreaType == AreaType.Area)
            {
                objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and layerobjectid={0}", query.ObjectNum), " order by LayerObjectID");
            }
            else
            {

                objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseFuncLayerObjectList(string.Format(" and layerobjectid={0}", query.ObjectNum), " order by LayerObjectID");
            }

            model.IsDevice = 0;
            model.ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>();
            model.ItemCode = itemcode;
            model.Unit = BaseTool.GetChartUnit(query.Unit);
            model.Starttime = query.StartTime;
            model.Endtime = query.EndTime;
            model.areaType = query.AreaType;

            var resList = _energCon.GetBaseEneryDataListNew(model);
            foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString(CultureInfo.InvariantCulture)].Datas))
            {
                if (!eneryDataList.ContainsKey(d.DatePick))
                {
                    switch (query.QueryType)
                    {
                        case EnergyAnalyseQueryType.Convert2Co2:
                            eneryDataList.Add(d.DatePick, d.Co2DataValue);
                            break;
                        case EnergyAnalyseQueryType.Convert2Coal:
                            eneryDataList.Add(d.DatePick, d.CoalDataValue);
                            break;
                        case EnergyAnalyseQueryType.Convert2Money:
                            eneryDataList.Add(d.DatePick, d.MoneyDataValue);
                            break;
                        default:
                            eneryDataList.Add(d.DatePick, d.DataValue);
                            break;
                    }
                }
                else
                {
                    switch (query.QueryType)
                    {
                        case EnergyAnalyseQueryType.Convert2Co2:
                            eneryDataList[d.DatePick] += d.Co2DataValue;
                            break;
                        case EnergyAnalyseQueryType.Convert2Coal:
                            eneryDataList[d.DatePick] += d.CoalDataValue;
                            break;
                        case EnergyAnalyseQueryType.Convert2Money:
                            eneryDataList[d.DatePick] += d.MoneyDataValue;
                            break;
                        default:
                            eneryDataList[d.DatePick] += d.DataValue;
                            break;
                    }
                }

            }

            //foreach (var e in eneryDataList)
            //{
            //    result.DatePick.Add(e.Key);
            //    result.DatePickEnery.Add(e.Value);
            //}
            return eneryDataList;
        }
コード例 #30
0
ファイル: EnergyContrast.cs プロジェクト: NickQi/TianheDemo
        //objectList[0]
        public Dictionary<string, decimal> GetSingleItemCodeByObjectNew(QueryContrastPeriods query, string itemcode, TimePeriod time, int isCoal)
        {
            // var result = new ResultIndexLineChart { DatePick = new List<string>(), DatePickEnery = new List<decimal>() };
            var eneryDataList = new Dictionary<string, decimal>();
            var model = new BaseQueryModel();
            List<Model.BaseLayerObject> objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and layerobjectid={0}", query.AreaId), " order by LayerObjectID");
            model.IsDevice = 0;
            if (query.ObjType == AreaType.Area)
            {
                objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseLayerObjectList(string.Format(" and layerobjectid={0}", query.AreaId), " order by LayerObjectID");
            }
            else
            {
                objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseFuncLayerObjectList(string.Format(" and layerobjectid={0}", query.AreaId), " order by LayerObjectID");
            }

            model.ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>();
            model.ItemCode = itemcode;
            model.Unit = BaseTool.GetChartUnit(query.particle);
            model.Starttime = time.StartTime;
            model.Endtime = time.EndTime;
            model.areaType = query.ObjType;

            var resList = contsDal.GetBaseEneryDataListNew(model);
            for (int iCount = 0; iCount < query.PeriodLst.Count; iCount++)
            {
                TimePeriod tpTime = query.PeriodLst[iCount];
                //if (!eneryDataList.ContainsKey(d.DatePick))
                //{

                //    eneryDataList.Add(d.DatePick, isCoal == 0 ? d.DataValue : d.CoalDataValue);
                //}
                //else
                //{
                //    eneryDataList[d.DatePick] += isCoal == 0 ? d.DataValue : d.CoalDataValue;
                //}

            }
            foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString(CultureInfo.InvariantCulture)].Datas))
            {
                if (!eneryDataList.ContainsKey(d.DatePick))
                {
                    switch (query.QueryType)
                    {
                        case QueryOrderType.CarbanOut:
                            eneryDataList.Add(d.DatePick, d.Co2DataValue);
                            break;
                        case QueryOrderType.ConvCoal:
                            eneryDataList.Add(d.DatePick, d.CoalDataValue);
                            break;
                        case QueryOrderType.Renminbi:
                            eneryDataList.Add(d.DatePick, d.MoneyDataValue);
                            break;
                        default:
                            eneryDataList.Add(d.DatePick, d.DataValue);
                            break;
                    }
                }
                else
                {
                    eneryDataList[d.DatePick] += isCoal == 0 ? d.DataValue : d.CoalDataValue;
                    switch (query.QueryType)
                    {
                        case QueryOrderType.CarbanOut:
                            eneryDataList[d.DatePick] += d.Co2DataValue;
                            break;
                        case QueryOrderType.ConvCoal:
                            eneryDataList[d.DatePick] += d.CoalDataValue;
                            break;
                        case QueryOrderType.Renminbi:
                            eneryDataList[d.DatePick] += d.MoneyDataValue;
                            break;
                        default:
                            eneryDataList[d.DatePick] += d.DataValue;
                            break;
                    }
                }
            }

            //foreach (var e in eneryDataList)
            //{
            //    result.DatePick.Add(e.Key);
            //    result.DatePickEnery.Add(e.Value);
            //}
            return eneryDataList;
        }
コード例 #31
0
        private void GetDeviceTreeJsonByListNew(int pId, int level)
        {
            var deepth = 0;
            // var objectlist = dal.GetBaseLayerObjectList("", " order by LayerObjectDeepth desc,LayerObjectID");
            var objectlist = dal.GetBaseLayerObjectList("", " order by   LayerObjectID");

            if (objectlist.Count > 0)
            {
                //deepth = objectlist[0].LayerObjectDeepth;
                deepth = level;
            }
            Dictionary <int, string> cacheLayer = NTS.WEB.Common.CacheHelper.GetCache("object-Layer") as Dictionary <int, string>;

            if (cacheLayer == null)
            {
                var res = new NTS.WEB.BLL.LayerObjects().GetObjectLayers();
                NTS.WEB.Common.CacheHelper.SetCache("object-Layer", res);
                cacheLayer = res;
            }
            deviceresult.Append(devicesb.ToString());
            devicesb.Clear();
            if (tabel.Count > 0)
            {
                devicesb.Append("[");

                var rows = (from l in tabel where l.pid.Equals(pId) select l).ToList <NTS.WEB.Model.Tree>();
                if (rows.Count > 0)
                {
                    foreach (var row in rows)
                    {
                        devicesb.Append("{\"id\":" + row.id + ",\"text\":\"" + row.name + "\",\"state\":\"open\",\"iconCls\":\"\"");
                        var childrows = (from l in tabel where l.pid.Equals(row.id) select l).ToList <NTS.WEB.Model.Tree>();
                        if (childrows.Count > 0)
                        {
                            var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid");
                            // if (deviceList.Count > 0 && 4 == level) //&& row.deepth==4
                            //if (deviceList.Count > 0 && cacheLayer.Count == level)
                            //{
                            //    devicesb.Append(",\"hasChildren\":true");
                            //}
                            //else
                            //{
                            //    devicesb.Append(",\"hasChildren\":false");
                            //}
                            devicesb.Append(",\"children\":");
                            GetDeviceTreeJsonByListNew(row.id, level + 1);
                            deviceresult.Append(devicesb.ToString());
                            devicesb.Clear();
                        }
                        else
                        {
                            var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid");
                            //if (deviceList.Count > 0 && 4 == level)
                            //if (deviceList.Count > 0 && cacheLayer.Count == level)
                            //{
                            //    devicesb.Append(",\"hasChildren\":true");
                            //}
                            //else
                            //{
                            //    devicesb.Append(",\"hasChildren\":false");
                            //}
                            devicesb.Append(",\"children\":");
                            GetDeviceTreeJsonByList(row.id, level + 1);
                            deviceresult.Append(devicesb.ToString());
                            devicesb.Clear();
                        }
                        deviceresult.Append(devicesb.ToString());
                        devicesb.Clear();
                        devicesb.Append("},");
                    }
                    devicesb = devicesb.Remove(devicesb.Length - 1, 1);
                }
                devicesb.Append("]");
                deviceresult.Append(devicesb.ToString());
                devicesb.Clear();
            }
        }
コード例 #32
0
ファイル: BaseTree.cs プロジェクト: NickQi/TianheDemo
        private void GetDeviceTreeJsonByListNew(int pId, int level)
        {
            var deepth = 0;
            // var objectlist = dal.GetBaseLayerObjectList("", " order by LayerObjectDeepth desc,LayerObjectID");
            var objectlist = dal.GetBaseLayerObjectList("", " order by   LayerObjectID");
            if (objectlist.Count > 0)
            {
                //deepth = objectlist[0].LayerObjectDeepth;
                deepth = level;
            }
            Dictionary<int, string> cacheLayer = NTS.WEB.Common.CacheHelper.GetCache("object-Layer") as Dictionary<int, string>;
            if (cacheLayer == null)
            {
                var res = new NTS.WEB.BLL.LayerObjects().GetObjectLayers();
                NTS.WEB.Common.CacheHelper.SetCache("object-Layer", res);
                cacheLayer = res;
            }
            deviceresult.Append(devicesb.ToString());
            devicesb.Clear();
            if (tabel.Count > 0)
            {
                devicesb.Append("[");

                var rows = (from l in tabel where l.pid.Equals(pId) select l).ToList<Tree>();
                if (rows.Count > 0)
                {
                    foreach (var row in rows)
                    {
                        devicesb.Append("{\"id\":" + row.id + ",\"text\":\"" + row.name + "\",\"state\":\"open\",\"iconCls\":\"\"");
                        var childrows = (from l in tabel where l.pid.Equals(row.id) select l).ToList<Tree>();
                        if (childrows.Count > 0)
                        {
                            var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid");
                            // if (deviceList.Count > 0 && 4 == level) //&& row.deepth==4
                            //if (deviceList.Count > 0 && cacheLayer.Count == level)
                            //{
                            //    devicesb.Append(",\"hasChildren\":true");
                            //}
                            //else
                            //{
                            //    devicesb.Append(",\"hasChildren\":false");
                            //}
                            devicesb.Append(",\"children\":");
                            GetDeviceTreeJsonByListNew(row.id, level + 1);
                            deviceresult.Append(devicesb.ToString());
                            devicesb.Clear();
                        }
                        else
                        {
                            var deviceList = new NTS.WEB.BLL.BaseLayerObject().GetDeviceObjectList(" and areaid=" + row.id, " order by deviceid");
                            //if (deviceList.Count > 0 && 4 == level)
                            //if (deviceList.Count > 0 && cacheLayer.Count == level)
                            //{
                            //    devicesb.Append(",\"hasChildren\":true");
                            //}
                            //else
                            //{
                            //    devicesb.Append(",\"hasChildren\":false");
                            //}
                            devicesb.Append(",\"children\":");
                            GetDeviceTreeJsonByList(row.id, level + 1);
                            deviceresult.Append(devicesb.ToString());
                            devicesb.Clear();
                        }
                        deviceresult.Append(devicesb.ToString());
                        devicesb.Clear();
                        devicesb.Append("},");
                    }
                    devicesb = devicesb.Remove(devicesb.Length - 1, 1);
                }
                devicesb.Append("]");
                deviceresult.Append(devicesb.ToString());
                devicesb.Clear();
            }
        }
コード例 #33
0
ファイル: Charts.cs プロジェクト: NickQi/TianheDemo
        public ResultRealLine IndexElectricityRealLine(DateTime startTime, DateTime endTime)
        {
            var pAction = new ExecuteProcess();
            try
            {
                var result = new ResultRealLine { series = new List<EneryAnalyseSeries>(), Unit = "kwh" };
                var eneryDataList = new Dictionary<string, decimal>();
                var model = new BaseQueryModel();
                var objectList = new NTS.WEB.BLL.BaseLayerObject().GetBaseFuncLayerObjectList(string.Format(" and LayerObjectParentID={0}", 0), " order by LayerObjectID");
                model.IsDevice = 0;
                model.ObjectList = (from p in objectList select p.LayerObjectID).ToList<int>();
                model.ItemCode = "01000";
                model.Unit = ChartUnit.unit_hour;
                model.Starttime = startTime;
                model.Endtime = endTime;
                var resList = _reportBll.GetBaseEneryDataList(model,true);
                foreach (var d in objectList.SelectMany(o => resList.BaseLayerObjectResults[o.LayerObjectID.ToString(CultureInfo.InvariantCulture)].Datas))
                {
                    if (!eneryDataList.ContainsKey(d.DatePick))
                    {
                        eneryDataList.Add(d.DatePick, d.DataValue);
                    }
                    else
                    {
                        eneryDataList[d.DatePick] += d.DataValue;
                    }
                }

                List<decimal> dat = new List<decimal>(24);//modified by wxy
                for (int i = 0; i < 24; i++)
                    dat.Add(0);
                foreach (var e in eneryDataList)
                {
                    DateTime dt = DateTime.Parse(e.Key);//dat.Add(e.Value);
                    dat[dt.Hour] = e.Value;

                }
                List<decimal> dat1 = new List<decimal>();
                EneryAnalyseSeries eas = new EneryAnalyseSeries();
                decimal rightValue = 0;//modified by wxy
                decimal leftValue = 0;
                for (int i = 0; i <= DateTime.Now.Hour; i++)
                {
                    if (dat[i].CompareTo(-1) == 0)
                    {
                        int tempIndex = i;
                        while (--i >= 0)
                        {
                            if (dat[i].CompareTo(-1) >= 0)
                            {
                                rightValue = dat[i];
                                break;
                            }
                        }
                        i = tempIndex;
                        while (++i < 24)
                        {
                            if (dat[i].CompareTo(-1) >= 0)
                            {
                                leftValue = dat[i];
                                break;
                            }
                        }
                        i = tempIndex;
                        decimal meanValue = (rightValue + leftValue)/2;
                        dat1.Add( Math.Round(meanValue, 2) );
                    }
                    else
                        dat1.Add(dat[i]);
                }
                eas.data = dat1;

                result.series.Add(eas);
                pAction.Success = true;
                result.ActionInfo = pAction;
                return result;
            }
            catch (Exception ex)
            {
                pAction.Success = false;
                pAction.ExceptionMsg = ex.Message;
                return new ResultRealLine() { ActionInfo = pAction };
            }
        }