Example #1
0
        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;
            }
        }
Example #2
0
        /// <summary>
        /// add by: jy
        /// add at: 2014-3-24
        /// note  : 人均能耗对比
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public ResultCompare GetPersonNumCompareChart(QueryOrderObjects queryObject)
        {
            #region 定义区

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

            #endregion

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

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

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

                        resultList.Enery.Add(o.LayerObjectName, result.Enery[itemList.ItemCodeName].Select(p => p / decimal.Parse(o.PersonNum.ToString())).ToList());
                    }
                    else
                    {
                        var tempValue = new decimal[result.Enery[result.Enery.Keys.First<string>()].Count];
                        foreach (var re in result.Enery)
                        {
                            for (var i = 0; i < re.Value.Count; i++)
                            {
                                tempValue[i] += re.Value[i];
                            }
                        }
                        for (int i = 0; i < result.Dept.Count; i++)
                        {
                            resultList.Dept.Add("T");
                        }
                        resultList.Enery.Add(o.LayerObjectName, tempValue.ToList().Select(p => p / decimal.Parse(o.PersonNum.ToString())).ToList());
                    }
                }
                return resultList;
            }
            return null;
        }
Example #3
0
        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;
            }
        }
Example #4
0
        public ResultCompare GetCompareChartNew(QueryOrderObjects query)
        {
            #region 定义区

            query.ObjType = AreaType.Area;  // 给区域分类

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

            #endregion

            //var olist = query.ObjectNum.Aggregate(string.Empty, (current, q) => current + ("," + q.ToString()));
            //if (olist.Length > 0)
            //{
            //    List<Model.BaseLayerObject> objectList;
            //    if (query.ClassId == 1)
            //    {
            //        objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList(
            //               string.Format(" and layerobjectid in ({0})", olist.Substring(1)), " order by LayerObjectID");
            //    }
            //    else
            //    {
            //        objectList = new BLL.BaseLayerObject().GetBaseFuncLayerObjectList(
            //        string.Format(" and layerobjectid in ({0})", olist.Substring(1)), " order by LayerObjectID");
            //    }

            //    foreach (var o in objectList)
            //    {
            //        var basicQuery = new BasicQuery
            //        {
            //            EndTime = query.EndTime,
            //            StartTime = query.StartTime,
            //            ItemCode = query.ItemCode,
            //            Unit = query.Unit
            //        };
            //        basicQuery.ObjectNum = o.LayerObjectID;
            //        var result = GetQueryLineChart(basicQuery);
            //        resultList.ObjectName = result.ObjectName;
            //        if (query.ItemCode != "00000")
            //        {
            //            var itemList = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID")[0];
            //            resultList.Enery.Add(o.LayerObjectName, result.Enery[itemList.ItemCodeName]);
            //            for (int i = 0; i < result.Dept.Count; i++)
            //            {
            //                resultList.Dept.Add(itemList.Unit);
            //            }
            //        }
            //        else
            //        {
            //            var tempValue = new decimal[result.Enery[result.Enery.Keys.First<string>()].Count];
            //            foreach (var re in result.Enery)
            //            {
            //                for (var i = 0; i < re.Value.Count; i++)
            //                {
            //                    tempValue[i] += re.Value[i];
            //                }
            //            }
            //            for (int i = 0; i < result.Dept.Count; i++)
            //            {
            //                resultList.Dept.Add("T");
            //            }
            //            resultList.Enery.Add(o.LayerObjectName, tempValue.ToList());
            //        }
            //    }
            //    return resultList;
            //}
            return null;
        }
 public ResultCompare GetPersonNumCompareChart(QueryOrderObjects query)
 {
     return entBll.GetPersonNumCompareChart(query);
 }
 public ResultCompare GetAreaCompareChart(QueryOrderObjects query)
 {
     return entBll.GetAreaCompareChart(query);
 }