コード例 #1
0
        public static string ToUri(this NTS nts)
        {
            switch (nts)
            {
            case NTS.Alive: return("ssdp:alive");

            case NTS.ByeBye: return("ssdp:byebye");

            case NTS.Update: return("ssdp:update");

            default:
                return("<unknown>");
            }
        }
コード例 #2
0
ファイル: Convert.cs プロジェクト: stewart-r/SSDP.UPnP.PCL
        internal static string GetNtsString(NTS nts)
        {
            switch (nts)
            {
            case NTS.Alive: return("ssdp:alive");

            case NTS.ByeBye: return("ssdp:byebye");

            case NTS.Update: return("ssdp:update");

            default:
                return("<unknown>");
            }
        }
コード例 #3
0
        public bool IsInCNF()
        {
            return(rules.All(r =>
            {
                return r.Value.All(rs =>
                {
                    switch (rs.Count())
                    {
                    case 1: return TS.IsSupersetOf(rs.Symbols);

                    case 2: return NTS.IsSupersetOf(rs.Symbols);

                    default: return false;
                    }
                }) && (r.Key.Symbols[0].Equals(S) || r.Value.All(rs => !rs.Contains("")));
            }));
        }
コード例 #4
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
 public NTS.WEB.ResultView.ShopOrderResult GetShopOrder(NTS.WEB.DataContact.QueryOrder query)
 {
     var pAction = new ExecuteProcess();
     try
     {
         var result = new NTS.WEB.BLL.QueryEnery().GetShopOrder(query);
         if (result == null)
         {
             pAction.Success = false;
             pAction.ExceptionMsg = "暂无数据信息";
             return new ShopOrderResult() { ActionInfo = pAction };
         }
         pAction.Success = true;
         result.ActionInfo = pAction;
         return result;
     }
     catch (Exception e)
     {
         pAction.Success = false;
         pAction.ExceptionMsg = e.Message;
         return new ShopOrderResult() { ActionInfo = pAction };
     }
 }
コード例 #5
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
 public ResultReal GetRealTime(NTS.WEB.DataContact.RealQuery query)
 {
     var pAction = new ExecuteProcess();
     try
     {
         var result = new NTS.WEB.BLL.QueryEnery().GetRealTime(query);
         if (result == null)
         {
             pAction.Success = false;
             pAction.ExceptionMsg = "暂无数据信息";
             return new ResultReal() { ActionInfo = pAction };
         }
         pAction.Success = true;
         result.ActionInfo = pAction;
         return result;
     }
     catch (Exception e)
     {
         pAction.Success = false;
         pAction.ExceptionMsg = e.Message;
         return new ResultReal() { ActionInfo = pAction };
     }
 }
コード例 #6
0
ファイル: OperateQuotaBll.cs プロジェクト: NickQi/TianheDemo
        /// <summary>
        /// 存储数据
        /// </summary>
        /// <param name="quotaData"></param>
        /// <returns></returns>
        public int InsertOrEditQuota(NTS.EMS.Config.Model.QuotaDataContact quotaData)
        {
            try
            {
                string where = " and QUOTAID=" + quotaData.QuotaId;
                var quotaObject = quotaOperator.GetQuota(where);

                #region 组织数据
                DateTime quotaTime = DateTime.Now;
                TB_Quota tbQuota = new TB_Quota();
                tbQuota.ObjectDesc = quotaData.ObjectDesc;
                tbQuota.ObjectId = quotaData.ObjectId;
                tbQuota.ObjectType = quotaData.ObjectType;
                tbQuota.QuotaId = quotaData.QuotaId;
                tbQuota.QuotaTime = quotaData.QuotaDate.Date;
                tbQuota.QuotaType = quotaData.QuotaType;
                tbQuota.QuotaValue = quotaData.QuotaValue;
                tbQuota.Reserved = quotaData.Reserved;
                tbQuota.ItemCode = quotaData.ItemCode;

                TS_Quota_Log tsQuotaLog = new TS_Quota_Log();
                tsQuotaLog.LogTime = quotaTime;
                tsQuotaLog.QuotaId = quotaData.QuotaId;
                tsQuotaLog.QuotaValue = quotaData.QuotaValue;
                tsQuotaLog.Reserved = quotaData.Reserved;
                tsQuotaLog.UserName = quotaData.UserName;
                #endregion

                //using (var scope = new TransactionScope())
                //{
                //    if (quotaObject == null || quotaObject.Count == 0)
                //    {
                //        int quotaId = quotaOperator.GetMaxQuotaId();
                //        tbQuota.QuotaId = quotaId;
                //        tsQuotaLog.QuotaId = quotaId;
                //        // 插入定额表
                //        quotaOperator.InsertQuota(tbQuota, tsQuotaLog);
                //    }
                //    else
                //    {
                //        //更新定额表
                //        quotaOperator.UpdateQuota(tbQuota, tsQuotaLog);
                //    }
                //    quotaOperator.InsertQuotaLog(tsQuotaLog);
                //    scope.Complete();
                //    return tbQuota.QuotaId;
                //}
                int count = 0;
                if (quotaObject == null || quotaObject.Count == 0)
                {
                    int quotaId = quotaOperator.GetMaxQuotaId();
                    tbQuota.QuotaId = quotaId;
                    tsQuotaLog.QuotaId = quotaId;
                    // 插入定额表
                    count = quotaOperator.InsertQuota(tbQuota, tsQuotaLog);

                }
                else
                {
                    //更新定额表
                    count = quotaOperator.UpdateQuota(tbQuota, tsQuotaLog);
                }
                if (count > 0)
                {
                    return tbQuota.QuotaId;
                }
                else
                {
                    return -1;
                }
            }
            catch (Exception)
            {
                return -1;
            }
        }
コード例 #7
0
        public void CNF()
        {
            // Phase 0

            var emptyableNTS = rules.Where(r => r.Value.Any(rs => rs.Contains(""))).Select(r => r.Key).ToList();

            if (emptyableNTS.Count() > 0)
            {
                foreach (RuleSide rs in emptyableNTS)
                {
                    rules.Remove(rs, new RuleSide(""));
                    rules.CopyRightSideWithout(rs, rs);
                }
                Queue <RuleSide> queue = new Queue <RuleSide>(emptyableNTS);
                while (queue.Count() > 0)
                {
                    RuleSide curr     = queue.Dequeue();
                    var      impacted = rules.Contains(curr, false).ToList();
                    foreach (RuleSide rs in impacted)
                    {
                        rules.CopyRightSideWithout(rs, curr);
                        if (rules[rs].Contains(curr))
                        {
                            queue.Enqueue(rs);
                            rules.CopyRightSideWithout(rs, rs);
                        }
                    }
                }
                RuleSide nS = new RuleSide(S + "'");
                NTS.Add(nS.ToString());
                rules.Add(nS, new RuleSide(S));
                rules.Add(nS, new RuleSide(""));
                S = nS.ToString();
            }

            // Phase 1

            TS.ToList().ForEach(ts =>
            {
                NTS.Add("X_" + ts);
                rules.Add(new RuleSide("X_" + ts), new RuleSide(ts));
            });
            foreach (RuleSide left in rules.Keys)
            {
                foreach (RuleSide right in rules[left].ToList())
                {
                    RuleSide nSide = right;
                    foreach (string ts in TS)
                    {
                        if (right.Contains(ts) && right.Count() > 1)
                        {
                            nSide.Replace(ts, "X_" + ts);
                        }
                    }
                    rules.Replace(left, right, nSide);
                }
            }

            // Phase 2

            var transNTS = rules.Where(r => r.Value.Any(rs => rs.Count() == 1 && NTS.Contains(rs[0]))).Select(r => r.Key).ToList();

            if (transNTS.Count > 0)
            {
                Queue <RuleSide> queue = new Queue <RuleSide>(transNTS);
                while (queue.Count > 0)
                {
                    RuleSide curr    = queue.Dequeue();
                    var      singles = rules[curr].Where(rs => rs.Count() == 1 && NTS.Contains(rs[0])).ToList();
                    foreach (RuleSide rs in singles)
                    {
                        rules.Remove(curr, rs);
                        if (queue.Contains(rs))
                        {
                            queue.Enqueue(curr);
                        }
                        if (rules.ContainsKey(rs))
                        {
                            rules.AddToKey(curr, rules[rs]);
                        }
                    }
                }
            }

            // Phase 3

            var tooMany = rules.SelectMany(r => r.Value).Where(rs => rs.Count() > 2);

            if (tooMany.Count() > 0)
            {
                int idx   = 1;
                var queue = new Queue <RuleSide>(tooMany);
                while (queue.Count > 0)
                {
                    var curr = queue.Dequeue();
                    while (curr.Count() > 2)
                    {
                        string   nNTS  = "Y_" + idx++;
                        RuleSide nSide = new RuleSide(curr[0], curr[1]);
                        NTS.Add(nNTS);
                        rules.Add(new RuleSide(nNTS), nSide);
                        curr.ReplaceFirstNWidth(2, nNTS);
                        var occurences = rules.Select(r => (r.Key, r.Value.Where(rs => rs.Contains(nSide)))).Where(pair => pair.Item2.Count() > 0);
                        foreach (var pair in occurences)
                        {
                            foreach (var right in pair.Item2)
                            {
                                rules.Replace(pair.Key, right, right.Except(nSide));
                            }
                        }
                    }
                }
            }
        }
コード例 #8
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
 private void VerifyPersonOrAreaExist(NTS.WEB.DataContact.QueryOrderObjects query)
 {
     switch (query.QueryType)
     {
         case EnergyAnalyseQueryType.UnitArea:
         case EnergyAnalyseQueryType.UnitPerson:
             string where = "";
             List<Model.BaseLayerObject> LayerObjectList;
             foreach (var areaid in query.AreaIdLst)
             {
                 where = string.Format(@"and layerobjectid={0} ", areaid);
                 if (query.ObjType == AreaType.Liquid)
                 {//取液态
                     LayerObjectList = new DAL.BaseLayerObject().GetBaseFuncLayerObjectList(where, string.Format(" order by LayerObjectID"));
                 }
                 else
                 {
                     LayerObjectList = new DAL.BaseLayerObject().GetBaseLayerObjectList(where, string.Format(" order by LayerObjectID"));
                 }
                 if (LayerObjectList.Count > 0)
                 {
                     switch (query.QueryType)
                     {
                         case EnergyAnalyseQueryType.UnitArea:
                             if (!(LayerObjectList[0].AreaNum > 0))
                             {
                                 throw new Exception(string.Format("位置:【{0}】 单位面积尚未配置", LayerObjectList[0].LayerObjectName));
                             }
                             break;
                         case EnergyAnalyseQueryType.UnitPerson:
                             if (!(LayerObjectList[0].PersonNum > 0))
                             {
                                 throw new Exception(string.Format("位置:【{0}】 人均尚未配置", LayerObjectList[0].LayerObjectName));
                             }
                             break;
                     }
                 }
             }
             break;
     }
 }
コード例 #9
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
 private ShopOrderResult PaddingList(ShopOrderResult shopOrderResult, NTS.WEB.DataContact.QueryOrder query)
 {
     var padding = new ShopOrderResult();
     padding.OrderList = new List<BaseOrder>();
     int min = query.PageSize * (query.PageCurrent - 1);
     int max = min + query.PageSize;
     if (query.OrderWay != "asc")
     {
         var orderRes =
         from p in shopOrderResult.OrderList
         orderby p.Energy descending
         select p;
         shopOrderResult.OrderList = orderRes.ToList();
     }
     else
     {
         var orderRes =
             from p in shopOrderResult.OrderList
             orderby p.Energy ascending
             select p;
         shopOrderResult.OrderList = orderRes.ToList();
     }
     for (int sr = 0; sr < shopOrderResult.OrderList.Count; sr++)
     {
         if (sr >= min && sr < max)
         {
             shopOrderResult.OrderList[sr].Id = sr + 1;
             padding.OrderList.Add(shopOrderResult.OrderList[sr]);
         }
     }
     padding.page = shopOrderResult.page;
     padding.page.Current = query.PageCurrent;
     return padding;
 }
コード例 #10
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
        public ResultOrder GetShopOrderNew(NTS.WEB.DataContact.QueryOrderObjects query)
        {
            try
            {
                string keyCatch = string.Empty;
                foreach (var q in query.AreaIdLst)
                {
                    keyCatch += q.ToString() + "_";
                }
                keyCatch += query.ItemCode + query.StartTime + query.EndTime + query.QueryType + query.ObjType;
                if (CacheHelper.GetCache(keyCatch) != null)
                {
                    return (ResultOrder)CacheHelper.GetCache(keyCatch);
                }

                VerifyPersonOrAreaExist(query);

                #region 返回对象定义
                ResultOrder resultOrder = new ResultOrder();
                resultOrder.lineHighChart = new LineHighChart()
                {
                    series =
                        new List<Series>()
                };
                resultOrder.lineHighChart.series.Add(new Series() { data = new List<EneryHighChart>() });
                resultOrder.pieHighChart = new PieHighChart()
                {
                    series =
                        new List<Series>()
                };
                resultOrder.pieHighChart.series.Add(new Series() { data = new List<EneryHighChart>() });

                resultOrder.OrderLst = new List<EnergyOrder>();
                #endregion

                List<Model.Itemcode> itemCodeList = new List<Model.Itemcode>();
                if (query.ItemCode == "00000")
                {//总能耗
                    itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0 ", " order by ItemcodeID");
                    resultOrder.Unit = "T";//标准煤单位
                }
                else
                {
                    itemCodeList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
                    if (itemCodeList.Count > 0)
                    {
                        resultOrder.Unit = itemCodeList[0].Unit;//单个分类分项单位
                    }
                }
                switch(query.QueryType)
                {
                    case EnergyAnalyseQueryType.Convert2Co2:
                    case EnergyAnalyseQueryType.Convert2Coal:
                         resultOrder.Unit = "T";//标准煤单位
                        break;
                    case EnergyAnalyseQueryType.Convert2Money:
                        resultOrder.Unit = "元";//标准煤单位
                        break;
                }
                Dictionary<string, decimal> tempConvert = new Dictionary<string, decimal>();
                Dictionary<string, int> tempObjectConvert = new Dictionary<string, int>();
                var model = new BaseQueryModel();
                model.IsDevice = 0;
                model.ObjectList = query.AreaIdLst;
                //model.Unit = GetUnit(query.StartTime, query.EndTime);
                model.Unit = BaseTool.GetChartUnit(query.Particle);

                if (model.Unit == ChartUnit.unit_month)
                {
                    model.Starttime = Convert.ToDateTime(query.StartTime.ToString("yyyy-MM-1"));
                    model.Endtime = Convert.ToDateTime(query.EndTime.ToString("yyyy-MM-1"));
                }
                else
                {
                    model.Starttime = query.StartTime;
                    model.Endtime = query.EndTime;
                }
                foreach (var item in itemCodeList)
                {
                    model.ItemCode = item.ItemCodeNumber;
                    BaseResult resList = reportBll.GetBaseEneryDataList(model, query.ObjType == AreaType.Liquid ? true : false);
                    if (resList == null)
                    {
                        continue;
                    }
                    foreach (var r in resList.BaseLayerObjectResults)
                    {
                        if (!tempConvert.ContainsKey(r.Value.baseLayerObject.LayerObjectName))
                        {
                            tempConvert.Add(r.Value.baseLayerObject.LayerObjectName, 0);
                        }
                        if (!tempObjectConvert.ContainsKey(r.Value.baseLayerObject.LayerObjectName))
                        {
                            tempObjectConvert.Add(r.Value.baseLayerObject.LayerObjectName, r.Value.baseLayerObject.LayerObjectID);
                        }
                        if (tempConvert.ContainsKey(r.Value.baseLayerObject.LayerObjectName))
                        {
                            if (query.ItemCode == "00000")
                            {//选择总能耗后把其他分类分项的能耗转化成标准煤
                                switch (query.QueryType)
                                {
                                    case EnergyAnalyseQueryType.Default: //默认总能耗
                                        tempConvert[r.Value.baseLayerObject.LayerObjectName] +=
                                  decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());//
                                        break;
                                    case EnergyAnalyseQueryType.UnitArea://单位面积能耗
                                        tempConvert[r.Value.baseLayerObject.LayerObjectName] +=
                                    decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()) /
                                    decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString());
                                        break;
                                    case EnergyAnalyseQueryType.UnitPerson://人均能耗
                                        tempConvert[r.Value.baseLayerObject.LayerObjectName] +=
                                 decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString()) /
                                 decimal.Parse(r.Value.baseLayerObject.PersonNum.ToString());
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Coal://标准煤
                                        tempConvert[r.Value.baseLayerObject.LayerObjectName] +=
                                            decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Co2://二氧化碳
                                        tempConvert[r.Value.baseLayerObject.LayerObjectName] +=
                                            decimal.Parse(r.Value.ConvertDataValueList["ITEMCO2"].ToString());
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Money://人民币
                                        tempConvert[r.Value.baseLayerObject.LayerObjectName] +=
                                            decimal.Parse(r.Value.ConvertDataValueList["ITEMMONEY"].ToString());
                                        break;
                                    default:
                                        tempConvert[r.Value.baseLayerObject.LayerObjectName] +=
                                decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());//
                                        break;
                                }
                            }
                            else
                            {
                                switch (query.QueryType)
                                {
                                    case EnergyAnalyseQueryType.Default: //默认总能耗
                                        tempConvert[r.Value.baseLayerObject.LayerObjectName] += r.Value.Total;
                                        break;
                                    case EnergyAnalyseQueryType.UnitArea://单位面积能耗
                                        tempConvert[r.Value.baseLayerObject.LayerObjectName] +=
                                     r.Value.Total /
                                     decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString());
                                        break;
                                    case EnergyAnalyseQueryType.UnitPerson://人均能耗
                                        tempConvert[r.Value.baseLayerObject.LayerObjectName] +=
                                     r.Value.Total /
                                     decimal.Parse(r.Value.baseLayerObject.PersonNum.ToString());
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Coal://标准煤
                                        tempConvert[r.Value.baseLayerObject.LayerObjectName] +=
                                            decimal.Parse(r.Value.ConvertDataValueList["ITEMCOAL"].ToString());
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Co2://二氧化碳
                                        tempConvert[r.Value.baseLayerObject.LayerObjectName] +=
                                            decimal.Parse(r.Value.ConvertDataValueList["ITEMCO2"].ToString());
                                        break;
                                    case EnergyAnalyseQueryType.Convert2Money://人民币
                                        tempConvert[r.Value.baseLayerObject.LayerObjectName] +=
                                            decimal.Parse(r.Value.ConvertDataValueList["ITEMMONEY"].ToString());
                                        break;
                                    default:
                                        tempConvert[r.Value.baseLayerObject.LayerObjectName] += r.Value.Total;
                                        break;
                                }

                            }
                        }

                    }
                }
                var tempAsc = from tt in tempConvert orderby tt.Value ascending select tt;//LineChart按照能耗值从低到高排序

                foreach (var tempConvertItem in tempAsc)
                {
                    resultOrder.lineHighChart.series[0].data.Add(new EneryHighChart()
                    {
                        name = tempConvertItem.Key,
                        id = tempObjectConvert[tempConvertItem.Key].ToString(),
                        y = decimal.Parse(tempConvertItem.Value.ToString("f2"))

                    });
                }

                var tempDesc = from tt in tempConvert orderby tt.Value descending select tt;//PieChart按照能耗值从高到低排序
                int temppieindex = 1;
                decimal temppiecount = 0;
                foreach (var tempConvertItem in tempDesc)
                {
                    if (temppieindex < 6)
                    {
                        resultOrder.pieHighChart.series[0].data.Add(new EneryHighChart()
                        {
                            name = tempConvertItem.Key,
                            y = decimal.Parse(tempConvertItem.Value.ToString("f2"))
                        });
                    }
                    else
                    {
                        temppiecount += decimal.Parse(tempConvertItem.Value.ToString("f2"));

                    }
                    temppieindex++;
                }
                if (temppieindex > 6)
                {
                    resultOrder.pieHighChart.series[0].data.Add(new EneryHighChart()
                    {
                        name = "其他",
                        y = temppiecount

                    });
                }

                int order = 1;
                foreach (var tt in resultOrder.lineHighChart.series[0].data)
                {
                    resultOrder.OrderLst.Add(new EnergyOrder()
                                                 {
                                                     Order = order,
                                                     Tm = model.Unit == ChartUnit.unit_hour ? query.StartTime.ToString("yyyy-MM-dd") : query.StartTime.ToString("yyyy-MM-dd") + "~" + query.EndTime.ToString("yyyy-MM-dd"),
                                                     Obj = tt.name,
                                                     //ObjID=tempObjectConvert[tt.name],
                                                     Val = tt.y,
                                                     EneType = itemCodeList.Count > 1 ? "总能耗" : itemCodeList[0].ItemCodeName

                                                 });
                    order++;
                }

                if (CacheHelper.GetCache(keyCatch) == null)
                {
                    CacheHelper.SetCache(keyCatch, resultOrder, 30);
                }
                return resultOrder;
            }
            catch (Exception ee)
            {
                throw ee;
            }
        }
コード例 #11
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
        public NTS.WEB.ResultView.ShopOrderResult GetShopOrder(NTS.WEB.DataContact.QueryOrder query)
        {
            string keyCatch = string.Empty;
            foreach (var q in query.ObjectNum)
            {
                keyCatch += q.ToString() + "_";
            }
            keyCatch += query.ItemCode + query.OrderWay + query.StartTime + query.EndTime + query.Particle;
            if (CacheHelper.GetCache(keyCatch) != null)
            {
                return PaddingList((ShopOrderResult)CacheHelper.GetCache(keyCatch), query);
            }

            #region 定义区
            ShopOrderResult shopOrderResult = new ShopOrderResult();
            shopOrderResult.OrderList = new List<BaseOrder>();
            shopOrderResult.page = new Padding();
            #endregion

            var ItemList = new List<Model.Itemcode>();
            var shopOrder = new IndexShopOrder
            {
                TotalEneryOrderList = new List<EneryOrder>(),
                AreaEneryOrderList = new List<EneryOrder>()
            };
            var shopOrderLast = new IndexShopOrder
            {
                TotalEneryOrderList = new List<EneryOrder>(),
                AreaEneryOrderList = new List<EneryOrder>()
            };
            // var deepth = int.Parse(ConfigurationManager.AppSettings["ShopLevel"]);
            if (query.ItemCode == "00000")
            {
                ItemList = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID");
            }
            else
            {
                ItemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID");
            }
            List<string> ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList<string>();
            var model = new BaseQueryModel();
            model.IsDevice = 0;
            model.ObjectList = query.ObjectNum;
            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 = GetUnit(query.StartTime, query.EndTime);
                if (model.Unit == ChartUnit.unit_month)
                {
                    model.Starttime = Convert.ToDateTime(query.StartTime.ToString("yyyy-MM-1"));
                    model.Endtime = Convert.ToDateTime(query.EndTime.ToString("yyyy-MM-1"));
                }
                else
                {
                    model.Starttime = query.StartTime;
                    model.Endtime = query.EndTime;
                }
                var resList = reportBll.GetBaseEneryDataList(model);
                const int order = 1;
                foreach (var r in resList.BaseLayerObjectResults)
                {
                    if (tempConvert.ContainsKey(r.Value.baseLayerObject.LayerObjectName))
                    {
                        if (query.ItemCode == "00000")
                        {

                            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[r.Value.baseLayerObject.LayerObjectName] += r.Value.Total;
                            tempAreaConvert[r.Value.baseLayerObject.LayerObjectName] +=
                                r.Value.Total /
                                decimal.Parse(r.Value.baseLayerObject.AreaNum.ToString());
                        }
                    }
                    else
                    {
                        if (query.ItemCode == "00000")
                        {
                            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()));
                        }
                        else
                        {
                            tempConvert.Add(r.Value.baseLayerObject.LayerObjectName,
                                            r.Value.Total);
                            tempAreaConvert.Add(r.Value.baseLayerObject.LayerObjectName,
                                                r.Value.Total /
                                                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 res1)
            {
                shopOrderLast.TotalEneryOrderList.Add(new EneryOrder { BuildingName = c.BuildingName, EneryValue = c.EneryValue, OrderNum = c.OrderNum });
            }

            foreach (var c in res2)
            {
                shopOrderLast.AreaEneryOrderList.Add(new EneryOrder { BuildingName = c.BuildingName, EneryValue = c.EneryValue, OrderNum = c.OrderNum });
            }
            int record = shopOrderLast.TotalEneryOrderList.Count;
            shopOrderResult.page = new Padding()
            {
                Current = query.PageCurrent,
                Total = (record % query.PageSize == 0) ? record / query.PageSize : record / query.PageSize + 1
            };
            int orders = 1;
            if (query.Particle == "total")
            {
                foreach (var r in shopOrderLast.TotalEneryOrderList)
                {
                    shopOrderResult.OrderList.Add(new BaseOrder()
                        {
                            Energy = decimal.Parse(r.EneryValue.ToString("f2")),
                            Id = orders,
                            Title = r.BuildingName,
                            Units = query.ItemCode == "00000" ? "T" : ItemList[0].Unit
                        });
                    orders++;
                }
            }
            else
            {
                foreach (var r in shopOrderLast.AreaEneryOrderList)
                {
                    shopOrderResult.OrderList.Add(new BaseOrder()
                    {
                        Energy = decimal.Parse(r.EneryValue.ToString("f2")),
                        Id = r.OrderNum,
                        Title = r.BuildingName,
                        Units = query.ItemCode == "00000" ? "T" : ItemList[0].Unit
                    });
                }
            }

            if (CacheHelper.GetCache(keyCatch) == null)
            {
                CacheHelper.SetCache(keyCatch, shopOrderResult);
            }
            return PaddingList(shopOrderResult, query);
        }
コード例 #12
0
ファイル: QueryEnery.cs プロジェクト: NickQi/TianheDemo
        public QueryEneryTotal GetDeviceQueryEneryTotal(NTS.WEB.DataContact.BasicQuery query)
        {
            BaseResult baseResult = new BaseResult();
            baseResult.BaseLayerObjectResults = new Dictionary<string, BaseData>();
            var Object = new BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectNum), " order by deviceid")[0];
            baseResult.BaseLayerObjectResults = new Dictionary<string, BaseData>();
            baseResult.BaseLayerObjectResults.Add(Object.DeviceID.ToString(), new BaseData());
            baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList = new System.Collections.Hashtable();
            baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].Datas = new List<DataItems>();
            baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList.Add("ITEMCOAL", 0);
            baseResult.BaseLayerObjectResults[Object.DeviceID.ToString()].ConvertDataValueList.Add("ITEMCO2", 0);

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

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

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

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

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

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

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

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

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

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

                    }
                }
                if (baseResult != null) { return new QueryEneryTotal { TotalEnergy = decimal.Parse(baseResult.BaseLayerObjectResults[Object.LayerObjectID.ToString()].ConvertDataValueList["ITEMCOAL"].ToString()) }; }
                return null;
            }
        }
コード例 #16
0
 public DataTable GetBalanaceValueByMonth(NTS.WEB.Model.BalanceAnalysisModel model)
 {
     return new NTS.WEB.BLL.BalanceAnalysis().GetBalanaceValueByMonth(model.PageCurrent, model.PageSize, model.ItemCode, model.ObjectNum, model.StartTime, model.OrderWay);
 }