Ejemplo n.º 1
0
        /// <summary>
        /// 根据查询条件获取数据。
        /// </summary>
        /// <param name="basicQuery"></param>
        /// <returns></returns>
        public ResultCompare GetDateTongJiData(BasicQuery basicQuery)
        {
            var resultList = new ResultView.ResultCompare
            {
                ObjectName = new List<string>(),
                Enery = new Dictionary<string, List<decimal>>(),
                Dept = new List<string>()
            };

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

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

            return resultList;
        }
Ejemplo n.º 2
0
        public BaseResult GetDeviceQuerySingleItemCodeEneryTotal(NTS.WEB.DataContact.BasicQuery query)
        {
            var            ObjectList  = new BLL.BaseLayerObject().GetDeviceObjectList(string.Format(" and deviceid={0}", query.ObjectNum), " order by deviceid");
            var            ItemList    = new BLL.Itemcode().GetItemcodeList(" and ParentID=0", " order by ItemcodeID");
            List <string>  ItemCodeStr = (from item in ItemList select item.ItemCodeNumber).ToList <string>();
            BaseQueryModel model       = new BaseQueryModel();

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

            return(ResList);
        }
Ejemplo n.º 3
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;
        }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        public ResultLoadForecastMap GetLoadForecastChart(QueryLoadForecast loadCast)
        {
            try
            {
                ResultLoadForecastMap mapNew = new ResultLoadForecastMap();
                ExecuteProcess proc = new ExecuteProcess();
                proc.ActionName = "";
                proc.ActionTime = DateTime.Now;
                proc.ActionUser = "";
                proc.ExceptionMsg = "";
                proc.Success = true;
                var basicQuery = new BasicQuery
                {
                    EndTime = loadCast.EndTime,
                    StartTime = loadCast.StartTime,
                    ItemCode = loadCast.ItemCode,
                    Unit = loadCast.Particle,
                    AreaType = loadCast.ObjType,
                    ObjectNum = loadCast.ObjectId
                };

                // 获取数据
                var resultList = GetDateTongJiData(basicQuery);

                List<decimal> lstDecAvg = GetYuceData(basicQuery, loadCast);

                List<SerialData> serData = new List<SerialData>();

                foreach (var d in resultList.Enery)
                {
                    SerialData ser1 = new SerialData();
                    ser1.name = "负荷预测值";
                    ser1.data = lstDecAvg;
                    serData.Add(ser1);
                    ser1 = new SerialData();
                    ser1.name = "能耗实际值";
                    TimeSpan ts = DateTime.Parse(System.DateTime.Now.ToString("yyyy-MM-dd")) - loadCast.StartTime;
                    int DayChas = ts.Days;
                    List<decimal> lstNew = d.Value;
                    if (DayChas == 0)
                    {
                        for (int iCount = 0; iCount < lstNew.Count; iCount++)
                        {
                            lstNew[iCount] = Math.Round(lstNew[iCount], 2);
                        }
                    }
                    else if (DayChas > 0)
                    {
                        for (int iCount = 0; iCount < lstNew.Count; iCount++)
                        {
                            if (iCount > DayChas)
                            {
                                lstNew[iCount] = 0;
                            }
                            else
                            {
                                lstNew[iCount] = Math.Round(lstNew[iCount], 2);
                            }
                        }
                    }
                    else
                    {
                        for (int i = 0; i < lstNew.Count; i++)
                        {
                            lstNew[i] = -9999;
                        }
                    }

                    ser1.data = lstNew;

                    serData.Add(ser1);

                }
                mapNew.ActionInfo = proc;
                // 判断是否是将来当天数据。
                if (loadCast.StartTime.CompareTo(DateTime.Now) > 0)
                {
                    List<SerialData> serDataNew = new List<SerialData>();
                    serDataNew.Add(serData[0]);
                    mapNew.series = serDataNew;
                }
                else
                {
                    mapNew.series = serData;
                }

                if (resultList.Dept.Count > 0)
                {
                    mapNew.Unit = resultList.Dept[0].ToString();
                }

                List<ResultLoadForecastList> listFore = new List<ResultLoadForecastList>();
                for (int i = 0; i < serData[0].data.Count; i++)
                {
                    ResultLoadForecastList list = new ResultLoadForecastList();
                    list.Id = i + 1;
                    if (loadCast.StartTime.Date == loadCast.EndTime.Date)
                    {
                        string hour = "";
                        if (i < 10)
                        {
                            hour = "0" + i.ToString();
                        }
                        else
                        {
                            hour = i.ToString();
                        }
                        list.TimeArea = loadCast.StartTime.ToString("yyyy-MM-dd" + " " + hour + ":00:00");
                    }
                    else
                    {
                        list.TimeArea = loadCast.StartTime.AddDays(i).ToString("yyyy-MM-dd");
                    }
                    if (i < serData[1].data.Count)
                    {
                        list.History = Math.Round(serData[1].data[i], 2);
                    }
                    else
                    {
                        list.History = -9999;
                    }

                    list.ForeCast = Math.Round(serData[0].data[i], 2);
                    if (list.History == -9999)
                    {
                        list.Deviation = -9999;
                    }
                    else
                    {
                        list.Deviation = Math.Round((serData[0].data[i] - serData[1].data[i]), 2);
                    }

                    if (list.History == -9999)
                    {
                        list.Pecent = "--";
                        listFore.Add(list);
                    }
                    else
                    {
                        decimal dec1 = (serData[0].data[i] - serData[1].data[i]) * 100;
                        decimal dec2 = serData[1].data[i];
                        if (dec1 != 0 && dec2 != 0)
                        {
                            decimal pec = (serData[0].data[i] - serData[1].data[i]) * 100 / serData[1].data[i];
                            list.Pecent = Math.Round(pec, 2).ToString() + "%";
                            listFore.Add(list);
                        }
                        else
                        {
                            list.Pecent = "--";
                            listFore.Add(list);
                        }
                    }
                }
                mapNew.LoadForecast = listFore;

                mapNew.HistoryTotal = 0;
                Math.Round(serData[1].data.Sum(), 2);
                for (int rCount = 0; rCount < serData[1].data.Count; rCount++)
                {
                    if (serData[1].data[rCount] != -9999)
                    {
                        mapNew.HistoryTotal = mapNew.HistoryTotal + serData[1].data[rCount];
                    }
                }
                mapNew.ForeCastTotal = Math.Round(lstDecAvg.Sum(), 2);
                return mapNew;
            }
            catch (Exception ex)
            {
                ResultLoadForecastMap map2 = new ResultLoadForecastMap();
                ExecuteProcess proc = new ExecuteProcess();
                proc.ActionName = "";
                proc.ActionTime = DateTime.Now;
                proc.ActionUser = "";
                proc.ExceptionMsg = ex.Message;
                proc.Success = false;

                map2.ActionInfo = proc;
                return map2;
            }
        }
Ejemplo n.º 7
0
        private List<decimal> GetYuceData(BasicQuery basicQuery, QueryLoadForecast queryLoad)
        {
            List<ResultCompare> compReult = new List<ResultCompare>();
            DateTime deBegin = new DateTime();
            DateTime deEnd = new DateTime();
            TimeSpan ts = queryLoad.EndTime - queryLoad.StartTime;
            int Days = ts.Days;
            #region  获取35%数据

            if (Days == 0)
            {
                deBegin = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")).AddDays(-10);
                deEnd = queryLoad.StartTime;
                // 循环前10天
                for (DateTime begTime = deBegin; begTime < DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 00:00:00")); begTime = begTime.AddDays(1))
                {
                    BasicQuery baseQueryItem = basicQuery;
                    baseQueryItem.StartTime = begTime;
                    baseQueryItem.EndTime = begTime;
                    ResultCompare reultCom = GetDateTongJiData(baseQueryItem);
                    compReult.Add(reultCom);
                }
            }
            else
            {
                if (queryLoad.StartTime.CompareTo(DateTime.Now) > 0)
                {
                    BasicQuery baseQueryItem = basicQuery;
                    baseQueryItem.StartTime = DateTime.Now.AddDays(-(Days + 1)); ;
                    baseQueryItem.EndTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")).AddDays(-1);
                    ResultCompare reultCom = GetDateTongJiData(baseQueryItem);
                    compReult.Add(reultCom);
                }
                else
                {
                    BasicQuery baseQueryItem = basicQuery;
                    baseQueryItem.StartTime = queryLoad.StartTime.AddDays(-(Days + 1)); ;
                    baseQueryItem.EndTime = queryLoad.StartTime.AddDays(-1);
                    ResultCompare reultCom = GetDateTongJiData(baseQueryItem);
                    compReult.Add(reultCom);
                }
            }
            #endregion

            #region 获取65%数据。
            //获取去年当天的预测值
            BasicQuery baseQuery2 = basicQuery;
            baseQuery2.StartTime = queryLoad.StartTime.AddYears(-1);
            baseQuery2.EndTime = queryLoad.EndTime.AddYears(-1);
            var resultList2 = GetDateTongJiData(baseQuery2);
            List<decimal> lstAvg2 = new List<decimal>();

            List<decimal> lstAvgMonth = GetAvgYuce(compReult, queryLoad);
            if (Days == 0)
            {
                foreach (var d in resultList2.Enery)
                {
                    List<decimal> lstDec = d.Value;
                    for (int i = 0; i < d.Value.Count; i++)
                    {
                        if (d.Value[i] > 0)
                        {
                            lstAvg2.Add(Math.Round((d.Value[i]), 2));
                        }
                    }
                }

                // 最终值。
                List<decimal> lstAvgEnd = new List<decimal>();
                for (int i = 0; i < lstAvgMonth.Count; i++)
                {
                    if (lstAvg2.Count == 0)
                    {
                        lstAvgEnd.Add(lstAvgMonth[i]);
                    }
                    else
                    {
                        lstAvgEnd.Add(lstAvgMonth[i] * 35 / 100 + lstAvg2[i] * 65 / 100);
                    }
                }

                return lstAvgEnd;
            }
            else
            {
                foreach (var d in resultList2.Enery)
                {
                    List<decimal> lstDec = d.Value;
                    for (int i = 0; i < d.Value.Count; i++)
                    {
                        lstAvg2.Add(Math.Round((d.Value[i]), 2));
                    }
                }

                // 最终值。
                List<decimal> lstAvgEnd = new List<decimal>();
                for (int i = 0; i < lstAvgMonth.Count; i++)
                {
                    if (lstAvgMonth.Count == Days + 1)
                    {
                        if (lstAvg2.Count == 0)
                        {
                            decimal avgDec = lstAvgMonth[i];
                            lstAvgEnd.Add(Math.Round(avgDec, 2));
                        }
                        else
                        {
                            decimal avgDec = lstAvgMonth[i] * 35 / 100 + lstAvg2[i] * 65 / 100;
                            lstAvgEnd.Add(Math.Round(avgDec, 2));
                        }
                    }
                    else
                    {
                        throw new Exception("没有历史数据,无法进行预测");
                    }
                }

                return lstAvgEnd;

            }

            #endregion
        }
Ejemplo n.º 8
0
 public ResultQueryPie GetQueryPieChart(BasicQuery query)
 {
     return new NTS.WEB.BLL.Charts().GetQueryPieChart(query);
 }
Ejemplo n.º 9
0
        public ResultItemCode GetTwoQueryLineChart(BasicQuery query, BasicQuery query2, int tabId)
        {
            #region 定义区

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

            #endregion
            ResultItemCode result = GetQueryLineChart(query);
            ResultItemCode result2 = GetQueryLineChart(query2);

            resultList.Dept = result.Dept;
            foreach (var oname in result.ObjectName)
            {
                resultList.ObjectName.Add("");
            }
            // resultList.ObjectName = result.ObjectName;
            decimal[] Arr = new decimal[result.Enery[result.Enery.Keys.First<string>()].Count];
            decimal[] ArrNew = new decimal[result2.Enery[result2.Enery.Keys.First<string>()].Count];
            if (queryCode == "00000")
            {
                foreach (var re in result.Enery)
                {
                    for (int i = 0; i < re.Value.Count; i++)
                    {
                        Arr[i] += re.Value[i];
                    }
                }
                foreach (var re2 in result2.Enery)
                {
                    for (int i = 0; i < re2.Value.Count; i++)
                    {
                        ArrNew[i] += re2.Value[i];
                    }
                }
                if (tabId == 1)
                {
                    resultList.Enery.Add(query.StartTime.ToString("yyyy") + "总能耗", Arr.ToList());
                    resultList.Enery.Add(query2.StartTime.ToString("yyyy") + "总能耗", ArrNew.ToList());
                }
                else
                {
                    resultList.Enery.Add(query.StartTime.ToString("yyyy-MM") + "总能耗", Arr.ToList());
                    resultList.Enery.Add(query2.StartTime.ToString("yyyy-MM") + "总能耗", ArrNew.ToList());
                }

            }
            else
            {
                var itemcodeList = new NTS.WEB.BLL.Itemcode().GetItemcodeList("  and ItemCodeNumber='" + queryCode + "'", " order by itemcodeid")[0];

                foreach (var r1 in result.Enery)
                {
                    if (tabId == 1)
                    {
                        resultList.Enery.Add(query.StartTime.ToString("yyyy") + r1.Key, r1.Value);
                    }
                    else
                    {
                        resultList.Enery.Add(query.StartTime.ToString("yyyy-MM") + r1.Key, r1.Value);
                    }
                }
                foreach (var r2 in result2.Enery)
                {
                    if (tabId == 1)
                    {
                        resultList.Enery.Add(query2.StartTime.ToString("yyyy") + r2.Key, r2.Value);
                    }
                    else
                    {
                        resultList.Enery.Add(query2.StartTime.ToString("yyyy-MM") + r2.Key, r2.Value);
                    }
                }
            }

            return resultList;
        }
Ejemplo n.º 10
0
        public Dictionary<string, decimal> GetSingleItemCodeByObject(BasicQuery query, int isCoal)
        {
            // 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.ObjectNum), " 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.Unit);
            model.Starttime = query.StartTime;
            model.Endtime = query.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, 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;
        }
Ejemplo n.º 11
0
        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;
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 数据库获取导出数据列表
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public List<FeeApportionListClass> GetFeeApportDataList(Queryfeeapportion query)
        {
            Queryfeeapportion queryLastMonth = query;
            List<TB_Alloction_Config> config = GetAlloctionConfig(query);

            int iCout = 0;
            // 列表
            List<FeeApportionListClass> appList = new List<FeeApportionListClass>();
            foreach (TB_Alloction_Config conf in config)
            {
                FeeApportionListClass listClass = new FeeApportionListClass();

                SeriesClass serial1 = new SeriesClass();
                SeriesClass serial2 = new SeriesClass();
                int objectId = conf.AreaID;
                List<Model.BaseLayerObject> objectList;
                string objectName = "";
                if (query.ObjType == AreaType.Area)
                {
                    TB_AreaInfo info = _accssCommon.GetAreaInfo(conf.AreaID);
                    //objectList = new BLL.BaseLayerObject().GetBaseLayerObjectList(
                    //       string.Format(" and layerobjectid ={0} ", conf.AreaID), " ");

                    if (info != null )
                    {
                        objectName = info.CName;
                    }
                }
                else
                {
                    TB_AreaInfo info = _accssCommon.GetAreaInfo(conf.AreaID);
                    if (info != null)
                    {
                        objectName = info.CName;
                    }

                }

                Queryfeeapportion queryItem = new Queryfeeapportion();
                queryItem = query;
                queryItem.ObjectId = conf.AreaID;
                double BefFee = 0;
                //List<CostQueryModel> refModel = _feeApportion.GetCostQuery(queryItem, conf.ALLoction_StartDate, conf.ALLoction_EndDate);
                //double BefFee = 0;
                //if (refModel.Count > 0)
                //{
                //    for (int jCount = 0; jCount < refModel.Count; jCount++)
                //    {
                //        BefFee += refModel[jCount].TOTAL_COST;
                //    }
                //}

                EnergyContrast energy = new EnergyContrast();
                BasicQuery query2 = new BasicQuery();
                query2.AreaType = query.ObjType;
                query2.StartTime = config[0].ALLoction_StartDate;
                query2.EndTime = config[0].ALLoction_EndDate;
                query2.ObjectNum = query.ObjectId;
                query2.QueryType = EnergyAnalyseQueryType.Default;
                query2.Unit = 1;
                var lineChart = energy.GetSingleItemCodeByObject(query2, query.ItemCode);

                BefFee = (double)lineChart.Values.Sum();
                AccessCommon acess = new AccessCommon();
                decimal flPrice = acess.GetFeePrice(query.ItemCode);
                BefFee = BefFee * (double)flPrice;

                FeeApportionListClass list1 = new FeeApportionListClass();
                list1.Id = iCout + 1;
                list1.Obj = objectName;
                list1.Tm = query.StartTime.ToString("yyyy-MM");
                list1.BeforeVal = BefFee;
                list1.ApportionVal = (conf.ALLoction_Fee*conf.CfgPercent)/100;
                list1.TotalVal = list1.BeforeVal + list1.ApportionVal;
                appList.Add(list1);
                iCout++;
            }

            return appList;
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public ResultFeeapportion GetFeeApportionData(Queryfeeapportion query)
        {
            try
            {
                ExecuteProcess process = new ExecuteProcess();
                process.ActionName = "";
                process.ActionTime = System.DateTime.Now;
                process.Success = true;
                process.ExceptionMsg = "";

                ResultFeeapportion feeApption = new ResultFeeapportion();
                feeApption.FeeApportionType = "按比例分摊";

                List<TB_Alloction_Config> config = GetAlloctionConfig(query);
                if (config.Count == 0)
                {
                    process.Success = false;
                    process.ExceptionMsg = "此区域费用分摊没有配置";

                    ResultFeeapportion feeApptionReturn = new ResultFeeapportion();
                    feeApption.ActionInfo = process;
                    return feeApption;
                }

                Queryfeeapportion queryLastMonth = new Queryfeeapportion();
                queryLastMonth.ItemCode = query.ItemCode;
                queryLastMonth.ObjType = query.ObjType;
                queryLastMonth.ObjectId = query.ObjectId;
                queryLastMonth.StartTime = query.StartTime.AddMonths(-1);

                List<TB_Alloction_Config> configLast = GetAlloctionConfig(queryLastMonth);

                FeeApportionValClass feeappVal = new FeeApportionValClass();

                FeeApportionChartsClass chartClass = new FeeApportionChartsClass();

                // 数据。
                List<SeriesClass> serialClass = new List<SeriesClass>();

                if (config.Count > 0)
                {
                    DateTime dtBegin = config[0].ALLoction_StartDate;
                    DateTime dtEnd = config[0].ALLoction_EndDate;

                    double feeDai = config[0].ALLoction_Fee;
                    feeappVal.ApportionVal = config[0].ALLoction_Fee;

                    //List<CostQueryModel> refModel = _feeApportion.GetCostQuery(query, dtBegin, dtEnd);

                    EnergyContrast energy = new EnergyContrast();
                    BasicQuery query2 = new BasicQuery();
                    query2.AreaType = query.ObjType;
                    query2.StartTime = config[0].ALLoction_StartDate;
                    query2.EndTime = config[0].ALLoction_EndDate;
                    query2.ObjectNum = query.ObjectId;
                    query2.QueryType = EnergyAnalyseQueryType.Default;
                    query2.Unit = 1;
                    var lineChart = energy.GetSingleItemCodeByObject(query2, query.ItemCode);
                    double befVal = 0;
                    befVal = (double)lineChart.Values.Sum();
                    AccessCommon acess= new AccessCommon();
                    decimal flPrice = acess.GetFeePrice(query.ItemCode);
                    befVal = befVal*(double)flPrice;
                    //foreach (var costQueryModel in refModel)
                    //{
                    //    befVal += costQueryModel.TOTAL_COST;
                    //}
                    feeappVal.BeforeVal = Math.Round(befVal,2);
                    feeappVal.TotalVal = Math.Round((befVal + feeappVal.ApportionVal),2);
                }

                List<SeriesData> sidatas = new List<SeriesData>();
                SeriesData seri = new SeriesData();
                // 统计明细数据

                SeriesData data1 = new SeriesData();
                SeriesData data2 = new SeriesData();
                List<SeriesClass> serClass1 = new List<SeriesClass>();
                List<SeriesClass> serClass2 = new List<SeriesClass>();

                int iCout = 0;
                // 列表
                List<FeeApportionListClass> appList = new List<FeeApportionListClass>();
                foreach (TB_Alloction_Config conf in config)
                {
                    FeeApportionListClass listClass = new FeeApportionListClass();

                    SeriesClass serial1 = new SeriesClass();
                    SeriesClass serial2 = new SeriesClass();
                    int objectId = conf.AreaID;
                    List<Model.BaseLayerObject> objectList;
                    string objectName = "";
                    TB_AreaInfo info = _accssCommon.GetAreaInfo(conf.AreaID);
                    if (info != null)
                    {
                        objectName = info.CName;
                    }

                    //Queryfeeapportion queryItem = new Queryfeeapportion();
                    //queryItem = query;
                    //queryItem.ObjectId = conf.AreaID;
                    //List<CostQueryModel> refModel = _feeApportion.GetCostQuery(queryItem, conf.ALLoction_StartDate, conf.ALLoction_EndDate);
                    double BefFee = 0;
                    //if (refModel.Count > 0)
                    //{
                    //    for (int jCount = 0; jCount < refModel.Count; jCount++)
                    //    {
                    //        BefFee += refModel[jCount].TOTAL_COST;
                    //    }
                    //}
                    EnergyContrast energy = new EnergyContrast();
                    BasicQuery query2 = new BasicQuery();
                    query2.AreaType = query.ObjType;
                    query2.StartTime = config[0].ALLoction_StartDate;
                    query2.EndTime = config[0].ALLoction_EndDate;
                    query2.ObjectNum = conf.AreaID;
                    query2.QueryType = EnergyAnalyseQueryType.Default;
                    query2.Unit = 1;
                    var lineChart2 = energy.GetSingleItemCodeByObject(query2, query.ItemCode);
                    BefFee = (double)lineChart2.Values.Sum();
                    AccessCommon acess = new AccessCommon();
                    decimal flPrice = acess.GetFeePrice(query.ItemCode);
                    BefFee = BefFee * (double)flPrice;

                    serial1.name = objectName;
                    serial2.name = objectName;
                    serial1.y = Math.Round(BefFee);
                    serial2.y = Math.Round((conf.ALLoction_Fee * conf.CfgPercent),2);

                    serClass1.Add(serial1);
                    serClass2.Add(serial2);

                    FeeApportionListClass list1 = new FeeApportionListClass();
                    list1.Id = iCout + 1;
                    list1.Obj = objectName;
                    list1.Tm = query.StartTime.ToString("yyyy-MM");
                    list1.BeforeVal = Math.Round(BefFee,2);
                    list1.ApportionVal = Math.Round((conf.ALLoction_Fee * conf.CfgPercent),2);
                    list1.TotalVal = list1.BeforeVal + list1.ApportionVal;
                    appList.Add(list1);
                    iCout++;

                }
                data1.name = "分摊前费用";
                data1.data = serClass1;

                data2.name = "分摊费用";
                data2.data = serClass2;
                sidatas.Add(data1);
                sidatas.Add(data2);
                chartClass.series = sidatas;
                feeApption.FeeApportionCharts = chartClass;

                if (configLast.Count > 0)
                {
                    DateTime dtBegin2 = configLast[0].ALLoction_StartDate;
                    DateTime dtEnd2 = configLast[0].ALLoction_EndDate;

                    double feeDai = configLast[0].ALLoction_Fee;
                    feeappVal.ApportionValLastMonth = configLast[0].ALLoction_Fee;

                    //List<CostQueryModel> refModel = _feeApportion.GetCostQuery(query, dtBegin2, dtEnd2);
                    double beforeApportionVal = 0;
                    //foreach (var costQueryModel in refModel)
                    //{
                    //    beforeApportionVal += costQueryModel.TOTAL_COST;
                    //}
                    EnergyContrast energy = new EnergyContrast();
                    BasicQuery query2 = new BasicQuery();
                    query2.AreaType = query.ObjType;
                    query2.StartTime = configLast[0].ALLoction_StartDate;
                    query2.EndTime = configLast[0].ALLoction_EndDate;
                    query2.ObjectNum = query.ObjectId;
                    query2.QueryType = EnergyAnalyseQueryType.Default;
                    query2.Unit = 1;
                    var lineChart2 = energy.GetSingleItemCodeByObject(query2, query.ItemCode);
                    beforeApportionVal = (double)lineChart2.Values.Sum();
                    AccessCommon acess = new AccessCommon();
                    decimal flPrice = acess.GetFeePrice(query.ItemCode);
                    beforeApportionVal = Math.Round(beforeApportionVal * (double)flPrice,2);

                    feeappVal.BeforeValLastMonth = beforeApportionVal;
                    feeappVal.TotalValLastMonth = beforeApportionVal + feeappVal.ApportionValLastMonth;

                }
                if (feeappVal.ApportionValLastMonth > 0)
                {
                    double compare = (feeappVal.ApportionVal-feeappVal.ApportionValLastMonth)*100/
                                     feeappVal.ApportionValLastMonth;
                    feeappVal.ApportionValCompare =Math.Round(compare,2).ToString();
                }
                else
                {
                    feeappVal.ApportionValCompare = "-";
                }

                if (feeappVal.BeforeValLastMonth > 0)
                {
                    double compare = (feeappVal.BeforeVal-feeappVal.BeforeValLastMonth) * 100 / feeappVal.BeforeValLastMonth;
                    feeappVal.BeforeValCompare = Math.Round(compare, 2).ToString();
                }
                else
                {
                    feeappVal.BeforeValCompare = "-";
                }

                if (feeappVal.TotalValLastMonth > 0)
                {
                    double compare = (feeappVal.TotalVal-feeappVal.TotalValLastMonth)*100/feeappVal.TotalValLastMonth;
                    feeappVal.TotalValCompare = Math.Round(compare, 2).ToString();
                }
                else
                {
                    feeappVal.TotalValCompare = "-";
                }
                FeeApportionTblClass tblClass = new FeeApportionTblClass();

                tblClass.FeeApportionList = appList;
                feeApption.FeeApportionTbl = tblClass;
                feeApption.FeeApportionVal = feeappVal;
                feeApption.ActionInfo = process;

                return feeApption;
            }
            catch (Exception ex)
            {
                ExecuteProcess process = new ExecuteProcess();
                process.ActionName = "";
                process.ActionTime = System.DateTime.Now;
                process.Success = false;
                process.ExceptionMsg = ex.Message;
                ResultFeeapportion feeApption = new ResultFeeapportion();
                feeApption.ActionInfo = process;
                return feeApption;
            }
        }
Ejemplo n.º 14
0
 public ResultItemCode GetTwoQueryLineChart(BasicQuery query, BasicQuery query2, int tabId)
 {
     return new NTS.WEB.BLL.Charts().GetTwoQueryLineChart(query, query2, tabId);
 }
Ejemplo n.º 15
0
        public ResultItemCode GetQueryLineChart(BasicQuery query)
        {
            #region 定义区

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

            #endregion

            var dept = string.Empty;

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

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

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

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

                // 重新赋值
                foreach (var itemcode in itemList)
                {
                    var itemcode1 = itemcode;
                    foreach (var max in eneryDataListTotal[maxcode].Where(max => !eneryDataListTotal[itemcode1.ItemCodeNumber].ContainsKey(max.Key)))
                    {
                        eneryDataListTotal[itemcode.ItemCodeNumber].Add(max.Key, 0);
                    }
                    var temp = eneryDataListTotal[itemcode.ItemCodeNumber].OrderBy(p => Convert.ToDateTime(p.Key));
                    var tempOrder = temp.ToDictionary(keyValuePair => keyValuePair.Key, keyValuePair => keyValuePair.Value);
                    eneryDataListTotal[itemcode.ItemCodeNumber] = tempOrder;
                    resultList.Enery.Add(itemcode.ItemCodeName, eneryDataListTotal[itemcode.ItemCodeNumber].Values.ToList());
                }
                resultList.ObjectName = eneryDataListTotal[maxcode].Select(p => p.Key.ToString(CultureInfo.InvariantCulture)).ToList();
            }
            else
            {
                var item = new BLL.Itemcode().GetItemcodeList(" and ItemCodeNumber='" + query.ItemCode + "'", " order by ItemcodeID")[0];
                var lineChart = GetSingleItemCodeByObject(query, query.ItemCode);
                // resultList.Dept = new List<string>() {item.Unit};
                if (lineChart != null)
                {
                    resultList.ObjectName = lineChart.Select(p => p.Key.ToString()).ToList();
                    resultList.Enery.Add(item.ItemCodeName, lineChart.Select(p => decimal.Parse(p.Value.ToString())).ToList());
                }

            }
            foreach (var baseLayerObject in resultList.ObjectName)
            {
                resultList.Dept.Add(dept);
            }
            return resultList;
        }
Ejemplo n.º 16
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;
        }
Ejemplo n.º 17
0
 public ResultItemCode GetQueryLineChart(BasicQuery query)
 {
     return new NTS.WEB.BLL.Charts().GetQueryLineChart(query);
 }